mirror of https://github.com/tLDP/LDP
This is the current version of the Linux from Scratch guide from SVN
This commit is contained in:
parent
446725e775
commit
c4ce83ee87
|
@ -0,0 +1,47 @@
|
|||
LFS Book Conversion Tools Installation Instructions
|
||||
|
||||
After downloading the SVN source, there are some things that need to be set up
|
||||
on your computer if you want to convert the XML source into something easier to
|
||||
read (e.g. HTML, TXT, or PDF). If you are interested in this, then keep
|
||||
reading. If you are only interested in editing the XML source for re-
|
||||
submission to the lfs-book or lfs-dev mailing lists, then you do not need this
|
||||
document. Instead, you need to read the LFS Editor's Manual. See the LFS
|
||||
website at http://www.linuxfromscratch.org for more information.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
If you want to convert the XML to HTML, install the following:
|
||||
|
||||
* libxml2
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/general/libxml2.html
|
||||
|
||||
* libxslt
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/general/libxslt.html
|
||||
|
||||
* DocBook DTD
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/pst/xml.html
|
||||
|
||||
* 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
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
If you want to convert the XML to TXT, install the above items, and then install
|
||||
the following:
|
||||
|
||||
* lynx
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/basicnet/lynx.html
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
If you want to convert the XML to PDF, install the items listed above (except
|
||||
lynx) and then install the following:
|
||||
|
||||
* JDK
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/general/openjdk.html
|
||||
|
||||
* FOP and JAI
|
||||
- http://www.linuxfromscratch.org/blfs/view/svn/pst/fop.html
|
|
@ -0,0 +1,121 @@
|
|||
BASEDIR = ~/lfs-book
|
||||
DUMPDIR = ~/lfs-commands
|
||||
RENDERTMP = $(HOME)/tmp
|
||||
CHUNK_QUIET = 1
|
||||
ROOT_ID =
|
||||
PDF_OUTPUT = LFS-BOOK.pdf
|
||||
NOCHUNKS_OUTPUT = LFS-BOOK.html
|
||||
SHELL = /bin/bash
|
||||
|
||||
ifdef V
|
||||
Q =
|
||||
else
|
||||
Q = @
|
||||
endif
|
||||
|
||||
lfs: validate profile-html
|
||||
@echo "Generating chunked XHTML files..."
|
||||
$(Q)xsltproc --nonet -stringparam chunk.quietly $(CHUNK_QUIET) \
|
||||
-stringparam rootid "$(ROOT_ID)" -stringparam base.dir $(BASEDIR)/ \
|
||||
stylesheets/lfs-chunked.xsl $(RENDERTMP)/lfs-html.xml
|
||||
|
||||
@echo "Copying CSS code and images..."
|
||||
$(Q)if [ ! -e $(BASEDIR)/stylesheets ]; then \
|
||||
mkdir -p $(BASEDIR)/stylesheets; \
|
||||
fi;
|
||||
$(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets
|
||||
$(Q)if [ ! -e $(BASEDIR)/images ]; then \
|
||||
mkdir -p $(BASEDIR)/images; \
|
||||
fi;
|
||||
$(Q)cp images/*.png $(BASEDIR)/images
|
||||
# $(Q)cd $(BASEDIR)/; sed -i -e "s@../stylesheets@stylesheets@g" *.html
|
||||
# $(Q)cd $(BASEDIR)/; sed -i -e "s@../images@images@g" *.html
|
||||
|
||||
@echo "Running Tidy and obfuscate.sh..."
|
||||
$(Q)for filename in `find $(BASEDIR) -name "*.html"`; do \
|
||||
tidy -config tidy.conf $$filename; \
|
||||
true; \
|
||||
/bin/bash obfuscate.sh $$filename; \
|
||||
sed -i -e "s@text/html@application/xhtml+xml@g" $$filename; \
|
||||
done;
|
||||
|
||||
$(Q)$(MAKE) $(BASEDIR)/wget-list $(BASEDIR)/md5sums
|
||||
|
||||
pdf: validate
|
||||
@echo "Generating profiled XML for PDF..."
|
||||
$(Q)xsltproc --nonet --stringparam profile.condition pdf \
|
||||
--output $(RENDERTMP)/lfs-pdf.xml stylesheets/lfs-xsl/profile.xsl \
|
||||
$(RENDERTMP)/lfs-full.xml
|
||||
|
||||
@echo "Generating FO file..."
|
||||
$(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \
|
||||
--output $(RENDERTMP)/lfs-pdf.fo stylesheets/lfs-pdf.xsl \
|
||||
$(RENDERTMP)/lfs-pdf.xml
|
||||
$(Q)sed -i -e 's/span="inherit"/span="all"/' $(RENDERTMP)/lfs-pdf.fo
|
||||
$(Q)bash pdf-fixups.sh $(RENDERTMP)/lfs-pdf.fo
|
||||
|
||||
@echo "Generating PDF file..."
|
||||
$(Q)if [ ! -e $(BASEDIR) ]; then \
|
||||
mkdir -p $(BASEDIR); \
|
||||
fi;
|
||||
$(Q)fop -q $(RENDERTMP)/lfs-pdf.fo $(BASEDIR)/$(PDF_OUTPUT) 2>fop.log
|
||||
@echo "$(BASEDIR)/$(PDF_OUTPUT) created"
|
||||
@echo "fop.log created"
|
||||
|
||||
nochunks: validate profile-html
|
||||
@echo "Generating non chunked XHTML file..."
|
||||
$(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \
|
||||
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
|
||||
stylesheets/lfs-nochunks.xsl $(RENDERTMP)/lfs-html.xml
|
||||
|
||||
@echo "Running Tidy..."
|
||||
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true
|
||||
@echo "Running obfuscate.sh..."
|
||||
$(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
$(Q)sed -i -e "s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
$(Q)sed -i -e "s@../wget-list@wget-list@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
$(Q)sed -i -e "s@../md5sums@md5sums@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
$(Q)$(MAKE) $(BASEDIR)/wget-list $(BASEDIR)/md5sums
|
||||
|
||||
tmpdir:
|
||||
@echo "Creating and cleaning $(RENDERTMP)"
|
||||
$(Q)[ -d $(RENDERTMP) ] || mkdir -p $(RENDERTMP)
|
||||
$(Q)rm -f $(RENDERTMP)/lfs-{full,html,pdf}.xml
|
||||
$(Q)rm -f $(RENDERTMP)/lfs-pdf.fo
|
||||
|
||||
validate: tmpdir
|
||||
@echo "Validating the book..."
|
||||
$(Q)xmllint --nonet --noent --xinclude --postvalid \
|
||||
-o $(RENDERTMP)/lfs-full.xml index.xml
|
||||
@echo "Validation complete."
|
||||
|
||||
profile-html: validate
|
||||
@echo "Generating profiled XML for XHTML..."
|
||||
$(Q)xsltproc --nonet --stringparam profile.condition html \
|
||||
--output $(RENDERTMP)/lfs-html.xml stylesheets/lfs-xsl/profile.xsl \
|
||||
$(RENDERTMP)/lfs-full.xml
|
||||
|
||||
wget-list: $(BASEDIR)/wget-list
|
||||
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml packages.ent patches.ent
|
||||
@echo "Generating wget list..."
|
||||
$(Q)mkdir -p $(BASEDIR)
|
||||
$(Q)xsltproc --xinclude --nonet --output $(BASEDIR)/wget-list \
|
||||
stylesheets/wget-list.xsl chapter03/chapter03.xml
|
||||
|
||||
md5sums: $(BASEDIR)/md5sums
|
||||
$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml packages.ent patches.ent
|
||||
@echo "Generating md5sum file..."
|
||||
$(Q)mkdir -p $(BASEDIR)
|
||||
$(Q)xsltproc --xinclude --nonet --output $(BASEDIR)/md5sums \
|
||||
stylesheets/md5sum.xsl chapter03/chapter03.xml
|
||||
|
||||
dump-commands: validate
|
||||
@echo "Dumping book commands..."
|
||||
$(Q)xsltproc --output $(DUMPDIR)/ \
|
||||
stylesheets/dump-commands.xsl $(RENDERTMP)/lfs-full.xml
|
||||
|
||||
|
||||
all: lfs nochunks pdf dump-commands
|
||||
|
||||
.PHONY : all dump-commands lfs nochunks pdf profile-html tmpdir validate
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
LFS Book README
|
||||
|
||||
This document is meant to instruct the user on how to convert the book's XML
|
||||
source to other formats (e.g. HTML, PDF, PS and TXT). First, if you have not
|
||||
already done so, please read the INSTALL file for instructions on how to install
|
||||
the required software. If you have already completed the steps outlined in the
|
||||
INSTALL file, then continue reading for examples how to convert these files into
|
||||
various other formats.
|
||||
|
||||
XML to XHTML:
|
||||
-------------
|
||||
make BASEDIR=/path/to/output/location
|
||||
|
||||
|
||||
XML to single file XHTML (nochunks):
|
||||
------------------------------------
|
||||
make BASEDIR=/path/to/output/location nochunks
|
||||
|
||||
|
||||
XML to TXT
|
||||
----------
|
||||
Follow the instructions for nochunks and then run:
|
||||
lynx -dump /path/to/nochunks >/path/to/output
|
||||
|
||||
|
||||
XML to PDF:
|
||||
-----------
|
||||
make BASEDIR=/path/to/output/location pdf
|
||||
|
||||
|
|
@ -0,0 +1,437 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<appendix id="appendixb" xreflabel="Appendix B">
|
||||
<?dbhtml dir="appendices"?>
|
||||
<?dbhtml filename="acknowledgments.html"?>
|
||||
|
||||
<title>Acknowledgments</title>
|
||||
|
||||
<para>We would like to thank the following people and organizations
|
||||
for their contributions to the Linux From Scratch Project.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:gerard@linuxfromscratch.org">Gerard
|
||||
Beekmans</ulink> <gerard@linuxfromscratch.org> –
|
||||
LFS Creator, LFS Project Leader</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:matthew@linuxfromscratch.org">Matthew
|
||||
Burgess</ulink> <matthew@linuxfromscratch.org> –
|
||||
LFS Project Leader, LFS Technical Writer/Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:bdubbs@linuxfromscratch.org">Bruce
|
||||
Dubbs</ulink> <bdubbs@linuxfromscratch.org> – LFS Release
|
||||
Manager, LFS Technical Writer/Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:jim@linuxfromscratch.org">Jim
|
||||
Gifford</ulink> <jim@linuxfromscratch.org> – CLFS Project
|
||||
Co-Leader</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:bryan@linuxfromscratch.org">Bryan
|
||||
Kadzban</ulink> <bryan@linuxfromscratch.org> – LFS
|
||||
Technical Writer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:randy@linuxfromscratch.org">Randy
|
||||
McMurchy</ulink> <randy@linuxfromscratch.org> – BLFS
|
||||
Project Leader, LFS Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:dj@linuxfromscratch.org">DJ Lucas</ulink>
|
||||
<dj@linuxfromscratch.org> – LFS and BLFS Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:ken@linuxfromscratch.org">Ken Moffat</ulink>
|
||||
<ken@linuxfromscratch.org> – LFS and CLFS Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:ryan@linuxfromscratch.org">Ryan
|
||||
Oliver</ulink> <ryan@linuxfromscratch.org> – CLFS Project
|
||||
Co-Leader</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@macana-es.com">Manuel Canales
|
||||
Esparcia</ulink> <macana@macana-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 until 2008</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:jmengual@linuxfromscratch.org">Jean-Philippe
|
||||
Mengual </ulink> <jmengual@linuxfromscratch.org> – French LFS
|
||||
translation project 2008-present</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:lost@l-w.net">William Astle</ulink>
|
||||
<lost@l-w.net> – ca.linuxfromscratch.org mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:eujon.sellers@gmail.com">Eujon Sellers</ulink>
|
||||
<jpolen@rackspace.com> – lfs.introspeed.com mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:justin@knierim.org">Justin Knierim</ulink>
|
||||
<tim@idge.net> – lfs-matrix.net mirror</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">South American Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:manuel@linuxfromscratch.org">Manuel
|
||||
Canales Esparcia</ulink> <manuel@linuxfromscratch.org> –
|
||||
lfsmirror.lfs-es.info mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:lfalcon@thymbra.com">Luis Falcon</ulink>
|
||||
<Luis Falcon> – torredehanoi.org mirror</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">European Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<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:sven.cranshoff@lineo.be">Sven Cranshoff</ulink>
|
||||
<sven.cranshoff@lineo.be> – lfs.lineo.be mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Scarlet Belgium – lfs.scarlet.be mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:info@aliensoft.org">Sebastian Faulborn</ulink>
|
||||
<info@aliensoft.org> – lfs.aliensoft.org mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:stuart@dontuse.ms">Stuart Fox</ulink>
|
||||
<stuart@dontuse.ms> – lfs.dontuse.ms mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:admin@realhost.de">Ralf Uhlemann</ulink>
|
||||
<admin@realhost.de> – lfs.oss-mirror.org 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:franck@linuxpourtous.com">Franck</ulink>
|
||||
<franck@linuxpourtous.com> – lfs.linuxpourtous.com mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:baque@cict.fr">Philippe Baqué</ulink>
|
||||
<baque@cict.fr> – lfs.cict.fr mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:gyouja@pilgrims.ru">Vitaly Chekasin</ulink>
|
||||
<gyouja@pilgrims.ru> – lfs.pilgrims.ru mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:kontakt@wankoo.org">Benjamin Heil</ulink>
|
||||
<kontakt@wankoo.org> – lfs.wankoo.org mirror</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">Asian Mirrors</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:satit@wbac.ac.th">Satit Phermsawang</ulink>
|
||||
<satit@wbac.ac.th> – lfs.phayoune.org mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:info@shizu-net.jp">Shizunet Co.,Ltd.</ulink>
|
||||
<info@shizu-net.jp> – lfs.mirror.shizu-net.jp mirror</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.initworld.com/">Init World</ulink>
|
||||
<http://www.initworld.com/> – lfs.initworld.com 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">Former Project Team Members</bridgehead>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:theladyskye@linuxfromscratch.org">Christine
|
||||
Barczak</ulink> <theladyskye@linuxfromscratch.org> – LFS
|
||||
Book Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Archaic
|
||||
<archaic@linuxfromscratch.org> – LFS Technical Writer/Editor,
|
||||
HLFS Project Leader, BLFS Editor, Hints and Patches Project
|
||||
Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:nathan@linuxfromscratch.org">Nathan
|
||||
Coulson</ulink> <nathan@linuxfromscratch.org> –
|
||||
LFS-Bootscripts Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Timothy Bauscher</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Robert Briggs</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ian Chilton</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:manuel@linuxfromscratch.org">Manuel
|
||||
Canales Esparcia</ulink> <manuel@linuxfromscratch.org> –
|
||||
LFS/BLFS/HLFS XML and XSL Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Alex Groenewoud – LFS Technical Writer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Marc Heerdink</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:jhuntwork@linuxfromscratch.org">Jeremy
|
||||
Huntwork</ulink> <jhuntwork@linuxfromscratch.org> – LFS
|
||||
Technical Writer, LFS LiveCD Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mark Hymers</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Seth W. Klein – FAQ 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:dnicholson@linuxfromscratch.org">Dan
|
||||
Nicholson</ulink> <dnicholson@linuxfromscratch.org> – LFS and
|
||||
BLFS Editor</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:alexander@linuxfromscratch.org">Alexander
|
||||
E. Patrakov</ulink> <alexander@linuxfromscratch.org> – LFS
|
||||
Technical Writer, LFS Internationalization Editor,
|
||||
LFS Live CD Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Simon Perreault</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:gschafer@zip.com.au">Greg Schafer</ulink>
|
||||
<gschafer@zip.com.au> – LFS Technical Writer and
|
||||
Architect of the Next Generation 64-bit-enabling Build Method</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Jesse Tie-Ten-Quee – LFS Technical Writer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:jwrober@linuxfromscratch.org">James
|
||||
Robertson</ulink> <jwrober@linuxfromscratch.org> – Bugzilla
|
||||
Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:tushar@linuxfromscratch.org">Tushar
|
||||
Teredesai</ulink> <tushar@linuxfromscratch.org> – BLFS Book
|
||||
Editor, Hints and Patches Project Leader</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:jeremy@linuxfromscratch.org">Jeremy
|
||||
Utley</ulink> <jeremy@linuxfromscratch.org> – LFS Technical
|
||||
Writer, Bugzilla Maintainer, LFS-Bootscripts Maintainer</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="mailto:zwinkles@gmail.com">Zack Winkles</ulink>
|
||||
<zwinkles@gmail.com> – LFS Technical Writer</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.seocompany.ca/">SEO Company Canada</ulink>
|
||||
supports Open Source projects and different Linux distributions</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 first linuxfromscratch.org
|
||||
server</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
-->
|
||||
</appendix>
|
|
@ -0,0 +1,538 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<appendix id="appendixa" xreflabel="Appendix A">
|
||||
<?dbhtml dir="appendices"?>
|
||||
<?dbhtml filename="acronymlist.html"?>
|
||||
|
||||
<title>Acronyms and Terms</title>
|
||||
|
||||
<variablelist>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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">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">ext2</emphasis></term>
|
||||
<listitem>
|
||||
<para>second extended file system</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ext3</emphasis></term>
|
||||
<listitem>
|
||||
<para>third extended file system</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis role="bold">ext4</emphasis></term>
|
||||
<listitem>
|
||||
<para>fourth 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>Gigabytes</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">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 Standard 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">PTY</emphasis></term>
|
||||
<listitem>
|
||||
<para>pseudo terminal</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>Standard Build 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">SHA1</emphasis></term>
|
||||
<listitem>
|
||||
<para>Secure-Hash Algorithm 1</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>
|
|
@ -0,0 +1,403 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="CC" xreflabel="Creative Commons License">
|
||||
<?dbhtml filename="creat-comm.html"?>
|
||||
|
||||
<title>Creative Commons License</title>
|
||||
|
||||
<para role='title'>Creative Commons Legal Code</para>
|
||||
|
||||
<para role='title'>Attribution-NonCommercial-ShareAlike 2.0</para>
|
||||
|
||||
<important>
|
||||
<para>CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT
|
||||
PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN
|
||||
"AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION
|
||||
PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS
|
||||
USE.</para>
|
||||
</important>
|
||||
|
||||
<para role='title'>License</para>
|
||||
|
||||
<para>THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.</para>
|
||||
|
||||
<para>BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
|
||||
BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS
|
||||
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
|
||||
CONDITIONS.</para>
|
||||
|
||||
<orderedlist>
|
||||
<?dbfo label-width="1.5em"?>
|
||||
<listitem>
|
||||
<para>Definitions</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>"Collective Work" means a work, such as a periodical issue, anthology or
|
||||
encyclopedia, in which the Work in its entirety in unmodified form, along
|
||||
with a number of other contributions, constituting separate and independent
|
||||
works in themselves, are assembled into a collective whole. A work that
|
||||
constitutes a Collective Work will not be considered a Derivative Work (as
|
||||
defined below) for the purposes of this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>"Derivative Work" means a work based upon the Work or upon
|
||||
the Work and other pre-existing works, such as a translation, musical
|
||||
arrangement, dramatization, fictionalization, motion picture version, sound
|
||||
recording, art reproduction, abridgment, condensation, or any other form in
|
||||
which the Work may be recast, transformed, or adapted, except that a work
|
||||
that constitutes a Collective Work will not be considered a Derivative Work
|
||||
for the purpose of this License. For the avoidance of doubt, where the Work
|
||||
is a musical composition or sound recording, the synchronization of the Work
|
||||
in timed-relation with a moving image ("synching") will be considered a
|
||||
Derivative Work for the purpose of this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>"Licensor" means the individual or entity that offers the
|
||||
Work under the terms of this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>"Original Author" means the individual or entity who created
|
||||
the Work.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>"Work" means the copyrightable work of authorship offered
|
||||
under the terms of this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>"You" means an individual or entity exercising rights under
|
||||
this License who has not previously violated the terms of this License with
|
||||
respect to the Work, or who has received express permission from the
|
||||
Licensor to exercise rights under this License despite a previous
|
||||
violation.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>"License Elements" means the following high-level license
|
||||
attributes as selected by Licensor and indicated in the title of this
|
||||
License: Attribution, Noncommercial, ShareAlike.</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Fair Use Rights. Nothing in this license is intended to reduce,
|
||||
limit, or restrict any rights arising from fair use, first sale or other
|
||||
limitations on the exclusive rights of the copyright owner under copyright law
|
||||
or other applicable laws.</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>License Grant. Subject to the terms and conditions of this
|
||||
License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||
perpetual (for the duration of the applicable copyright) license to exercise
|
||||
the rights in the Work as stated below:</para>
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>to reproduce the Work, to incorporate the Work into one or
|
||||
more Collective Works, and to reproduce the Work as incorporated in the
|
||||
Collective Works;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>to create and reproduce Derivative Works;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>to distribute copies or phonorecords of, display publicly,
|
||||
perform publicly, and perform publicly by means of a digital audio
|
||||
transmission the Work including as incorporated in Collective
|
||||
Works;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>to distribute copies or phonorecords of, display publicly,
|
||||
perform publicly, and perform publicly by means of a digital audio
|
||||
transmission Derivative Works;</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
|
||||
<para>The above rights may be exercised in all media and formats whether now
|
||||
known or hereafter devised. The above rights include the right to make such
|
||||
modifications as are technically necessary to exercise the rights in other
|
||||
media and formats. All rights not expressly granted by Licensor are hereby
|
||||
reserved, including but not limited to the rights set forth in Sections 4(e)
|
||||
and 4(f).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Restrictions.The license granted in Section 3 above is
|
||||
expressly made subject to and limited by the following
|
||||
restrictions:</para>
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>You may distribute, publicly display, publicly perform, or
|
||||
publicly digitally perform the Work only under the terms of this License, and
|
||||
You must include a copy of, or the Uniform Resource Identifier for, this
|
||||
License with every copy or phonorecord of the Work You distribute, publicly
|
||||
display, publicly perform, or publicly digitally perform. You may not offer
|
||||
or impose any terms on the Work that alter or restrict the terms of this
|
||||
License or the recipients' exercise of the rights granted hereunder. You may
|
||||
not sublicense the Work. You must keep intact all notices that refer to this
|
||||
License and to the disclaimer of warranties. You may not distribute, publicly
|
||||
display, publicly perform, or publicly digitally perform the Work with any
|
||||
technological measures that control access or use of the Work in a manner
|
||||
inconsistent with the terms of this License Agreement. The above applies to
|
||||
the Work as incorporated in a Collective Work, but this does not require the
|
||||
Collective Work apart from the Work itself to be made subject to the terms of
|
||||
this License. If You create a Collective Work, upon notice from any Licensor
|
||||
You must, to the extent practicable, remove from the Collective Work any
|
||||
reference to such Licensor or the Original Author, as requested. If You
|
||||
create a Derivative Work, upon notice from any Licensor You must, to the
|
||||
extent practicable, remove from the Derivative Work any reference to such
|
||||
Licensor or the Original Author, as requested.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>You may distribute, publicly display, publicly perform, or
|
||||
publicly digitally perform a Derivative Work only under the terms of this
|
||||
License, a later version of this License with the same License Elements as
|
||||
this License, or a Creative Commons iCommons license that contains the same
|
||||
License Elements as this License (e.g. Attribution-NonCommercial-ShareAlike
|
||||
2.0 Japan). You must include a copy of, or the Uniform Resource Identifier
|
||||
for, this License or other license specified in the previous sentence with
|
||||
every copy or phonorecord of each Derivative Work You distribute, publicly
|
||||
display, publicly perform, or publicly digitally perform. You may not offer
|
||||
or impose any terms on the Derivative Works that alter or restrict the terms
|
||||
of this License or the recipients' exercise of the rights granted hereunder,
|
||||
and You must keep intact all notices that refer to this License and to the
|
||||
disclaimer of warranties. You may not distribute, publicly display, publicly
|
||||
perform, or publicly digitally perform the Derivative Work with any
|
||||
technological measures that control access or use of the Work in a manner
|
||||
inconsistent with the terms of this License Agreement. The above applies to
|
||||
the Derivative Work as incorporated in a Collective Work, but this does not
|
||||
require the Collective Work apart from the Derivative Work itself to be made
|
||||
subject to the terms of this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>You may not exercise any of the rights granted to You in
|
||||
Section 3 above in any manner that is primarily intended for or directed
|
||||
toward commercial advantage or private monetary compensation. The exchange of
|
||||
the Work for other copyrighted works by means of digital file-sharing or
|
||||
otherwise shall not be considered to be intended for or directed toward
|
||||
commercial advantage or private monetary compensation, provided there is no
|
||||
payment of any monetary compensation in connection with the exchange of
|
||||
copyrighted works.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If you distribute, publicly display, publicly perform, or
|
||||
publicly digitally perform the Work or any Derivative Works or Collective
|
||||
Works, You must keep intact all copyright notices for the Work and give the
|
||||
Original Author credit reasonable to the medium or means You are utilizing by
|
||||
conveying the name (or pseudonym if applicable) of the Original Author if
|
||||
supplied; the title of the Work if supplied; to the extent reasonably
|
||||
practicable, the Uniform Resource Identifier, if any, that Licensor specifies
|
||||
to be associated with the Work, unless such URI does not refer to the
|
||||
copyright notice or licensing information for the Work; and in the case of a
|
||||
Derivative Work, a credit identifying the use of the Work in the Derivative
|
||||
Work (e.g., "French translation of the Work by Original Author," or
|
||||
"Screenplay based on original Work by Original Author"). Such credit may be
|
||||
implemented in any reasonable manner; provided, however, that in the case of
|
||||
a Derivative Work or Collective Work, at a minimum such credit will appear
|
||||
where any other comparable authorship credit appears and in a manner at least
|
||||
as prominent as such other comparable authorship credit.</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>For the avoidance of doubt, where the Work is a musical
|
||||
composition:</para>
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>Performance Royalties Under Blanket Licenses. Licensor
|
||||
reserves the exclusive right to collect, whether individually or via a
|
||||
performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the
|
||||
public performance or public digital performance (e.g. webcast) of the
|
||||
Work if that performance is primarily intended for or directed toward
|
||||
commercial advantage or private monetary compensation.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Mechanical Rights and Statutory Royalties. Licensor
|
||||
reserves the exclusive right to collect, whether individually or via a
|
||||
music rights agency or designated agent (e.g. Harry Fox Agency),
|
||||
royalties for any phonorecord You create from the Work ("cover
|
||||
version") and distribute, subject to the compulsory license created
|
||||
by 17 USC Section 115 of the US Copyright Act (or the equivalent in
|
||||
other jurisdictions), if Your distribution of such cover version is primarily
|
||||
intended for or directed toward commercial advantage or private monetary
|
||||
compensation. 6. Webcasting Rights and Statutory Royalties. For the
|
||||
avoidance of doubt, where the Work is a sound recording, Licensor
|
||||
reserves the exclusive right to collect, whether individually or via a
|
||||
performance-rights society (e.g. SoundExchange), royalties for the public
|
||||
digital performance (e.g. webcast) of the Work, subject to the compulsory
|
||||
license created by 17 USC Section 114 of the US Copyright Act (or the
|
||||
equivalent in other jurisdictions), if Your public digital performance is
|
||||
primarily intended for or directed toward commercial advantage or private
|
||||
monetary compensation.</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Webcasting Rights and Statutory Royalties. For the
|
||||
avoidance of doubt, where the Work is a sound recording, Licensor reserves
|
||||
the exclusive right to collect, whether individually or via a
|
||||
performance-rights society (e.g. SoundExchange), royalties for the public
|
||||
digital performance (e.g. webcast) of the Work, subject to the compulsory
|
||||
license created by 17 USC Section 114 of the US Copyright Act (or the
|
||||
equivalent in other jurisdictions), if Your public digital performance is
|
||||
primarily intended for or directed toward commercial advantage or private
|
||||
monetary compensation.</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Representations, Warranties and Disclaimer</para>
|
||||
|
||||
<para>UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
|
||||
CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE.
|
||||
SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
|
||||
EXCLUSION MAY NOT APPLY TO YOU.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY
|
||||
APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY
|
||||
FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Termination</para>
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Derivative Works or Collective
|
||||
Works from You under this License, however, will not have their licenses
|
||||
terminated provided such individuals or entities remain in full compliance
|
||||
with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any
|
||||
termination of this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Subject to the above terms and conditions, the license
|
||||
granted here is perpetual (for the duration of the applicable copyright in
|
||||
the Work). Notwithstanding the above, Licensor reserves the right to release
|
||||
the Work under different license terms or to stop distributing the Work at
|
||||
any time; provided, however that any such election will not serve to withdraw
|
||||
this License (or any other license that has been, or is required to be,
|
||||
granted under the terms of this License), and this License will continue in
|
||||
full force and effect unless terminated as stated above.</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Miscellaneous</para>
|
||||
|
||||
<orderedlist>
|
||||
|
||||
<listitem>
|
||||
<para>Each time You distribute or publicly digitally perform the
|
||||
Work or a Collective Work, the Licensor offers to the recipient a license to
|
||||
the Work on the same terms and conditions as the license granted to You under
|
||||
this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Each time You distribute or publicly digitally perform a
|
||||
Derivative Work, Licensor offers to the recipient a license to the original
|
||||
Work on the same terms and conditions as the license granted to You under
|
||||
this License.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>If any provision of this License is invalid or unenforceable
|
||||
under applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this License, and without further action by the
|
||||
parties to this agreement, such provision shall be reformed to the minimum
|
||||
extent necessary to make such provision valid and
|
||||
enforceable.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>No term or provision of this License shall be deemed waived
|
||||
and no breach consented to unless such waiver or consent shall be in writing
|
||||
and signed by the party to be charged with such waiver or
|
||||
consent.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>This License constitutes the entire agreement between the
|
||||
parties with respect to the Work licensed here. There are no understandings,
|
||||
agreements or representations with respect to the Work not specified here.
|
||||
Licensor shall not be bound by any additional provisions that may appear in
|
||||
any communication from You. This License may not be modified without the
|
||||
mutual written agreement of the Licensor and You.</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<important>
|
||||
<para>Creative Commons is not a party to this License, and makes no warranty
|
||||
whatsoever in connection with the Work. Creative Commons will not be liable to
|
||||
You or any party on any legal theory for any damages whatsoever, including
|
||||
without limitation any general, special, incidental or consequential damages
|
||||
arising in connection to this license. Notwithstanding the foregoing two (2)
|
||||
sentences, if Creative Commons has expressly identified itself as the Licensor
|
||||
hereunder, it shall have all rights and obligations of Licensor.</para>
|
||||
|
||||
<para>Except for the limited purpose of indicating to the public that the Work is
|
||||
licensed under the CCPL, neither party will use the trademark "Creative
|
||||
Commons" or any related trademark or logo of Creative Commons without the prior
|
||||
written consent of Creative Commons. Any permitted use will be in compliance
|
||||
with Creative Commons' then-current trademark usage guidelines, as may be
|
||||
published on its website or otherwise made available upon request from time to
|
||||
time.</para>
|
||||
|
||||
<para>Creative Commons may be contacted at <ulink url='http://creativecommons.org/' />.</para>
|
||||
</important>
|
||||
|
||||
|
||||
</sect1>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<appendix id="Licenses" xreflabel="Appendix E">
|
||||
<?dbhtml dir="appendices"?>
|
||||
<?dbhtml filename="licenses.html"?>
|
||||
|
||||
<title>LFS Licenses</title>
|
||||
|
||||
<para>This book is licensed under the Creative Commons
|
||||
Attribution-NonCommercial-ShareAlike 2.0 License.</para>
|
||||
|
||||
<para>Computer instructions may be extracted from the book under the MIT
|
||||
License.</para>
|
||||
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creat-comm.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mit-lic.xml"/>
|
||||
|
||||
|
||||
</appendix>
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="MIT" xreflabel="MIT License">
|
||||
<?dbhtml filename="mit.html" ?>
|
||||
|
||||
<title>The MIT License</title>
|
||||
|
||||
<para>Copyright © ©rightdate; Gerard Beekmans</para>
|
||||
|
||||
<para>Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:</para>
|
||||
|
||||
<para>The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.</para>
|
||||
|
||||
<para>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,129 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-intro-askforhelp">
|
||||
<?dbhtml filename="askforhelp.html"?>
|
||||
|
||||
<title>Help</title>
|
||||
|
||||
<para>If an issue or a question is encountered while working through
|
||||
this book, please 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>If you cannot find your problem listed in the FAQ, search the mailing
|
||||
lists at <ulink url="&lfs-root;search.html"/>.</para>
|
||||
|
||||
<para>We also have a wonderful LFS community that is willing to offer
|
||||
assistance through the mailing lists and IRC (see the <xref
|
||||
linkend="ch-intro-resources"/> section of this book). However,
|
||||
we get several support questions every day and many of them can be easily
|
||||
answered by going to the FAQ and by searching the mailing lists first.
|
||||
So, for us to offer the best assistance possible, you need to do some
|
||||
research on your own first. That allows us to focus on the more unusual
|
||||
support needs. If your searches do not produce a solution, please include
|
||||
all relevant information (mentioned below) 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 output from the <xref linkend='version-check'/> script</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 Script Problems</title>
|
||||
|
||||
<para>If something goes wrong while running the <command>configure</command>
|
||||
script, review the <filename>config.log</filename> file. This file may
|
||||
contain errors encountered during <command>configure</command> which were
|
||||
not printed to the screen. Include the <emphasis>relevant</emphasis> lines
|
||||
if you need to ask for help.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Compilation Problems</title>
|
||||
|
||||
<para>Both the screen output and the contents of various files are useful
|
||||
in determining the cause of compilation problems. 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>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,725 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-scatter-changelog">
|
||||
<?dbhtml filename="changelog.html"?>
|
||||
|
||||
<title>Changelog</title>
|
||||
|
||||
<para>This is version &version; of the Linux From Scratch book, dated
|
||||
&releasedate;. If this book is more than six months old, a newer and better
|
||||
version is probably already available. To find out, please check one of the
|
||||
mirrors via <ulink url="&lfs-root;mirrors.html"/>.</para>
|
||||
|
||||
<para>Below is a list of changes made since the previous release of the
|
||||
book.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<title>Changelog Entries:</title>
|
||||
|
||||
<!-- Changelog template
|
||||
|
||||
<listitem>
|
||||
<para>Date</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[name] - New changelog entry.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[name] - Previous changelog entry.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
-->
|
||||
|
||||
<listitem>
|
||||
<para>2016-01-17</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[dj] - Sync to LFS r10986.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to linux-4.4 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to iproute2-4.4.0 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2016-01-02</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[dj] - Fix build of systemd with libblkid and libmount in
|
||||
/tools/lib and move util-linux to its previous build order to
|
||||
solve reciprocal dependency.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Removed /etc/resolv.conf symlink in network
|
||||
configuration as it is created automatically if needed.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2016-01-01</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[dj] - Fix broken build order - move xz, kmod, gettext, and
|
||||
util-linux before systemd.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to man-pages-4.04 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-12-31</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[dj] - Use 'ipv4" instead of "yes" for DCHP configuration in
|
||||
systemd-networkd configuration.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Modify text in network configuration page to more
|
||||
accurately reflect current version of systemd.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Change build order for gperf before expat.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Change build order for systemd before procps-ng.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Add --with-systemd to procps-ng configuration.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to systemd-228.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to DBus-1.10.6.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Sync to LFS r10981.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Add OpenSSL as optional kernel dependency - Merged
|
||||
from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to findutils-4.6.0 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to gettext-0.19.7 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to linux-4.3.3 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Reword FHS Compliance Note - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to perl-5.22.1 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to perl-5.22.1 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to man-pages-4.03 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Fix xz problem identified upstream - Merged from
|
||||
trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to gcc-5.3.0 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to gmp-6.1.0 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update host requirements to require GCC-4.7 or
|
||||
later - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Clarify that setting and using the LFS variable
|
||||
assumes the bash shell - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to flex-2.6.0 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to man-db-2.7.5 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to kmod-22 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Add glibc-2.22-largefile-1.patch.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to linux-4.3 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to iproute2-4.3.0 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to grep-2.22 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to util-linux-2.27.1 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Revise version-check.sh to flag bad /bin/sh
|
||||
symlinks - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to less-481 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to man-db-2.7.4 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to tzdata2015g - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Many updates to installed files and directories. Huge
|
||||
thanks to Fernando - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Reset location of anduin hosted files - Merged from
|
||||
trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Change references to ncursesw5 to
|
||||
ncursesw6. Thanks to Pierre Labastie for the patch - Merged from
|
||||
trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to gettext-0.19.6 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to file-5.25 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to pkg-config-0.29 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[dj] - Update to xz-5.2.2 - Merged from trunk.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-09-28</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[renodr] - Fix a warning when doing the GCC compile tests.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Add additional discussion about copying LFS systems
|
||||
from one machine to another machine.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Provide ncurses non-wide-character libraries that
|
||||
are compliant with version 5 of ncurses.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Remove unnecessary sed in e2fsprogs.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to util-linux-2.27.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to linux-4.2.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to iproute2-4.2.0.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Refresh build sizes and SBU values.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-08-25</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[renodr] - Add an upstream patch for MPFR.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to libpipeline-1.4.1.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to linux-4.1.6.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to man-db-2.7.2.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Add a patch to allow glibc to build properly on i386 systems.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Remove obsolete r* programs from inetutils.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-08-19</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Add a workaround to ncurses in
|
||||
Chapter 5 for hosts that have mawk installed.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to binutils-2.25.1.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to check-0.10.0.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to procps-ng-3.3.11.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to man-pages-4.02.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to glibc-2.22.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to linux-4.1.5.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[renodr] - Update to tzdata2015f.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-07-23</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[krejzi] - Fixed a warning in the intltool-update
|
||||
perl script caused by perl-5.22.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[krejzi] - Updated to dbus-1.8.20.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[krejzi] - Updated to systemd-222.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-07-16</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to gcc-5.2.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3819">*3819</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to gettext-0.19.5.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3818">*3818</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to kbd-2.0.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3815">#3815</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-07-12</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to iproute2-4.1.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3811">*3811</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to file-5.24. Fixes
|
||||
<ulink url="&lfs-ticket-root;3812">*3812</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.1.2. Fixes
|
||||
<ulink url="&lfs-ticket-root;3814">#3814</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to gettext-0.19.5. Fixes
|
||||
<ulink url="&lfs-ticket-root;3813">#3813</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Fix a warning in the installed automake
|
||||
perl script.
|
||||
<ulink url="&lfs-ticket-root;3809">#3809</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-07-04</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to iproute2-4.1.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3802">*3802</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to texinfo-6.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3803">*3803</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.1.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3805">#3805</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to coreutils-8.24. Fixes
|
||||
<ulink url="&lfs-ticket-root;3806">#3806</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update perl installed files. Fixes
|
||||
<ulink url="&lfs-ticket-root;3804">#3804</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-06-28</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[krejzi] - Updated to systemd-221.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-06-23</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to tzdata-2015e. Fixes
|
||||
<ulink url="&lfs-ticket-root;3798">*3798</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to mpfr-3.1.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3800">#3800</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3801">#3801</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-06-13</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Simplify gcc-pass1 instructions. Thanks to
|
||||
Pierre Labastie for the patch. Fixes
|
||||
<ulink url="&lfs-ticket-root;3797">#3797</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-06-10</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update standards discussion for FHS 3.0
|
||||
and LSB-5.0.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to inetutils-1.9.4. Fixes
|
||||
<ulink url="&lfs-ticket-root;3796">#3796</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to file-5.23. Fixes
|
||||
<ulink url="&lfs-ticket-root;3795">#3795</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to kmod-21. Fixes
|
||||
<ulink url="&lfs-ticket-root;3794">#3794</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-06-07</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.0.5. Fixes
|
||||
<ulink url="&lfs-ticket-root;3793">#3793</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-06-05</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to perl-5.22.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3791">#3791</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-05-25</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to bash-4.3.30-upstream_fixes-2.patch.
|
||||
Fixes <ulink url="&lfs-ticket-root;3789">#3789</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-05-23</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.0.4. Fixes
|
||||
<ulink url="&lfs-ticket-root;3786">#3786</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to e2fsprogs-1.42.13. Fixes
|
||||
<ulink url="&lfs-ticket-root;3787">#3787</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to gawk-4.1.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3788">#3788</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Added a new patch for gcc to fix inline
|
||||
issues and some libgomp problems.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-05-15</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Add a patch from upstream to fix
|
||||
some libgomp (gcc) problems.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-05-14</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to gawk-4.1.2. Fixes
|
||||
<ulink url="&lfs-ticket-root;3781">#3781</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.0.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3782">#3782</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to util-linux-2.26.2. Fixes
|
||||
<ulink url="&lfs-ticket-root;3783">#3783</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to man-pages-4.00. Fixes
|
||||
<ulink url="&lfs-ticket-root;3784">#3784</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to inetutils-1.9.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3785">#3785</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[krejzi] - Updated to dbus-1.8.18.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-04-26</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Updated to tzdata-2015d. Fixes
|
||||
<ulink url="&lfs-ticket-root;3780">#3780</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-04-24</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[krejzi] - Added a fix for security issue
|
||||
in Glibc (CVE-2015-1781). Thanks to Ken Moffat
|
||||
for identifying the problem and the fix.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[krejzi] - Fixed Ncurses and Perl build
|
||||
with GCC 5. Thanks to Ken Moffat and Douglas
|
||||
R. Reno for providing the patches.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[krejzi] - Updated to GCC-5.1.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3779">#3779</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-04-21</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to man-pages-3.8.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3778">#3778</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-04-16</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-4.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3775">#3775</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to tzdata-2015c. Fixes
|
||||
<ulink url="&lfs-ticket-root;3776">#3776</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to iproute2-4.0.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3777">#3777</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-31</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Adjust discussion of LFS envronment variable to be
|
||||
before first use.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Use --with-glibc-version=2.11 in gcc-pass1.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to dejagnu-1.5.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3773">#3773</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-28</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-3.19.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3772">#3772</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to tzdata2015b. Fixes
|
||||
<ulink url="&lfs-ticket-root;3770">#3770</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-20</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-3.19.2. Fixes
|
||||
<ulink url="&lfs-ticket-root;3768">#3768</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-15</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to tcl-core-8.6.4. Fixes
|
||||
<ulink url="&lfs-ticket-root;3766">#3766</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to util-linux-2.26.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3767">#3767</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Remove non-essential static libraries
|
||||
from the installation. Added a new section in Chapter 6
|
||||
Introduction, suppressed many static libraries in different
|
||||
packages, and removed the remaining in the Cleaning Up section.
|
||||
Fixes
|
||||
<ulink url="&lfs-ticket-root;3751">#3751</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-11</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to intltool-0.51.0. Fixes
|
||||
<ulink url="&lfs-ticket-root;3764">#3764</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-08</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to linux-3.19.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3763">#3763</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to patch-2.7.5. Fixes
|
||||
<ulink url="&lfs-ticket-root;3762">#3762</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Change tcl to minimal tcl-core package. Fixes
|
||||
<ulink url="&lfs-ticket-root;3752">#3752</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-07</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to mpc-1.0.3. Fixes
|
||||
<ulink url="&lfs-ticket-root;3753">#3753</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to man-pages-3.8.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3754">#3754</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to xz-5.2.1. Fixes
|
||||
<ulink url="&lfs-ticket-root;3757">#3757</ulink>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Update to kmod-20. Fixes
|
||||
<ulink url="&lfs-ticket-root;3758">#3758</ulink>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2015-03-06</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[krejzi] - LFS-7.7-systemd released.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect1>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<chapter id="chapter-intro" xreflabel="Chapter 1">
|
||||
<?dbhtml dir="chapter01"?>
|
||||
<?dbhtml filename="chapter01.html"?>
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="how.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="whatsnew.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="changelog.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="resources.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="askforhelp.xml"/>
|
||||
<!--<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="livecd.xml"/>-->
|
||||
|
||||
</chapter>
|
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-intro-how">
|
||||
<?dbhtml filename="how.html"?>
|
||||
|
||||
<title>How to Build an LFS System</title>
|
||||
|
||||
<para>The LFS system will be built by using an already installed
|
||||
Linux distribution (such as Debian, OpenMandriva, Fedora, or openSUSE). 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>As an alternative to installing a separate distribution onto your
|
||||
machine, you may wish to use <!-- the Linux From Scratch LiveCD or --> a LiveCD from a
|
||||
commercial distribution. <!-- The LFS LiveCD works well as a host system,
|
||||
providing all the tools you need to successfully follow the instructions in
|
||||
this book. The LiveCD version is behind the current book, but is still useful
|
||||
as a host for building the current book. The <quote>-nosrc</quote> or
|
||||
<quote>-min</quote> editions of the LiveCD are the most appropriate for
|
||||
building a current LFS system. For more information about the LFS LiveCD or
|
||||
to download a copy, visit <ulink url="&livecd-root;"/>. --></para>
|
||||
|
||||
<!--
|
||||
<note>
|
||||
<para>The LFS LiveCD might not work on newer hardware configurations,
|
||||
failing to boot or failing to detect some devices such as some SATA hard
|
||||
drives.</para>
|
||||
</note> -->
|
||||
|
||||
<para><xref linkend="chapter-partitioning"/> of this book describes how
|
||||
to create a new Linux native partition and file system. This is the place
|
||||
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 of an appropriate working environment. Please read
|
||||
<xref linkend="chapter-final-preps"/> carefully as it explains several
|
||||
important issues you need be aware of before beginning to
|
||||
work your way 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 you how to
|
||||
build a first pass of the toolchain, including Binutils and GCC (first pass
|
||||
basically means these two core packages will be reinstalled).
|
||||
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>This effort to isolate the new system from the host distribution may
|
||||
seem excessive. A full technical explanation as to why this is done is provided in
|
||||
<xref linkend="ch-tools-toolchaintechnotes"/>.</para>
|
||||
|
||||
<para>In <xref linkend="chapter-building-system"/>, the full LFS system is
|
||||
built. The <command>chroot</command> (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 uses <command>chroot</command> because
|
||||
creating a bootable system requires additional work which is not necessary
|
||||
just yet. The major advantage is that <quote>chrooting</quote> allows you
|
||||
to continue using the host system while LFS is being built. While waiting
|
||||
for package compilations to complete, you can continue using your computer as
|
||||
normal.</para>
|
||||
|
||||
<para>To finish the installation, the basic system configuration is 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 continuing the LFS experience beyond this book.
|
||||
After the steps in this book have been implemented, the computer will be
|
||||
ready to reboot into the new LFS system.</para>
|
||||
|
||||
<para>This is the process in a nutshell. Detailed information on each
|
||||
step is discussed in the following chapters and package descriptions.
|
||||
Items that may seem complicated will be clarified, and everything will
|
||||
fall into place as you embark on the LFS adventure.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-intro-livecd">
|
||||
<?dbhtml filename="livecd.html"?>
|
||||
|
||||
<title>About the Included CD</title>
|
||||
|
||||
<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>
|
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-intro-resources">
|
||||
<?dbhtml filename="resources.html"?>
|
||||
|
||||
<title>Resources</title>
|
||||
|
||||
<sect2 id="ch-intro-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)
|
||||
that is located at <ulink url="&faq-root;"/>.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-intro-maillists" xreflabel="Chapter 1 - Mailing Lists">
|
||||
<title>Mailing Lists</title>
|
||||
|
||||
<para>The <uri>linuxfromscratch.org</uri> server hosts a number of mailing
|
||||
lists used for the development of the LFS project. These lists include the
|
||||
main development and support lists, among others. If the FAQ does not solve
|
||||
the problem you are having, the next step would be to search the mailing
|
||||
lists at <ulink url="&lfs-root;search.html"/>.</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>
|
||||
|
||||
<!-- FIXME: Remove until such time as we have our own News Server, JH 20060105
|
||||
|
||||
<sect2 id="ch-intro-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-intro-irc">
|
||||
<title>IRC</title>
|
||||
|
||||
<para>Several members of the LFS community offer assistance on Internet
|
||||
Relay Chat (IRC). Before using this support, please make sure that your
|
||||
question is not already answered in the LFS FAQ or the mailing list
|
||||
archives. You can find the IRC network at <uri>irc.freenode.net</uri>.
|
||||
The support channel is named #LFS-support.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<!-- Commentted out until the target link is updated
|
||||
<sect2 id="ch-intro-references">
|
||||
<title>References</title>
|
||||
|
||||
<para>For additional information on the packages, useful tips are
|
||||
available in the LFS Package Reference page located at <ulink
|
||||
url="http://www.linuxfromscratch.org/~matthew/LFS-references.html"/>.</para>
|
||||
|
||||
</sect2> -->
|
||||
|
||||
<sect2 id="ch-intro-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;mirrors.html"/> for a list
|
||||
of current mirrors.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ch-intro-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>
|
|
@ -0,0 +1,277 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-intro-whatsnew">
|
||||
<?dbhtml filename="whatsnew.html"?>
|
||||
|
||||
<title>What's new since the last release</title>
|
||||
|
||||
<para>Below is a list of package updates made since the previous
|
||||
release of the book.</para>
|
||||
|
||||
<!--
|
||||
Every package in the book is listed in the "Upgraded to:" section.
|
||||
Comment/uncomment as needed. DO NOT delete any of these lines unless that
|
||||
package is removed from the book entirely.
|
||||
-->
|
||||
|
||||
<itemizedlist>
|
||||
<title>Upgraded to:</title>
|
||||
<listitem><para></para></listitem> <!-- satisfy build -->
|
||||
<!--<listitem>
|
||||
<para>None</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Acl-&acl-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Attr-&attr-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Autoconf &autoconf-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Automake &automake-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Bash &bash-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Binutils &binutils-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Bison &bison-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Bzip2 &bzip2-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Check &check-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Coreutils &coreutils-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>D-Bus-&dbus-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>DejaGNU &dejagnu-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Diffutils &diffutils-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>E2fsprogs &e2fsprogs-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Expat-&expat-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Expect &expect-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>File &file-version;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Findutils &findutils-version;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Flex &flex-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Gawk &gawk-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>GCC &gcc-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>GDBM &gdbm-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Gettext &gettext-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Glibc &glibc-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>GMP &gmp-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Gperf-&gperf-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Grep &grep-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Groff &groff-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>GRUB &grub-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Gzip &gzip-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>IANA-Etc &iana-etc-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Inetutils &inetutils-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Intltool-&intltool-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>IPRoute2 &iproute2-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Kbd &kbd-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Kmod &kmod-version;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Less &less-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Libcap-&libcap-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Libpipeline &libpipeline-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Libtool &libtool-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Linux &linux-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>M4 &m4-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Make &make-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Man-DB &man-db-version;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Man-pages &man-pages-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>MPC &mpc-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>MPFR &mpfr-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Ncurses &ncurses-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Patch &patch-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Perl &perl-version;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Pkg-config &pkgconfig-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Procps-ng &procps-ng-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Psmisc &psmisc-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Readline &readline-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Sed &sed-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Shadow &shadow-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Systemd &systemd-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Tar &tar-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Tcl-core-&tcl-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>Texinfo &texinfo-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>Tzdata &tzdata-version;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Util-Linux &util-linux-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Vim &vim-version;</para>
|
||||
</listitem>-->
|
||||
<!--<listitem>
|
||||
<para>XML-Parser-&xml-parser-version;</para>
|
||||
</listitem>-->
|
||||
<listitem>
|
||||
<para>XZ-Utils &xz-version;</para>
|
||||
</listitem>
|
||||
<!--<listitem>
|
||||
<para>Zlib &zlib-version;</para>
|
||||
</listitem>-->
|
||||
</itemizedlist>
|
||||
|
||||
<!--<itemizedlist>
|
||||
<title>Downgraded to:</title>
|
||||
|
||||
<listitem>
|
||||
<para>PLACEHOLDER</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>-->
|
||||
|
||||
<itemizedlist>
|
||||
<title>Added:</title>
|
||||
<listitem><para></para></listitem> <!-- satisfy build -->
|
||||
|
||||
<listitem>
|
||||
<para>&glibc-largefile-patch;</para>
|
||||
</listitem>
|
||||
|
||||
<!--<listitem>
|
||||
<para>&glibc-upstream-patch;</para>
|
||||
</listitem>-->
|
||||
|
||||
<!--<listitem>
|
||||
<para>&mpfr-upstream-patch;</para>
|
||||
</listitem>-->
|
||||
|
||||
<!--<listitem>
|
||||
<para>Tcl-core-&tcl-version;</para>
|
||||
</listitem>-->
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<itemizedlist>
|
||||
<title>Removed:</title>
|
||||
<listitem><para></para></listitem> <!-- satisfy build -->
|
||||
|
||||
<!--<listitem>
|
||||
<para>bash-4.3.30-upstream_fixes-1.patch</para>
|
||||
</listitem>-->
|
||||
|
||||
<!--<listitem>
|
||||
<para>mpfr-3.1.2-upstream_fixes-3.patch</para>
|
||||
</listitem>-->
|
||||
|
||||
<!--<listitem>
|
||||
<para>Tcl-8.6.3</para>
|
||||
</listitem>-->
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-partitioning-aboutlfs">
|
||||
<?dbhtml filename="aboutlfs.html"?>
|
||||
|
||||
<title>Setting The $LFS Variable</title>
|
||||
|
||||
<para>Throughout this book, the environment variable <envar>LFS</envar> will
|
||||
be used several times. You should ensure that this variable is always defined
|
||||
throughout the LFS build process. It should be set to the name of the
|
||||
directory where you will be building your LFS system - we will use
|
||||
<filename class="directory">/mnt/lfs</filename> as an example, but the
|
||||
directory choice is up to you. If you are building LFS on a separate
|
||||
partition, this directory will be the mount point for the partition.
|
||||
Choose a directory location and set the variable with the
|
||||
following command:</para>
|
||||
|
||||
<screen role="nodump"><userinput>export LFS=<replaceable>/mnt/lfs</replaceable></userinput></screen>
|
||||
|
||||
<para>Having this variable set is beneficial in that commands such as
|
||||
<command>mkdir -v $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>
|
||||
|
||||
<caution>
|
||||
<para>Do not forget to check that <envar>LFS</envar> is set whenever
|
||||
you leave and reenter the current working environment (such as when doing a
|
||||
<command>su</command> to <systemitem class="username">root</systemitem> or
|
||||
another user). Check that the <envar>LFS</envar> variable is set up
|
||||
properly with:</para>
|
||||
</caution>
|
||||
|
||||
<screen role="nodump"><userinput>echo $LFS</userinput></screen>
|
||||
|
||||
<para>Make sure the output shows the path to your LFS system's build
|
||||
location, which is <filename class="directory">/mnt/lfs</filename> if the
|
||||
provided example was followed. If the output is incorrect, use the command
|
||||
given earlier on this page to set <envar>$LFS</envar> to the correct
|
||||
directory name.</para>
|
||||
|
||||
<note><para>One way to ensure that the <envar>LFS</envar> variable is always
|
||||
set is to edit the <filename>.bash_profile</filename> file in both your
|
||||
personal home directory and in <filename>/root/.bash_profile</filename> and
|
||||
enter the export command above. In addition, the shell specified in the
|
||||
<filename>/etc/passwd</filename> file for all users that need the
|
||||
<envar>LFS</envar> variable needs to be bash to ensure that the
|
||||
<filename>/root/.bash_profile</filename> file is incorporated as a part of
|
||||
the login process.</para></note>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<chapter id="chapter-partitioning" xreflabel="Chapter 2">
|
||||
<?dbhtml dir="chapter02"?>
|
||||
<?dbhtml filename="chapter02.html"?>
|
||||
|
||||
<title>Preparing a New Partition</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingpartition.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingfilesystem.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutlfs.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mounting.xml"/>
|
||||
|
||||
</chapter>
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="space-creatingfilesystem">
|
||||
<?dbhtml filename="creatingfilesystem.html"?>
|
||||
|
||||
<title>Creating a File System on the Partition</title>
|
||||
|
||||
<para>Now that a blank partition has been set up, the file system can be
|
||||
created. LFS can use any file system recognized by the Linux kernel, but the
|
||||
most common types are ext3 and ext4. The choice of file system can be
|
||||
complex and depends on the characteristics of the files and the size of
|
||||
the partition. For example:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>ext2</term>
|
||||
<listitem><para>is suitable for small partitions that are updated infrequently
|
||||
such as /boot.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>ext3</term>
|
||||
<listitem><para>is an upgrade to ext2 that includes a journal
|
||||
to help recover the partition's status in the case of an unclean
|
||||
shutdown. It is commonly used as a general purpose file system.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>ext4</term>
|
||||
<listitem><para>is the latest version of the ext file system family of
|
||||
partition types. It provides several new capabilities including
|
||||
nano-second timestamps, creation and use of very large files (16 TB), and
|
||||
speed improvements.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Other file systems, including FAT32, NTFS, ReiserFS, JFS, and XFS are
|
||||
useful for specialized purposes. More information about these file systems
|
||||
can be found at <ulink
|
||||
url="http://en.wikipedia.org/wiki/Comparison_of_file_systems"/>.</para>
|
||||
|
||||
<para>LFS assumes that the root file system (/) is of type ext4. To create
|
||||
an <systemitem class="filesystem">ext4</systemitem> file system on the LFS
|
||||
partition, run the following:</para>
|
||||
|
||||
<screen role="nodump"><userinput>mkfs -v -t ext4 /dev/<replaceable><xxx></replaceable></userinput></screen>
|
||||
|
||||
<!--
|
||||
<para>Replace <replaceable><xxx></replaceable> with the name of the LFS
|
||||
partition (<filename class="devicefile">sda5</filename> in our previous
|
||||
example).</para>
|
||||
|
||||
<note>
|
||||
<para>Some host distributions use custom features in their filesystem
|
||||
creation tools (E2fsprogs). This can cause problems when booting into your new
|
||||
LFS in Chapter 9, as those features will not be supported by the LFS-installed
|
||||
E2fsprogs; you will get an error similar to <quote>unsupported filesystem
|
||||
features, upgrade your e2fsprogs</quote>. To check if your host system
|
||||
uses custom enhancements, run the following command:</para>
|
||||
|
||||
<screen role="nodump"><userinput>debugfs -R feature /dev/<replaceable><xxx></replaceable></userinput></screen>
|
||||
|
||||
<para>If the output contains features other than
|
||||
<option>has_journal</option>, <option>ext_attr</option>,
|
||||
<option>resize_inode</option>, <option>dir_index</option>,
|
||||
<option>filetype</option>, <option>sparse_super</option>,
|
||||
<option>large_file</option> or <option>needs_recovery</option>, then your
|
||||
host system may have custom enhancements. In that case, to avoid later
|
||||
problems, you should compile the stock E2fsprogs package and use the
|
||||
resulting binaries to re-create the filesystem on your LFS partition:</para>
|
||||
|
||||
<screen role="nodump"><userinput>cd /tmp
|
||||
tar -xzvf /path/to/sources/e2fsprogs-&e2fsprogs-version;.tar.gz
|
||||
cd e2fsprogs-&e2fsprogs-version;
|
||||
mkdir -v build
|
||||
cd build
|
||||
../configure
|
||||
make #note that we intentionally don't 'make install' here!
|
||||
./misc/mke2fs -jv /dev/<replaceable><xxx></replaceable>
|
||||
cd /tmp
|
||||
rm -rfv e2fsprogs-&e2fsprogs-version;</userinput></screen>
|
||||
</note>
|
||||
-->
|
||||
<para>If you are using an existing <systemitem class="filesystem">swap
|
||||
</systemitem> partition, there is no need to format it. If a new
|
||||
<systemitem class="filesystem"> swap</systemitem> partition was created,
|
||||
it will need to be initialized with this command:</para>
|
||||
|
||||
<screen role="nodump"><userinput>mkswap /dev/<replaceable><yyy></replaceable></userinput></screen>
|
||||
|
||||
<para>Replace <replaceable><yyy></replaceable> with the name of the
|
||||
<systemitem class="filesystem">swap</systemitem> partition.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="space-creatingpartition">
|
||||
<?dbhtml filename="creatingpartition.html"?>
|
||||
|
||||
<title>Creating a New Partition</title>
|
||||
|
||||
<para>Like most other operating systems, LFS is usually installed on a
|
||||
dedicated partition. The recommended approach to building an LFS system
|
||||
is to use an available empty partition or, if you have enough unpartitioned
|
||||
space, to create one.</para>
|
||||
|
||||
<!--
|
||||
|
||||
<para>It is possible to install an LFS system (in fact even multiple LFS
|
||||
systems) 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"/>
|
||||
contains notes on how to implement this. This document was last updated
|
||||
in 2004. It has not been updated since and it has not been tested with
|
||||
recent versions of this LFS book. The document is more than likely not
|
||||
usable as-is and you will need to account for changes made to the LFS
|
||||
procedures since it was written. This is only recommended for expert LFS
|
||||
users.</para>
|
||||
|
||||
-->
|
||||
|
||||
<para>A minimal system requires a partition of around 4 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. A 10 GB partition is a reasonable size to provide for growth. The LFS
|
||||
system itself will not take up this much room. A large portion of this
|
||||
requirement is to provide sufficient free temporary storage. 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
|
||||
<systemitem class="filesystem">swap</systemitem> space. This is used by the
|
||||
kernel to store seldom-used data and leave more memory available for active
|
||||
processes. The <systemitem class="filesystem">swap</systemitem> partition for
|
||||
an LFS system can be the same as the one used by the host system, in which
|
||||
case it is not necessary to create another one.</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/sda</filename> for the primary Integrated
|
||||
Drive Electronics (IDE) disk. Create a Linux native partition and a
|
||||
<systemitem class="filesystem">swap</systemitem> partition, if needed. Please
|
||||
refer to <filename>cfdisk(8)</filename> or <filename>fdisk(8)</filename> if
|
||||
you do not yet know how to use the programs.</para>
|
||||
|
||||
<note><para>For experienced users, other partitioning schemes are possible.
|
||||
The new LFS system can be on a software <ulink
|
||||
url="&blfs-book;postlfs/raid.html">RAID</ulink> array or an <ulink
|
||||
url="&blfs-book;postlfs/aboutlvm.html">LVM</ulink> logical volume.
|
||||
However, some of these options require an <ulink
|
||||
url="&blfs-book;postlfs/initramfs.html">initramfs</ulink>, which is
|
||||
an advanced topic. These partitioning methodologies are not recommended for
|
||||
first time LFS users.</para></note>
|
||||
|
||||
<para>Remember the designation of the new partition (e.g., <filename
|
||||
class="devicefile">sda5</filename>). This book will refer to this as
|
||||
the LFS partition. Also remember the designation of the <systemitem
|
||||
class="filesystem">swap</systemitem> partition. These names will be
|
||||
needed later for the <filename>/etc/fstab</filename> file.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Other Partition Issues</title>
|
||||
|
||||
<para>Requests for advice on system partitioning are often posted on the LFS mailing
|
||||
lists. This is a highly subjective topic. The default for most distributions
|
||||
is to use the entire drive with the exception of one small swap partition. This
|
||||
is not optimal for LFS for several reasons. It reduces flexibility, makes
|
||||
sharing of data across multiple distributions or LFS builds more difficult, makes
|
||||
backups more time consuming, and can waste disk space through inefficient
|
||||
allocation of file system structures.</para>
|
||||
|
||||
<sect3>
|
||||
<title>The Root Partition</title>
|
||||
|
||||
<para>A root LFS partition (not to be confused with the
|
||||
<filename class="directory">/root</filename> directory) of
|
||||
ten gigabytes is a good compromise for most systems. It provides enough
|
||||
space to build LFS and most of BLFS, but is small enough so that multiple
|
||||
partitions can be easily created for experimentation.</para> </sect3>
|
||||
|
||||
<sect3>
|
||||
<title>The Swap Partition</title>
|
||||
|
||||
<para>Most distributions automatically create a swap partition. Generally
|
||||
the recommended size of the swap partition is about twice the amount of
|
||||
physical RAM, however this is rarely needed. If disk space is limited,
|
||||
hold the swap partition to two gigabytes and monitor the amount of disk
|
||||
swapping.</para>
|
||||
|
||||
<para>Swapping is never good. Generally you can tell if a system is
|
||||
swapping by just listening to disk activity and observing how the system
|
||||
reacts to commands. The first reaction to swapping should be to check for
|
||||
an unreasonable command such as trying to edit a five gigabyte file. If
|
||||
swapping becomes a normal occurrence, the best solution is to purchase more
|
||||
RAM for your system.</para> </sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Convenience Partitions</title>
|
||||
|
||||
<para>There are several other partitions that are not required, but should
|
||||
be considered when designing a disk layout. The following list
|
||||
is not comprehensive, but is meant as a guide.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>/boot – Highly recommended. Use this partition to
|
||||
store kernels and other booting information. To minimize potential boot
|
||||
problems with larger disks, make this the first physical partition on
|
||||
your first disk drive. A partition size of 100 megabytes is quite
|
||||
adequate.</para></listitem>
|
||||
|
||||
<listitem><para>/home – Highly recommended. Share your home
|
||||
directory and user customization across multiple distributions or LFS
|
||||
builds. The size is generally fairly large and depends on available disk
|
||||
space.</para></listitem>
|
||||
|
||||
<listitem><para>/usr – A separate /usr partition is generally used
|
||||
if providing a server for a thin client or diskless workstation. It is
|
||||
normally not needed for LFS. A size of five gigabytes will handle most
|
||||
installations.</para></listitem>
|
||||
|
||||
<listitem><para>/opt – This directory is most useful for
|
||||
BLFS where multiple installations of large packages like Gnome or KDE can
|
||||
be installed without embedding the files in the /usr hierarchy. If
|
||||
used, 5 to 10 gigabytes is generally adequate.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>/tmp – A separate /tmp directory is rare, but
|
||||
useful if configuring a thin client. This partition, if used, will
|
||||
usually not need to exceed a couple of gigabytes.</para></listitem>
|
||||
|
||||
<listitem><para>/usr/src – This partition is very
|
||||
useful for providing a location to store BLFS source files and
|
||||
share them across LFS builds. It can also be used as a location
|
||||
for building BLFS packages. A reasonably large partition of 30-50
|
||||
gigabytes allows plenty of room.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>Any separate partition that you want automatically mounted upon boot
|
||||
needs to be specified in the <filename>/etc/fstab</filename>. Details
|
||||
about how to specify partitions will be discussed in <xref
|
||||
linkend="ch-bootable-fstab"/>. </para>
|
||||
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="space-introduction">
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<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>
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="space-mounting">
|
||||
<?dbhtml filename="mounting.html"?>
|
||||
|
||||
<title>Mounting the New Partition</title>
|
||||
|
||||
<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 the directory specified by the
|
||||
<envar>LFS</envar> envronment variable as described in the previous section.
|
||||
</para>
|
||||
|
||||
<para>Create the mount point and mount the LFS file system by running:</para>
|
||||
|
||||
<screen role="nodump"><userinput>mkdir -pv $LFS
|
||||
mount -v -t ext4 /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 role="nodump"><userinput>mkdir -pv $LFS
|
||||
mount -v -t ext4 /dev/<replaceable><xxx></replaceable> $LFS
|
||||
mkdir -v $LFS/usr
|
||||
mount -v -t ext4 /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 <option>nosuid</option> or
|
||||
<option>nodev</option> options). Run the <command>mount</command> command
|
||||
without any parameters to see what options are set for the mounted LFS
|
||||
partition. If <option>nosuid</option> and/or <option>nodev</option> are set,
|
||||
the partition will need to be remounted.</para>
|
||||
|
||||
<para>If you are using a <systemitem
|
||||
class="filesystem">swap</systemitem> partition, ensure that it is enabled
|
||||
using the <command>swapon</command> command:</para>
|
||||
|
||||
<screen role="nodump"><userinput>/sbin/swapon -v /dev/<replaceable><zzz></replaceable></userinput></screen>
|
||||
|
||||
<para>Replace <replaceable><zzz></replaceable> with the name of the
|
||||
<systemitem class="filesystem">swap</systemitem> partition.</para>
|
||||
|
||||
<para>Now that there is an established place to work, it is time to
|
||||
download the packages.</para>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<chapter id="chapter-getting-materials" xreflabel="Chapter 3">
|
||||
<?dbhtml dir="chapter03"?>
|
||||
<?dbhtml filename="chapter03.html"?>
|
||||
|
||||
<title>Packages and Patches</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="packages.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="patches.xml"/>
|
||||
|
||||
</chapter>
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="materials-introduction">
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>This chapter includes a list of packages that need to be downloaded in
|
||||
order to build 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 against 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 require work-arounds. These work-arounds
|
||||
will be developed and stabilized in the development version of the
|
||||
book.</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
|
||||
alternative means of downloading discussed at <ulink
|
||||
url="&lfs-root;lfs/packages.html#packages"/>. </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 the following command, as user
|
||||
<systemitem class="username">root</systemitem>, before starting the download
|
||||
session:</para>
|
||||
|
||||
<screen role="nodump"><userinput>mkdir -v $LFS/sources</userinput></screen>
|
||||
|
||||
<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 role="nodump"><userinput>chmod -v a+wt $LFS/sources</userinput></screen>
|
||||
|
||||
<para>An easy way to download all of the packages and patches is by using
|
||||
<ulink url="../wget-list">wget-list</ulink> as an input to
|
||||
<command>wget</command>. For example:</para>
|
||||
|
||||
<screen role="nodump"><userinput>wget --input-file=wget-list --continue --directory-prefix=$LFS/sources</userinput></screen>
|
||||
|
||||
<para>Additionally, starting with LFS-7.0, there is a separate file,
|
||||
<ulink url="../md5sums">md5sums</ulink>, which can be used to verify that all
|
||||
the correct packages are available before proceeding. Place that file in
|
||||
<filename class="directory">$LFS/sources</filename> and run:</para>
|
||||
|
||||
<screen role="nodump"><userinput>pushd $LFS/sources
|
||||
md5sum -c md5sums
|
||||
popd</userinput></screen>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,666 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="materials-packages">
|
||||
<?dbhtml filename="packages.html"?>
|
||||
|
||||
<title>All Packages</title>
|
||||
|
||||
<para>Download or otherwise obtain the following packages:</para>
|
||||
|
||||
<variablelist role="materials">
|
||||
|
||||
<varlistentry>
|
||||
<term>Acl (&acl-version;) - <token>&acl-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&acl-home;"/></para>
|
||||
<para>Download: <ulink url="&acl-url;"/></para>
|
||||
<para>MD5 sum: <literal>&acl-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Attr (&attr-version;) - <token>&attr-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&attr-home;"/></para>
|
||||
<para>Download: <ulink url="&attr-url;"/></para>
|
||||
<para>MD5 sum: <literal>&attr-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Autoconf (&autoconf-version;) - <token>&autoconf-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&autoconf-home;"/></para>
|
||||
<para>Download: <ulink url="&autoconf-url;"/></para>
|
||||
<para>MD5 sum: <literal>&autoconf-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Automake (&automake-version;) - <token>&automake-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&automake-home;"/></para>
|
||||
<para>Download: <ulink url="&automake-url;"/></para>
|
||||
<para>MD5 sum: <literal>&automake-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bash (&bash-version;) - <token>&bash-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&bash-home;"/></para>
|
||||
<para>Download: <ulink url="&bash-url;"/></para>
|
||||
<para>MD5 sum: <literal>&bash-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bc (&bc-version;) - <token>&bc-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&bc-home;"/></para>
|
||||
<para>Download: <ulink url="&bc-url;"/></para>
|
||||
<para>MD5 sum: <literal>&bc-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Binutils (&binutils-version;) - <token>&binutils-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&binutils-home;"/></para>
|
||||
<para>Download: <ulink url="&binutils-url;"/></para>
|
||||
<para>MD5 sum: <literal>&binutils-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bison (&bison-version;) - <token>&bison-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&bison-home;"/></para>
|
||||
<para>Download: <ulink url="&bison-url;"/></para>
|
||||
<para>MD5 sum: <literal>&bison-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bzip2 (&bzip2-version;) - <token>&bzip2-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&bzip2-home;"/></para>
|
||||
<para>Download: <ulink url="&bzip2-url;"/></para>
|
||||
<para>MD5 sum: <literal>&bzip2-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Check (&check-version;) - <token>&check-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&check-home;"/></para>
|
||||
<para>Download: <ulink url="&check-url;"/></para>
|
||||
<para>MD5 sum: <literal>&check-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Coreutils (&coreutils-version;) - <token>&coreutils-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&coreutils-home;"/></para>
|
||||
<para>Download: <ulink url="&coreutils-url;"/></para>
|
||||
<para>MD5 sum: <literal>&coreutils-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>D-Bus (&dbus-version;) - <token>&dbus-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&dbus-home;"/></para>
|
||||
<para>Download: <ulink url="&dbus-url;"/></para>
|
||||
<para>MD5 sum: <literal>&dbus-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>DejaGNU (&dejagnu-version;) - <token>&dejagnu-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&dejagnu-home;"/></para>
|
||||
<para>Download: <ulink url="&dejagnu-url;"/></para>
|
||||
<para>MD5 sum: <literal>&dejagnu-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Diffutils (&diffutils-version;) - <token>&diffutils-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&diffutils-home;"/></para>
|
||||
<para>Download: <ulink url="&diffutils-url;"/></para>
|
||||
<para>MD5 sum: <literal>&diffutils-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>E2fsprogs (&e2fsprogs-version;) - <token>&e2fsprogs-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&e2fsprogs-home;"/></para>
|
||||
<para>Download: <ulink url="&e2fsprogs-url;"/></para>
|
||||
<para>MD5 sum: <literal>&e2fsprogs-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Expat (&expat-version;) - <token>&expat-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&expat-home;"/></para>
|
||||
<para>Download: <ulink url="&expat-url;"/></para>
|
||||
<para>MD5 sum: <literal>&expat-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Expect (&expect-version;) - <token>&expect-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&expect-home;"/></para>
|
||||
<para>Download: <ulink url="&expect-url;"/></para>
|
||||
<para>MD5 sum: <literal>&expect-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>File (&file-version;) - <token>&file-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&file-home;"/></para>
|
||||
<para>Download: <ulink url="&file-url;"/></para>
|
||||
<para>MD5 sum: <literal>&file-md5;</literal></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 alternative download location that may have the correct
|
||||
version available can also be found at: <ulink
|
||||
url="http://www.linuxfromscratch.org/lfs/download.html#ftp"/>.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Findutils (&findutils-version;) - <token>&findutils-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&findutils-home;"/></para>
|
||||
<para>Download: <ulink url="&findutils-url;"/></para>
|
||||
<para>MD5 sum: <literal>&findutils-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Flex (&flex-version;) - <token>&flex-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&flex-home;"/></para>
|
||||
<para>Download: <ulink url="&flex-url;"/></para>
|
||||
<para>MD5 sum: <literal>&flex-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Gawk (&gawk-version;) - <token>&gawk-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gawk-home;"/></para>
|
||||
<para>Download: <ulink url="&gawk-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gawk-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GCC (&gcc-version;) - <token>&gcc-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gcc-home;"/></para>
|
||||
<para>Download: <ulink url="&gcc-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gcc-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GDBM (&gdbm-version;) - <token>&gdbm-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gdbm-home;"/></para>
|
||||
<para>Download: <ulink url="&gdbm-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gdbm-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Gettext (&gettext-version;) - <token>&gettext-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gettext-home;"/></para>
|
||||
<para>Download: <ulink url="&gettext-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gettext-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Glibc (&glibc-version;) - <token>&glibc-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&glibc-home;"/></para>
|
||||
<para>Download: <ulink url="&glibc-url;"/></para>
|
||||
<para>MD5 sum: <literal>&glibc-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GMP (&gmp-version;) - <token>&gmp-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gmp-home;"/></para>
|
||||
<para>Download: <ulink url="&gmp-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gmp-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Gperf (&gperf-version;) - <token>&gperf-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gperf-home;"/></para>
|
||||
<para>Download: <ulink url="&gperf-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gperf-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Grep (&grep-version;) - <token>&grep-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&grep-home;"/></para>
|
||||
<para>Download: <ulink url="&grep-url;"/></para>
|
||||
<para>MD5 sum: <literal>&grep-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Groff (&groff-version;) - <token>&groff-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&groff-home;"/></para>
|
||||
<para>Download: <ulink url="&groff-url;"/></para>
|
||||
<para>MD5 sum: <literal>&groff-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GRUB (&grub-version;) - <token>&grub-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&grub-home;"/></para>
|
||||
<para>Download: <ulink url="&grub-url;"/></para>
|
||||
<para>MD5 sum: <literal>&grub-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Gzip (&gzip-version;) - <token>&gzip-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&gzip-home;"/></para>
|
||||
<para>Download: <ulink url="&gzip-url;"/></para>
|
||||
<para>MD5 sum: <literal>&gzip-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Iana-Etc (&iana-etc-version;) - <token>&iana-etc-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&iana-etc-home;"/></para>
|
||||
<para>Download: <ulink url="&iana-etc-url;"/></para>
|
||||
<para>MD5 sum: <literal>&iana-etc-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Inetutils (&inetutils-version;) - <token>&inetutils-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&inetutils-home;"/></para>
|
||||
<para>Download: <ulink url="&inetutils-url;"/></para>
|
||||
<para>MD5 sum: <literal>&inetutils-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Intltool (&intltool-version;) - <token>&intltool-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&intltool-home;"/></para>
|
||||
<para>Download: <ulink url="&intltool-url;"/></para>
|
||||
<para>MD5 sum: <literal>&intltool-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>IPRoute2 (&iproute2-version;) - <token>&iproute2-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&iproute2-home;"/></para>
|
||||
<para>Download: <ulink url="&iproute2-url;"/></para>
|
||||
<para>MD5 sum: <literal>&iproute2-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Kbd (&kbd-version;) - <token>&kbd-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&kbd-home;"/></para>
|
||||
<para>Download: <ulink url="&kbd-url;"/></para>
|
||||
<para>MD5 sum: <literal>&kbd-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Kmod (&kmod-version;) - <token>&kmod-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&kmod-home;"/></para>
|
||||
<para>Download: <ulink url="&kmod-url;"/></para>
|
||||
<para>MD5 sum: <literal>&kmod-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Less (&less-version;) - <token>&less-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&less-home;"/></para>
|
||||
<para>Download: <ulink url="&less-url;"/></para>
|
||||
<para>MD5 sum: <literal>&less-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Libcap (&libcap-version;) - <token>&libcap-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&libcap-home;"/></para>
|
||||
<para>Download: <ulink url="&libcap-url;"/></para>
|
||||
<para>MD5 sum: <literal>&libcap-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Libpipeline (&libpipeline-version;) - <token>&libpipeline-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&libpipeline-home;"/></para>
|
||||
<para>Download: <ulink url="&libpipeline-url;"/></para>
|
||||
<para>MD5 sum: <literal>&libpipeline-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Libtool (&libtool-version;) - <token>&libtool-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&libtool-home;"/></para>
|
||||
<para>Download: <ulink url="&libtool-url;"/></para>
|
||||
<para>MD5 sum: <literal>&libtool-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Linux (&linux-version;) - <token>&linux-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&linux-home;"/></para>
|
||||
<para>Download: <ulink url="&linux-url;"/></para>
|
||||
<para>MD5 sum: <literal>&linux-md5;</literal></para>
|
||||
|
||||
<note>
|
||||
<para>The Linux kernel is updated relatively often, many times due to
|
||||
discoveries of security vulnerabilities. The latest available
|
||||
&linux-major-version;.&linux-minor-version;.x kernel version should be
|
||||
used, unless the errata page says otherwise.</para>
|
||||
|
||||
<para>For users with limited speed or expensive bandwidth who wish to
|
||||
update the Linux kernel, a baseline version of the package and
|
||||
patches can be downloaded separately. This may save some time or
|
||||
cost for a subsequent patch level upgrade within a minor release.
|
||||
</para>
|
||||
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>M4 (&m4-version;) - <token>&m4-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&m4-home;"/></para>
|
||||
<para>Download: <ulink url="&m4-url;"/></para>
|
||||
<para>MD5 sum: <literal>&m4-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Make (&make-version;) - <token>&make-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&make-home;"/></para>
|
||||
<para>Download: <ulink url="&make-url;"/></para>
|
||||
<para>MD5 sum: <literal>&make-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Man-DB (&man-db-version;) - <token>&man-db-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&man-db-home;"/></para>
|
||||
<para>Download: <ulink url="&man-db-url;"/></para>
|
||||
<para>MD5 sum: <literal>&man-db-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Man-pages (&man-pages-version;) - <token>&man-pages-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&man-pages-home;"/></para>
|
||||
<para>Download: <ulink url="&man-pages-url;"/></para>
|
||||
<para>MD5 sum: <literal>&man-pages-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>MPC (&mpc-version;) - <token>&mpc-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&mpc-home;"/></para>
|
||||
<para>Download: <ulink url="&mpc-url;"/></para>
|
||||
<para>MD5 sum: <literal>&mpc-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>MPFR (&mpfr-version;) - <token>&mpfr-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&mpfr-home;"/></para>
|
||||
<para>Download: <ulink url="&mpfr-url;"/></para>
|
||||
<para>MD5 sum: <literal>&mpfr-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Ncurses (&ncurses-version;) - <token>&ncurses-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&ncurses-home;"/></para>
|
||||
<para>Download: <ulink url="&ncurses-url;"/></para>
|
||||
<para>MD5 sum: <literal>&ncurses-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<!-- FIXME:
|
||||
<varlistentry>
|
||||
<term>Ncurses Rollup Patch (&ncurses-date;) - 328 KB:</term>
|
||||
<listitem>
|
||||
<para><ulink url="ftp://invisible-island.net/ncurses/&ncurses-version;/"/></para>
|
||||
|
||||
<note>
|
||||
<para>Ncurses Rollup Patch (&ncurses-date;) 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.
|
||||
There is no alternative download location yet.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
-->
|
||||
|
||||
<varlistentry>
|
||||
<term>Patch (&patch-version;) - <token>&patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&patch-home;"/></para>
|
||||
<para>Download: <ulink url="&patch-url;"/></para>
|
||||
<para>MD5 sum: <literal>&patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Perl (&perl-version;) - <token>&perl-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&perl-home;"/></para>
|
||||
<para>Download: <ulink url="&perl-url;"/></para>
|
||||
<para>MD5 sum: <literal>&perl-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Pkg-config (&pkgconfig-version;) - <token>&pkgconfig-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&pkgconfig-home;"/></para>
|
||||
<para>Download: <ulink url="&pkgconfig-url;"/></para>
|
||||
<para>MD5 sum: <literal>&pkgconfig-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Procps (&procps-ng-version;) - <token>&procps-ng-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&procps-ng-home;"/></para>
|
||||
<para>Download: <ulink url="&procps-ng-url;"/></para>
|
||||
<para>MD5 sum: <literal>&procps-ng-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Psmisc (&psmisc-version;) - <token>&psmisc-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&psmisc-home;"/></para>
|
||||
<para>Download: <ulink url="&psmisc-url;"/></para>
|
||||
<para>MD5 sum: <literal>&psmisc-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Readline (&readline-version;) - <token>&readline-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&readline-home;"/></para>
|
||||
<para>Download: <ulink url="&readline-url;"/></para>
|
||||
<para>MD5 sum: <literal>&readline-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Sed (&sed-version;) - <token>&sed-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&sed-home;"/></para>
|
||||
<para>Download: <ulink url="&sed-url;"/></para>
|
||||
<para>MD5 sum: <literal>&sed-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Shadow (&shadow-version;) - <token>&shadow-size;</token>:</term>
|
||||
<listitem>
|
||||
<!-- <para>Home page: <ulink url="&shadow-home;"/></para> -->
|
||||
<para>Download: <ulink url="&shadow-url;"/></para>
|
||||
<para>MD5 sum: <literal>&shadow-md5;</literal></para>
|
||||
|
||||
<!-- Using http://cdn.debian.net/debian/pool/main/s/shadow/
|
||||
for now since alioth has not reconstituted shadow -->
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Systemd (&systemd-version;) - <token>&systemd-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&systemd-home;"/></para>
|
||||
<para>Download: <ulink url="&systemd-url;"/></para>
|
||||
<para>MD5 sum: <literal>&systemd-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Tar (&tar-version;) - <token>&tar-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&tar-home;"/></para>
|
||||
<para>Download: <ulink url="&tar-url;"/></para>
|
||||
<para>MD5 sum: <literal>&tar-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Tcl (&tcl-version;) - <token>&tcl-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&tcl-home;"/></para>
|
||||
<para>Download: <ulink url="&tcl-url;"/></para>
|
||||
<para>MD5 sum: <literal>&tcl-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Texinfo (&texinfo-version;) - <token>&texinfo-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&texinfo-home;"/></para>
|
||||
<para>Download: <ulink url="&texinfo-url;"/></para>
|
||||
<para>MD5 sum: <literal>&texinfo-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Time Zone Data (&tzdata-version;) - <token>&tzdata-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&tzdata-home;"/></para>
|
||||
<para>Download: <ulink url="&tzdata-url;"/></para>
|
||||
<para>MD5 sum: <literal>&tzdata-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Util-linux (&util-linux-version;) - <token>&util-linux-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&util-linux-home;"/></para>
|
||||
<para>Download: <ulink url="&util-linux-url;"/></para>
|
||||
<para>MD5 sum: <literal>&util-linux-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Vim (&vim-version;) - <token>&vim-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&vim-home;"/></para>
|
||||
<para>Download: <ulink url="&vim-url;"/></para>
|
||||
<para>MD5 sum: <literal>&vim-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>XML::Parser (&xml-parser-version;) - <token>&xml-parser-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&xml-parser-home;"/></para>
|
||||
<para>Download: <ulink url="&xml-parser-url;"/></para>
|
||||
<para>MD5 sum: <literal>&xml-parser-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Xz Utils (&xz-version;) - <token>&xz-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&xz-home;"/></para>
|
||||
<para>Download: <ulink url="&xz-url;"/></para>
|
||||
<para>MD5 sum: <literal>&xz-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Zlib (&zlib-version;) - <token>&zlib-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Home page: <ulink url="&zlib-home;"/></para>
|
||||
<para>Download: <ulink url="&zlib-url;"/></para>
|
||||
<para>MD5 sum: <literal>&zlib-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Total size of these packages: about <returnvalue/></para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="materials-patches">
|
||||
<?dbhtml filename="patches.html"?>
|
||||
|
||||
<title>Needed Patches</title>
|
||||
|
||||
<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 Upstream Fixes Patch - <token>&bash-fixes-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&bash-fixes-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&bash-fixes-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Bc Memory Leak Patch - <token>&bc-memory-leak-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&bc-memory-leak-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&bc-memory-leak-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Bzip2 Documentation Patch - <token>&bzip2-docs-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&bzip2-docs-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&bzip2-docs-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Coreutils Internationalization Fixes Patch - <token>&coreutils-i18n-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&coreutils-i18n-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&coreutils-i18n-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Glibc FHS Patch - <token>&glibc-fhs-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&glibc-fhs-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&glibc-fhs-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Glibc i386 Patch - <token>&glibc-upstream-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&glibc-upstream-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&glibc-upstream-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Glibc Largefile Patch - <token>&glibc-largefile-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&glibc-largefile-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&glibc-largefile-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Kbd Backspace/Delete Fix Patch - <token>&kbd-backspace-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&kbd-backspace-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&kbd-backspace-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>MPFR Upstream Fixes Patch - <token>&mpfr-upstream-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&mpfr-upstream-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&mpfr-upstream-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Readline Upstream Fixes Patch - <token>&readline-fixes-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&readline-fixes-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&readline-fixes-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Systemd Compat Patch - <token>&systemd-compat-patch-size;</token>:</term>
|
||||
<listitem>
|
||||
<para>Download: <ulink url="&patches-root;&systemd-compat-patch;"/></para>
|
||||
<para>MD5 sum: <literal>&systemd-compat-patch-md5;</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Total size of these patches: about <returnvalue/></para>
|
||||
|
||||
<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/downloads/"/> and acquire any additional
|
||||
patches to suit your system needs.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="prepare-aboutlfs">
|
||||
<?dbhtml filename="aboutlfs.html"?>
|
||||
|
||||
<title>About $LFS</title>
|
||||
|
||||
<para>Throughout this book, the environment variable <envar>LFS</envar> will
|
||||
be used. 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 role="nodump"><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 role="nodump"><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
|
||||
<command>su</command> to <systemitem class="username">root</systemitem>
|
||||
or another user).</para>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="prepare-aboutsbus">
|
||||
<?dbhtml filename="aboutsbus.html"?>
|
||||
|
||||
<title>About SBUs</title>
|
||||
|
||||
<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 Standard 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 Binutils in <xref linkend="chapter-temporary-tools"/>. The
|
||||
time it takes to compile this package is what will be referred to as the
|
||||
Standard 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 first pass of 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>In general, SBUs are not entirely accurate because they depend on many
|
||||
factors, including the host system's version of GCC. 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>
|
||||
|
||||
<note>
|
||||
<para>For many modern systems with multiple processors (or cores) the
|
||||
compilation time for a package can be reduced by performing a "parallel
|
||||
make" by either setting an environment variable or telling the
|
||||
<command>make</command> program how many processors are available. For
|
||||
instance, a Core2Duo can support two simultaneous processes with:</para>
|
||||
|
||||
<screen><userinput>export MAKEFLAGS='-j 2'</userinput></screen>
|
||||
|
||||
<para>or just building with:</para>
|
||||
|
||||
<screen><userinput>make -j2</userinput></screen>
|
||||
|
||||
<para>When multiple processors are used in this way, the SBU units in the
|
||||
book will vary even more than they normally would. In some cases, the make
|
||||
step will simply fail. Analyzing the output of the build process will also
|
||||
be more difficult because the lines of different processes will be
|
||||
interleaved. If you run into a problem with a build step, revert back to a
|
||||
single processor build to properly analyze the error messages.</para>
|
||||
</note>
|
||||
|
||||
</sect1>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="prepare-abouttestsuites">
|
||||
<?dbhtml filename="abouttestsuites.html"?>
|
||||
|
||||
<title>About the Test Suites</title>
|
||||
|
||||
<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 at
|
||||
<ulink url="&lfs-root;lfs/faq.html#no-ptys"/>.</para>
|
||||
|
||||
<para>Sometimes package test suites will fail, but for reasons which the
|
||||
developers are aware of and have deemed non-critical. Consult the logs located
|
||||
at <ulink url="&test-results;"/> to verify whether or not these failures are
|
||||
expected. This site is valid for all tests throughout this book.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-addinguser">
|
||||
<?dbhtml filename="addinguser.html"?>
|
||||
|
||||
<title>Adding the LFS User</title>
|
||||
|
||||
<para>When logged in as user <systemitem class="username">root</systemitem>,
|
||||
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
|
||||
working environment, create a new user called <systemitem
|
||||
class="username">lfs</systemitem> as a member of a new group (also named
|
||||
<systemitem class="groupname">lfs</systemitem>) and use this user during
|
||||
the installation process. As <systemitem class="username">root</systemitem>,
|
||||
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>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the command line options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-s /bin/bash</parameter></term>
|
||||
<listitem>
|
||||
<para>This makes <command>bash</command> the default shell for user
|
||||
<systemitem class="username">lfs</systemitem>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-g lfs</parameter></term>
|
||||
<listitem>
|
||||
<para>This option adds user <systemitem class="username">lfs</systemitem>
|
||||
to group <systemitem class="groupname">lfs</systemitem>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-m</parameter></term>
|
||||
<listitem>
|
||||
<para>This creates a home directory for <systemitem
|
||||
class="username">lfs</systemitem>.</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 <systemitem class="username">lfs</systemitem> (as opposed
|
||||
to switching to user <systemitem class="username">lfs</systemitem> when logged
|
||||
in as <systemitem class="username">root</systemitem>, which does not require
|
||||
the <systemitem class="username">lfs</systemitem> user to have a password),
|
||||
give <systemitem class="username">lfs</systemitem> a password:</para>
|
||||
|
||||
<screen role="nodump"><userinput>passwd lfs</userinput></screen>
|
||||
|
||||
<para>Grant <systemitem class="username">lfs</systemitem> full access to
|
||||
<filename class="directory">$LFS/tools</filename> by making
|
||||
<systemitem class="username">lfs</systemitem> the directory owner:</para>
|
||||
|
||||
<screen><userinput>chown -v lfs $LFS/tools</userinput></screen>
|
||||
|
||||
<para>If a separate working directory was created as suggested, give
|
||||
user <systemitem class="username">lfs</systemitem> ownership of this
|
||||
directory:</para>
|
||||
|
||||
<screen><userinput>chown -v lfs $LFS/sources</userinput></screen>
|
||||
|
||||
<para>Next, login as user <systemitem class="username">lfs</systemitem>.
|
||||
This can be done via a virtual console, through a display manager, or with
|
||||
the following substitute user command:</para>
|
||||
|
||||
<screen role="nodump"><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
|
||||
<filename>bash(1)</filename> and <command>info bash</command>.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<chapter id="chapter-final-preps" xreflabel="Chapter 4">
|
||||
<?dbhtml dir="chapter04"?>
|
||||
<?dbhtml filename="chapter04.html"?>
|
||||
|
||||
<title>Final Preparations</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/>
|
||||
<!--<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutlfs.xml"/>-->
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingtoolsdir.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="addinguser.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="settingenviron.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutsbus.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="abouttestsuites.xml"/>
|
||||
|
||||
</chapter>
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-creatingtoolsdir">
|
||||
<?dbhtml filename="creatingtoolsdir.html"?>
|
||||
|
||||
<title>Creating the $LFS/tools Directory</title>
|
||||
|
||||
<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
|
||||
<systemitem class="username">root</systemitem>:</para>
|
||||
|
||||
<screen><userinput>mkdir -v $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 <systemitem
|
||||
class="username">root</systemitem> as well:</para>
|
||||
|
||||
<screen><userinput>ln -sv $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
|
||||
<command>info coreutils ln</command> and <filename>ln(1)</filename>
|
||||
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 Chapter 5
|
||||
(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>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="prepare-introduction">
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>In this chapter, we will perform a few additional tasks to prepare
|
||||
for building the temporary system. We will create a directory in
|
||||
<filename class="directory">$LFS</filename> for the installation of the
|
||||
temporary tools, add an unprivileged user to reduce risk,
|
||||
and create an appropriate build environment for that user. We will also
|
||||
explain the unit of time we use to measure how long LFS packages take to
|
||||
build, or <quote>SBUs</quote>, and give some information about package
|
||||
test suites.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-settingenviron">
|
||||
<?dbhtml filename="settingenvironment.html"?>
|
||||
|
||||
<title>Setting Up the Environment</title>
|
||||
|
||||
<para>Set up a good working environment by creating two new startup files
|
||||
for the <command>bash</command> shell. While logged in as user
|
||||
<systemitem class="username">lfs</systemitem>, 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 <systemitem class="username">lfs</systemitem>,
|
||||
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
|
||||
LFS=/mnt/lfs
|
||||
LC_ALL=POSIX
|
||||
LFS_TGT=$(uname -m)-lfs-linux-gnu
|
||||
PATH=/tools/bin:/bin:/usr/bin
|
||||
export LFS LC_ALL LFS_TGT 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
|
||||
<function>open(2)</function> 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.
|
||||
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>The <envar>LFS_TGT</envar> variable sets a non-default, but compatible machine
|
||||
description for use when building our cross compiler and linker and when cross
|
||||
compiling our temporary toolchain. More information is contained in
|
||||
<xref linkend="ch-tools-toolchaintechnotes" role=""/>.</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 are used from the host when the same programs are available in
|
||||
the chapter 5 environment.</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>
|
|
@ -0,0 +1,79 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-adjusting">
|
||||
<?dbhtml filename="adjusting.html"?>
|
||||
|
||||
<title>Adjusting the Toolchain</title>
|
||||
|
||||
<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 cross-compiler's
|
||||
specs file needs to be adjusted to point to the new dynamic linker
|
||||
in <filename class="directory">/tools</filename>.</para>
|
||||
|
||||
<para>This is done by dumping the compiler's <quote>specs</quote> file to a
|
||||
location where it will look for it by default.
|
||||
A simple <command>sed</command> substitution then alters the
|
||||
dynamic linker that GCC will use. The principle here is to find all references
|
||||
to the dynamic linker file in <filename class="directory">/lib</filename>
|
||||
or possibly <filename class="directory">/lib64</filename> if the host system
|
||||
is 64-bit capable, and adjust them to point to the new location in
|
||||
<filename class="directory">/tools</filename>.</para>
|
||||
|
||||
<para>For the sake of accuracy, it is recommended to use a copy-and-paste
|
||||
method when issuing the following command. Be sure to visually inspect the
|
||||
specs file to verify that it has properly adjusted all references to the
|
||||
dynamic linker location. Refer to <xref
|
||||
linkend="ch-tools-toolchaintechnotes" role=","/> for the default name
|
||||
of the dynamic linker, if necessary.</para>
|
||||
|
||||
<!-- Ampersands are needed to allow copy and paste -->
|
||||
<screen><userinput>SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs
|
||||
$LFS_TGT-gcc -dumpspecs | sed \
|
||||
-e 's@/lib\(64\)\?/ld@/tools&@g' \
|
||||
-e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS
|
||||
echo "New specs file is: $SPECS"
|
||||
unset SPECS</userinput></screen>
|
||||
|
||||
<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 'int main(){}' > dummy.c
|
||||
$LFS_TGT-gcc -B/tools/lib dummy.c
|
||||
readelf -l a.out | grep ': /tools'</userinput></screen>
|
||||
|
||||
<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>Note that <filename class="directory">/tools/lib</filename>, or
|
||||
<filename class="directory">/tools/lib64</filename> for 64-bit machines
|
||||
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. Something may have gone wrong with the
|
||||
specs file amendment above. In this case, redo the specs file amendment,
|
||||
being careful to copy-and-paste the commands.</para>
|
||||
|
||||
<para>Once all is well, clean up the test files:</para>
|
||||
|
||||
<screen><userinput>rm -v dummy.c a.out</userinput></screen>
|
||||
|
||||
</caution>
|
||||
|
||||
<note><para>Building Binutils in the next section will serve as an additional check that
|
||||
the toolchain has been built properly. If Binutils fails to build, it is an
|
||||
indication that something has gone wrong with the previous Binutils, GCC, or Glibc
|
||||
installations.</para></note>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-bash" role="wrap">
|
||||
<?dbhtml filename="bash.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bash</productname>
|
||||
<productnumber>&bash-version;</productnumber>
|
||||
<address>&bash-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bash-&bash-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/bash.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bash-ch5-sbu;</seg>
|
||||
<seg>&bash-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bash</title>
|
||||
<!--
|
||||
<para>First, apply the following patch to fix various bugs that have been
|
||||
addressed upstream:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&bash-fixes-patch;</userinput></screen>
|
||||
-->
|
||||
<para>Prepare Bash for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools --without-bash-malloc</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-bash-malloc</parameter></term>
|
||||
<listitem>
|
||||
<para>This option turns off the use of Bash's memory allocation
|
||||
(<function>malloc</function>) function which is known to cause
|
||||
segmentation faults. By turning this option off, Bash will use
|
||||
the <function>malloc</function> functions from Glibc which are
|
||||
more stable.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Bash test suite anyway, issue the following command:</para>
|
||||
|
||||
|
||||
<screen><userinput remap="test">make tests</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>Make a link for the programs that use <command>sh</command> for
|
||||
a shell:</para>
|
||||
|
||||
<screen><userinput remap="install">ln -sv 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>
|
|
@ -0,0 +1,171 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-binutils-pass1" role="wrap">
|
||||
<?dbhtml filename="binutils-pass1.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>binutils</productname>
|
||||
<productnumber>&binutils-version;</productnumber>
|
||||
<address>&binutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Binutils-&binutils-version; - Pass 1</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/binutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&binutils-ch5p1-sbu;</seg>
|
||||
<seg>&binutils-ch5p1-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Cross Binutils</title>
|
||||
|
||||
<note><para>Go back and re-read the notes in the previous section.
|
||||
Understanding the notes labeled important will save you a lot
|
||||
of problems later.</para></note>
|
||||
|
||||
<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>The Binutils documentation recommends building Binutils outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<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 commands in a <command>time</command>
|
||||
command like this: <userinput>time { ./configure ... && ...
|
||||
&& make install; }</userinput>.</para>
|
||||
</note>
|
||||
|
||||
<note><para>The approximate build SBU values and required disk space
|
||||
in Chapter 5 does not include test suite data.</para></note>
|
||||
|
||||
<para>Now prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">../binutils-&binutils-version;/configure \
|
||||
--prefix=/tools \
|
||||
--with-sysroot=$LFS \
|
||||
--with-lib-path=/tools/lib \
|
||||
--target=$LFS_TGT \
|
||||
--disable-nls \
|
||||
--disable-werror</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<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>--with-sysroot=$LFS</parameter></term>
|
||||
<listitem>
|
||||
<para>For cross compilation, this tells the build system to look in
|
||||
$LFS for the target system libraries as needed.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-lib-path=/tools/lib</parameter></term>
|
||||
<listitem>
|
||||
<para>This specifies which library path the linker should be
|
||||
configured to use.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><envar>--target=$LFS_TGT</envar></term>
|
||||
<listitem>
|
||||
<para>Because the machine description in the <envar>LFS_TGT</envar>
|
||||
variable is slightly different than the value returned by the
|
||||
<command>config.guess</command> script, this switch will tell the
|
||||
<command>configure</command> script to adjust Binutil's build system
|
||||
for building a cross linker. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-nls</parameter></term>
|
||||
<listitem>
|
||||
<para>This disables internationalization as i18n is not needed for the
|
||||
temporary tools.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-werror</parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents the build from stopping in the event that there
|
||||
are warnings from the host's compiler.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Continue with compiling the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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>If building on x86_64, create a symlink to ensure the sanity of
|
||||
the toolchain:</para>
|
||||
|
||||
<screen><userinput remap="install">case $(uname -m) in
|
||||
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
|
||||
esac</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-binutils" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,150 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-binutils-pass2" role="wrap">
|
||||
<?dbhtml filename="binutils-pass2.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>binutils</productname>
|
||||
<productnumber>&binutils-version;</productnumber>
|
||||
<address>&binutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Binutils-&binutils-version; - Pass 2</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/binutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&binutils-ch5p2-sbu;</seg>
|
||||
<seg>&binutils-ch5p2-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Binutils</title>
|
||||
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<para>Prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">CC=$LFS_TGT-gcc \
|
||||
AR=$LFS_TGT-ar \
|
||||
RANLIB=$LFS_TGT-ranlib \
|
||||
../binutils-&binutils-version;/configure \
|
||||
--prefix=/tools \
|
||||
--disable-nls \
|
||||
--disable-werror \
|
||||
--with-lib-path=/tools/lib \
|
||||
--with-sysroot</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the new configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib</parameter></term>
|
||||
<listitem>
|
||||
<para>Because this is really a native build of Binutils, setting these
|
||||
variables ensures that the build system uses the cross-compiler and
|
||||
associated tools instead of the ones on the host system.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<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>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-sysroot</parameter></term>
|
||||
<listitem>
|
||||
<para>The sysroot feature enables the linker to find shared objects
|
||||
which are required by other shared objects explicitly included on the
|
||||
linker's command line. Without this, some packages may not build
|
||||
successfully on some hosts.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>Now prepare the linker for the <quote>Re-adjusting</quote> phase in
|
||||
the next chapter:</para>
|
||||
|
||||
<screen><userinput remap="adjust">make -C ld clean
|
||||
make -C ld LIB_PATH=/usr/lib:/lib
|
||||
cp -v ld/ld-new /tools/bin</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the make parameters:</title>
|
||||
|
||||
<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 LIB_PATH=/usr/lib:/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 of the temporary tools
|
||||
and point it to the proper final path. The value of this variable
|
||||
specifies the linker's default library search path. This
|
||||
preparation is used in the next chapter.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-binutils" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-bison" role="wrap">
|
||||
<?dbhtml filename="bison.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bison</productname>
|
||||
<productnumber>&bison-version;</productnumber>
|
||||
<address>&bison-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bison-&bison-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/bison.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bison-ch5-sbu;</seg>
|
||||
<seg>&bison-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bison</title>
|
||||
|
||||
<para>Prepare Bison for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-bzip2" role="wrap">
|
||||
<?dbhtml filename="bzip2.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bzip2</productname>
|
||||
<productnumber>&bzip2-version;</productnumber>
|
||||
<address>&bzip2-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bzip2-&bzip2-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/bzip2.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bzip2-ch5-sbu;</seg>
|
||||
<seg>&bzip2-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bzip2</title>
|
||||
|
||||
<para>The Bzip2 package does not contain a <command>configure</command>
|
||||
script. Compile and test it with:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-changingowner">
|
||||
<?dbhtml filename="changingowner.html"?>
|
||||
|
||||
<title>Changing Ownership</title>
|
||||
|
||||
<note>
|
||||
<para>The commands in the remainder of this book must be performed while
|
||||
logged in as user <systemitem class="username">root</systemitem> and no
|
||||
longer as user <systemitem class="username">lfs</systemitem>. Also, double
|
||||
check that <envar>$LFS</envar> is set in <systemitem
|
||||
class="username">root</systemitem>'s environment.</para>
|
||||
</note>
|
||||
|
||||
<para>Currently, the <filename class="directory">$LFS/tools</filename> directory
|
||||
is owned by the user <systemitem class="username">lfs</systemitem>, a user
|
||||
that exists only on the host system. If the <filename
|
||||
class="directory">$LFS/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">$LFS/tools</filename> directory and all the files
|
||||
therein, thus exposing these files to possible malicious manipulation.</para>
|
||||
|
||||
<para>To avoid this issue, you could add the <systemitem
|
||||
class="username">lfs</systemitem> 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. Better yet, change the
|
||||
ownership of the <filename class="directory">$LFS/tools</filename> directory to
|
||||
user <systemitem class="username">root</systemitem> by running the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput>chown -R root:root $LFS/tools</userinput></screen>
|
||||
|
||||
<para>Although the <filename class="directory">$LFS/tools</filename> directory
|
||||
can be deleted once the LFS system has been finished, it can be retained to build
|
||||
additional LFS systems <emphasis>of the same book version</emphasis>. How best
|
||||
to backup <filename class="directory">$LFS/tools</filename> is a matter of
|
||||
personal preference.</para>
|
||||
|
||||
<caution>
|
||||
<para>If you intend to keep the temporary tools for use in building future LFS
|
||||
systems, <emphasis>now</emphasis> is the time to back them up. Subsequent
|
||||
commands in chapter 6 will alter the tools currently in place, rendering them
|
||||
useless for future builds.</para>
|
||||
</caution>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<chapter id="chapter-temporary-tools" xreflabel="Chapter 5">
|
||||
<?dbhtml dir="chapter05"?>
|
||||
<?dbhtml filename="chapter05.html"?>
|
||||
|
||||
<title>Constructing a Temporary System</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="toolchaintechnotes.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="generalinstructions.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="binutils-pass1.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gcc-pass1.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="linux-headers.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glibc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libstdc++.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="binutils-pass2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gcc-pass2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tcl.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="expect.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dejagnu.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="check.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ncurses.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bash.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bzip2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="coreutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="diffutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="file.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="findutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gawk.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gettext.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="grep.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gzip.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="m4.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="make.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="patch.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="perl.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sed.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tar.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="texinfo.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="util-linux.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="xz.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stripping.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="changingowner.xml"/>
|
||||
|
||||
</chapter>
|
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-check" role="wrap">
|
||||
<?dbhtml filename="check.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>check</productname>
|
||||
<productnumber>&check-version;</productnumber>
|
||||
<address>&check-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Check-&check-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-check">
|
||||
<primary sortas="a-Check">Check</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>Check is a unit testing framework for C.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&check-ch5-sbu;</seg>
|
||||
<seg>&check-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Check</title>
|
||||
|
||||
<para>Prepare Check for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">PKG_CONFIG= ./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure parameter:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>PKG_CONFIG=</parameter></term>
|
||||
<listitem>
|
||||
<para>This tells the configure script to ignore any
|
||||
pkg-config options that may cause the system to try to link
|
||||
with libraries not in the <filename class="directory">/tools</filename>
|
||||
directory.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Build the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Check test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Note that the Check test suite may take a relatively long
|
||||
(up to 4 SBU) time.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-check" role="content">
|
||||
<title>Contents of Check</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>checkmk</seg>
|
||||
<seg>libcheck.{a,so}</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="checkmk">
|
||||
<term><command>checkmk</command></term>
|
||||
<listitem>
|
||||
<para>Awk script for generating C unit tests for use with the Check
|
||||
unit testing framework</para>
|
||||
<indexterm zone="ch-tools-check checkmk">
|
||||
<primary sortas="b-checmk">checkmk</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libcheck">
|
||||
<term><filename class="libraryfile">libcheck.{a,so}</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions that allow Check to be called from a test
|
||||
program</para>
|
||||
<indexterm zone="ch-tools-check libcheck">
|
||||
<primary sortas="c-libcheck">libcheck</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-coreutils" role="wrap">
|
||||
<?dbhtml filename="coreutils.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>coreutils</productname>
|
||||
<productnumber>&coreutils-version;</productnumber>
|
||||
<address>&coreutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Coreutils-&coreutils-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/coreutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&coreutils-ch5-sbu;</seg>
|
||||
<seg>&coreutils-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Coreutils</title>
|
||||
|
||||
<para>Prepare Coreutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools --enable-install-program=hostname</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><envar>--enable-install-program=hostname</envar></term>
|
||||
<listitem>
|
||||
<para>This enables the <command>hostname</command> binary to be built
|
||||
and installed – it is disabled by default but is required by the
|
||||
Perl test suite.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Coreutils test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make RUN_EXPENSIVE_TESTS=yes check</userinput></screen>
|
||||
|
||||
<para>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>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
<!--
|
||||
<para>The above command refuses to install <filename>su</filename>
|
||||
because the program cannot be installed setuid root as a non-privileged
|
||||
user. By manually installing it, we can use it for running tests in the
|
||||
final system as a non-privileged user. Install it with:</para>
|
||||
|
||||
<screen><userinput remap="install">cp -v src/su /tools/bin</userinput></screen>
|
||||
-->
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-coreutils" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-dejagnu" role="wrap">
|
||||
<?dbhtml filename="dejagnu.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>dejagnu</productname>
|
||||
<productnumber>&dejagnu-version;</productnumber>
|
||||
<address>&dejagnu-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>DejaGNU-&dejagnu-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&dejagnu-ch5-sbu;</seg>
|
||||
<seg>&dejagnu-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of DejaGNU</title>
|
||||
|
||||
<para>Prepare DejaGNU for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Build and install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-dejagnu" role="content">
|
||||
<title>Contents of DejaGNU</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>runtest</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-diffutils" role="wrap">
|
||||
<?dbhtml filename="diffutils.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>diffutils</productname>
|
||||
<productnumber>&diffutils-version;</productnumber>
|
||||
<address>&diffutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Diffutils-&diffutils-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/diffutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&diffutils-ch5-sbu;</seg>
|
||||
<seg>&diffutils-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Diffutils</title>
|
||||
|
||||
<para>Prepare Diffutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Diffutils test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,98 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-e2fsprogs" role="wrap">
|
||||
<?dbhtml filename="e2fsprogs.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>e2fsprogs</productname>
|
||||
<productnumber>&e2fsprogs-version;</productnumber>
|
||||
<address>&e2fsprogs-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>E2fsprogs-&e2fsprogs-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-e2fsprogs">
|
||||
<primary sortas="a-E2fsprogs">E2fsprogs</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/e2fsprogs.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&e2fsprogs-ch5-sbu;</seg>
|
||||
<seg>&e2fsprogs-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of E2fsprogs</title>
|
||||
|
||||
<para>The E2fsprogs documentation recommends that the package be built in
|
||||
a subdirectory of the source tree: </para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v build
|
||||
cd build</userinput></screen>
|
||||
|
||||
<para>Prepare E2fsprogs for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">../configure --prefix=/tools --disable-libblkid --disable-libuuid</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the new configure option:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-libblkid</parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents E2fsprogs from building its own copy of the
|
||||
libblkid library, which Util-Linux-NG provides.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-libuuid</parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents E2fsprogs from building its own copy of the
|
||||
libuuid library, which Util-Linux-NG provides.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the static libraries and headers required by Util-linux:</para>
|
||||
|
||||
<screen><userinput remap="install">make install-libs</userinput></screen>
|
||||
|
||||
<para>Make the installed static libraries writable so debugging symbols can
|
||||
be removed later:</para>
|
||||
|
||||
<screen><userinput remap="install">chmod -v u+w \
|
||||
/tools/lib/{libcom_err,libe2p,libext2fs,libss}.a</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-e2fsprogs" role="."/></para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,160 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-expect" role="wrap">
|
||||
<?dbhtml filename="expect.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>expect</productname>
|
||||
<productnumber>&expect-version;</productnumber>
|
||||
<address>&expect-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Expect-&expect-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&expect-ch5-sbu;</seg>
|
||||
<seg>&expect-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Expect</title>
|
||||
|
||||
<para>First, force Expect's configure script to use <filename>/bin/stty</filename>
|
||||
instead of a <filename>/usr/local/bin/stty</filename> it may find on the host system.
|
||||
This will ensure that our test suite tools remain sane for the final builds of our
|
||||
toolchain:</para>
|
||||
|
||||
<screen><userinput remap="pre">cp -v configure{,.orig}
|
||||
sed 's:/usr/local/bin:/bin:' configure.orig > configure</userinput></screen>
|
||||
|
||||
<para>Now prepare Expect for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools \
|
||||
--with-tcl=/tools/lib \
|
||||
--with-tclinclude=/tools/include</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<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-tclinclude=/tools/include</parameter></term>
|
||||
<listitem>
|
||||
<para>This explicitly tells Expect where to find Tcl's internal
|
||||
headers. Using this option avoids conditions where
|
||||
<command>configure</command> fails because it cannot automatically
|
||||
discover the location of Tcl's headers.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Build the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Expect test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make test</userinput></screen>
|
||||
|
||||
<para>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>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make SCRIPTS="" install</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the make parameter:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>SCRIPTS=""</parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents installation of the supplementary Expect
|
||||
scripts, which are not needed.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-expect" role="content">
|
||||
<title>Contents of Expect</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>expect</seg>
|
||||
<seg>libexpect-&expect-lib-version;.so</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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-&expect-lib-version;.so</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-&expect-lib-version;">libexpect-&expect-lib-version;</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-file" role="wrap">
|
||||
<?dbhtml filename="file.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>file</productname>
|
||||
<productnumber>&file-version;</productnumber>
|
||||
<address>&file-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>File-&file-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-file">
|
||||
<primary sortas="a-File">File</primary>
|
||||
<secondary>tools</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/file.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&file-ch5-sbu;</seg>
|
||||
<seg>&file-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of File</title>
|
||||
|
||||
<para>Prepare File for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 File test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-file" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-findutils" role="wrap">
|
||||
<?dbhtml filename="findutils.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>findutils</productname>
|
||||
<productnumber>&findutils-version;</productnumber>
|
||||
<address>&findutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Findutils-&findutils-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/findutils.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&findutils-ch5-sbu;</seg>
|
||||
<seg>&findutils-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Findutils</title>
|
||||
|
||||
<para>Prepare Findutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Findutils test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,84 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-flex" role="wrap">
|
||||
<?dbhtml filename="flex.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>flex</productname>
|
||||
<productnumber>&flex-version;</productnumber>
|
||||
<address>&flex-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Flex-&flex-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/flex.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&flex-ch5-sbu;</seg>
|
||||
<seg>&flex-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Flex</title>
|
||||
|
||||
<para>Flex contains several known bugs. These can be fixed with the
|
||||
following patch:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&flex-fixes-patch;</userinput></screen>
|
||||
|
||||
<para>The GNU autotools will detect that the Flex source code has been
|
||||
modified by the previous patch and tries to update the man 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 remap="pre">touch doc/flex.1</userinput></screen>
|
||||
|
||||
<para>Now prepare Flex for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-gawk" role="wrap">
|
||||
<?dbhtml filename="gawk.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>gawk</productname>
|
||||
<productnumber>&gawk-version;</productnumber>
|
||||
<address>&gawk-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Gawk-&gawk-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/gawk.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&gawk-ch5-sbu;</seg>
|
||||
<seg>&gawk-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Gawk</title>
|
||||
|
||||
<para>Prepare Gawk for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Gawk test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,261 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-gcc-pass1" role="wrap">
|
||||
<?dbhtml filename="gcc-pass1.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>gcc</productname>
|
||||
<productnumber>&gcc-version;</productnumber>
|
||||
<address>&gcc-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>GCC-&gcc-version; - Pass 1</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/gcc.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&gcc-ch5p1-sbu;</seg>
|
||||
<seg>&gcc-ch5p1-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Cross GCC</title>
|
||||
|
||||
<para>GCC now requires the GMP, MPFR and MPC packages. As these packages may
|
||||
not be included in your host distribution, they will be built with
|
||||
GCC. Unpack each package into the GCC source directory and rename the
|
||||
resulting directories so the GCC build procedures will automatically
|
||||
use them:</para>
|
||||
|
||||
<note><para>There are frequent misunderstandings about this chapter. The
|
||||
procedures are the same as every other chapter as explained earlier (<xref
|
||||
linkend='buildinstr'/>). First extract the gcc tarball from the sources
|
||||
directory and then change to the directory created. Only then should you
|
||||
proceed with the instructions below.</para></note>
|
||||
|
||||
<screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
|
||||
mv -v mpfr-&mpfr-version; mpfr
|
||||
tar -xf ../gmp-&gmp-version;.tar.xz
|
||||
mv -v gmp-&gmp-extracted-version; gmp
|
||||
tar -xf ../mpc-&mpc-version;.tar.gz
|
||||
mv -v mpc-&mpc-version; mpc</userinput></screen>
|
||||
|
||||
<para>The following command will change the location of GCC's default
|
||||
dynamic linker to use the one installed in <filename
|
||||
class="directory">/tools</filename>. It also removes <filename
|
||||
class="directory">/usr/include</filename> from GCC's include search path.
|
||||
Issue:</para>
|
||||
|
||||
<screen><userinput remap="pre">for file in \
|
||||
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
|
||||
do
|
||||
cp -uv $file{,.orig}
|
||||
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
|
||||
-e 's@/usr@/tools@g' $file.orig > $file
|
||||
echo '
|
||||
#undef STANDARD_STARTFILE_PREFIX_1
|
||||
#undef STANDARD_STARTFILE_PREFIX_2
|
||||
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
|
||||
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
|
||||
touch $file.orig
|
||||
done</userinput></screen>
|
||||
|
||||
<para>In case the above seems hard to follow, let's break it down a bit.
|
||||
First we find all the files under the <filename
|
||||
class="directory">gcc/config</filename> directory that are named either
|
||||
<filename>linux.h</filename>, <filename>linux64.h</filename> or
|
||||
<filename>sysv4.h</filename>. For each file found, we copy it to a file of
|
||||
the same name but with an added suffix of <quote>.orig</quote>. Then the
|
||||
first sed expression prepends <quote>/tools</quote> to every instance of
|
||||
<quote>/lib/ld</quote>, <quote>/lib64/ld</quote> or
|
||||
<quote>/lib32/ld</quote>, while the second one replaces hard-coded
|
||||
instances of <quote>/usr</quote>. Next, we add our define statements which
|
||||
alter the default startfile prefix to the end of the file. Note that the
|
||||
trailing <quote>/</quote> in <quote>/tools/lib/</quote> is required.
|
||||
Finally, we use <command>touch</command> to update the timestamp on the
|
||||
copied files. When used in conjunction with <command>cp -u</command>, this
|
||||
prevents unexpected changes to the original files in case the commands are
|
||||
inadvertently run twice. </para>
|
||||
<!--
|
||||
<para>GCC doesn't detect stack protection correctly, which causes problems
|
||||
for the build of Glibc-&glibc-version;, so fix that by issuing the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure</userinput></screen>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<para>Also fix a problem identified upstream:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c</userinput></screen>
|
||||
-->
|
||||
<para>The GCC documentation recommends building GCC outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Prepare GCC for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">../gcc-&gcc-version;/configure \
|
||||
--target=$LFS_TGT \
|
||||
--prefix=/tools \
|
||||
--with-glibc-version=2.11 \
|
||||
--with-sysroot=$LFS \
|
||||
--with-newlib \
|
||||
--without-headers \
|
||||
--with-local-prefix=/tools \
|
||||
--with-native-system-header-dir=/tools/include \
|
||||
--disable-nls \
|
||||
--disable-shared \
|
||||
--disable-multilib \
|
||||
--disable-decimal-float \
|
||||
--disable-threads \
|
||||
--disable-libatomic \
|
||||
--disable-libgomp \
|
||||
--disable-libquadmath \
|
||||
--disable-libssp \
|
||||
--disable-libvtv \
|
||||
--disable-libstdcxx \
|
||||
--enable-languages=c,c++</userinput></screen>
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-newlib</parameter></term>
|
||||
<listitem>
|
||||
<para>Since a working C library is not yet available, this ensures
|
||||
that the inhibit_libc constant is defined when building libgcc. This prevents
|
||||
the compiling of any code that requires libc support.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-headers</parameter></term>
|
||||
<listitem>
|
||||
<para>When creating a complete cross-compiler, GCC requires
|
||||
standard headers compatible with the target system. For our
|
||||
purposes these headers will not be needed. This switch prevents
|
||||
GCC from looking for them.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-local-prefix=/tools</parameter></term>
|
||||
<listitem>
|
||||
<para>The local prefix is the location in the system that GCC will search
|
||||
for locally installed include files. The default is <filename>/usr/local</filename>.
|
||||
Setting this to <filename>/tools</filename> helps keep the host location of
|
||||
<filename>/usr/local</filename> out of this GCC's search path.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-native-system-header-dir=/tools/include</parameter></term>
|
||||
<listitem>
|
||||
<para>By default GCC searches <filename>/usr/include</filename> for system
|
||||
headers. In conjunction with the sysroot switch, this would translate normally
|
||||
to <filename>$LFS/usr/include</filename>. However the headers that will be installed
|
||||
in the next two sections will go to <filename>$LFS/tools/include</filename>. This
|
||||
switch ensures that gcc will find them correctly. In the second pass of GCC, this
|
||||
same switch will ensure that no headers from the host system are found.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-shared</parameter></term>
|
||||
<listitem>
|
||||
<para>This switch forces GCC to link its internal libraries
|
||||
statically. We do this to avoid possible issues with the host
|
||||
system.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-decimal-float, --disable-threads,
|
||||
--disable-libatomic, --disable-libgomp, --disable-libquadmath,
|
||||
--disable-libssp, --disable-libvtv, --disable-libstdcxx</parameter></term>
|
||||
<listitem>
|
||||
<para>These switches disable support for the decimal floating point
|
||||
extension, threading, libatomic, libgomp, libquadmath, libssp,
|
||||
libvtv, and the C++ standard library respectively. These features
|
||||
will fail to compile when building a cross-compiler and are not
|
||||
necessary for the task of cross-compiling the temporary libc.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-multilib</parameter></term>
|
||||
<listitem>
|
||||
<para>On x86_64, LFS does not yet support a multilib configuration.
|
||||
This switch is harmless for x86.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-languages=c,c++</parameter></term>
|
||||
<listitem>
|
||||
<para>This option ensures that only the C and C++ compilers are built.
|
||||
These are the only languages needed now.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile GCC by running:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 remap="install">make install</userinput></screen>
|
||||
<!--
|
||||
<para>Using <parameter>- -disable-shared</parameter> means that the
|
||||
<filename>libgcc_eh.a</filename> file isn't created and installed. The
|
||||
Glibc package depends on this library as it uses
|
||||
<parameter>-lgcc_eh</parameter> within its build system. This dependency
|
||||
can be satisfied by creating a symlink to <filename>libgcc.a</filename>,
|
||||
since that file will end up containing the objects normally contained in
|
||||
<filename>libgcc_eh.a</filename>:</para>
|
||||
|
||||
<screen><userinput remap="install">ln -sv libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'`</userinput></screen>
|
||||
-->
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-gcc" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,228 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-gcc-pass2" role="wrap">
|
||||
<?dbhtml filename="gcc-pass2.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>gcc</productname>
|
||||
<productnumber>&gcc-version;</productnumber>
|
||||
<address>&gcc-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>GCC-&gcc-version; - Pass 2</title>
|
||||
|
||||
<indexterm zone="ch-tools-gcc-pass2">
|
||||
<primary sortas="a-GCC">GCC</primary>
|
||||
<secondary>tools, pass 2</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/gcc.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&gcc-ch5p2-sbu;</seg>
|
||||
<seg>&gcc-ch5p2-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of GCC</title>
|
||||
|
||||
<para>Our first build of GCC has installed a couple of internal system
|
||||
headers. Normally one of them, <filename>limits.h</filename>, will in turn
|
||||
include the corresponding system <filename>limits.h</filename> header, in
|
||||
this case, <filename>/tools/include/limits.h</filename>. However, at the
|
||||
time of the first build of gcc <filename>/tools/include/limits.h</filename>
|
||||
did not exist, so the internal header that GCC installed is a partial,
|
||||
self-contained file and does not include the extended features of the
|
||||
system header. This was adequate for building the temporary libc, but this
|
||||
build of GCC now requires the full internal header. Create a full version
|
||||
of the internal header using a command that is identical to what the GCC
|
||||
build system does in normal circumstances:</para>
|
||||
|
||||
<screen><userinput remap="pre">cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
|
||||
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h</userinput></screen>
|
||||
<!--
|
||||
<para>For x86 machines, the limited number of registers is a bottleneck
|
||||
for the system. Free one up by not using a frame pointer that is not
|
||||
needed:</para>
|
||||
|
||||
<screen><userinput remap="pre">case `uname -m` in
|
||||
i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;;
|
||||
esac</userinput></screen>
|
||||
-->
|
||||
<para>Once again, change the location of GCC's default dynamic linker to
|
||||
use the one installed in <filename
|
||||
class="directory">/tools</filename>.</para>
|
||||
|
||||
<screen><userinput remap="pre">for file in \
|
||||
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
|
||||
do
|
||||
cp -uv $file{,.orig}
|
||||
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
|
||||
-e 's@/usr@/tools@g' $file.orig > $file
|
||||
echo '
|
||||
#undef STANDARD_STARTFILE_PREFIX_1
|
||||
#undef STANDARD_STARTFILE_PREFIX_2
|
||||
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
|
||||
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
|
||||
touch $file.orig
|
||||
done</userinput></screen>
|
||||
|
||||
<para>As in the first build of GCC it requires the GMP, MPFR and MPC
|
||||
packages. Unpack the tarballs and move them into the required directory
|
||||
names:</para>
|
||||
|
||||
<screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
|
||||
mv -v mpfr-&mpfr-version; mpfr
|
||||
tar -xf ../gmp-&gmp-version;.tar.xz
|
||||
mv -v gmp-&gmp-extracted-version; gmp
|
||||
tar -xf ../mpc-&mpc-version;.tar.gz
|
||||
mv -v mpc-&mpc-version; mpc</userinput></screen>
|
||||
<!--
|
||||
<para>As in the first build of GCC, fix a problem identified upstream:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c</userinput></screen>
|
||||
-->
|
||||
<para>Create a separate build directory again:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../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 remap="configure">CC=$LFS_TGT-gcc \
|
||||
CXX=$LFS_TGT-g++ \
|
||||
AR=$LFS_TGT-ar \
|
||||
RANLIB=$LFS_TGT-ranlib \
|
||||
../gcc-&gcc-version;/configure \
|
||||
--prefix=/tools \
|
||||
--with-local-prefix=/tools \
|
||||
--with-native-system-header-dir=/tools/include \
|
||||
--enable-languages=c,c++ \
|
||||
--disable-libstdcxx-pch \
|
||||
--disable-multilib \
|
||||
--disable-bootstrap \
|
||||
--disable-libgomp</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the new configure options:</title>
|
||||
|
||||
<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>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-bootstrap</parameter></term>
|
||||
<listitem>
|
||||
<para>For native builds of GCC, the default is to do a "bootstrap"
|
||||
build. This 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. The second and third
|
||||
iterations are compared to make sure it can reproduce itself
|
||||
flawlessly. This also implies that it was compiled correctly.
|
||||
However, the LFS build method should provide a solid compiler
|
||||
without the need to bootstrap each time.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<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 remap="install">ln -sv gcc /tools/bin/cc</userinput></screen>
|
||||
|
||||
<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 'int main(){}' > dummy.c
|
||||
cc dummy.c
|
||||
readelf -l a.out | grep ': /tools'</userinput></screen>
|
||||
|
||||
<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>Note that <filename class="directory">/tools/lib</filename>, or
|
||||
<filename class="directory">/tools/lib64</filename> for 64-bit machines
|
||||
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. Install the symlink as per above.
|
||||
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 <systemitem class="username">lfs</systemitem> or that
|
||||
something went wrong back in <xref linkend="ch-tools-settingenviron"
|
||||
role="."/></para>
|
||||
|
||||
<para>Once all is well, clean up the test files:</para>
|
||||
|
||||
<screen><userinput>rm -v dummy.c a.out</userinput></screen>
|
||||
|
||||
</caution>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-gcc" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,122 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-generalinstructions">
|
||||
<?dbhtml filename="generalinstructions.html"?>
|
||||
|
||||
<title>General Compilation Instructions</title>
|
||||
|
||||
<para>When building packages there are several assumptions made within
|
||||
the instructions:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Check one last time that the <envar>LFS</envar> environment variable
|
||||
is set up properly:</para>
|
||||
|
||||
<screen role="nodump"><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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
||||
<para>Finally, two last important items must be emphasized:</para>
|
||||
|
||||
<important>
|
||||
|
||||
<para>The build instructions assume that the <xref
|
||||
linkend='pre-hostreqs'/>, including symbolic links, have been set
|
||||
properly:</para>
|
||||
|
||||
<itemizedlist role='important'>
|
||||
|
||||
<listitem override='bullet'><para><command>bash</command> is the shell
|
||||
in use.</para></listitem>
|
||||
|
||||
<listitem override='bullet'><para><command>sh</command> is a symbolic
|
||||
link to <command>bash</command>.</para></listitem>
|
||||
|
||||
<listitem override='bullet'><para><command>/usr/bin/awk</command> is a
|
||||
symbolic link to <command>gawk</command>.</para></listitem>
|
||||
|
||||
<listitem override='bullet'><para><command>/usr/bin/yacc</command> is a
|
||||
symbolic link to <command>bison</command> or a small script that
|
||||
executes bison.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</important>
|
||||
|
||||
<important>
|
||||
<para>To re-emphasize the build process:</para>
|
||||
|
||||
<orderedlist numeration="arabic" spacing="compact">
|
||||
<listitem>
|
||||
<para>Place all the sources and patches in a directory that will be
|
||||
accessible from the chroot environment such as
|
||||
<filename class="directory">/mnt/lfs/sources/</filename>. Do
|
||||
<emphasis>not</emphasis> put sources in
|
||||
<filename class="directory">/mnt/lfs/tools/</filename>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change to the sources directory.</para>
|
||||
</listitem>
|
||||
<listitem id='buildinstr' xreflabel='Package build instructions'>
|
||||
<para>For each package:</para>
|
||||
<orderedlist numeration="loweralpha" spacing="compact">
|
||||
<listitem>
|
||||
<para>Using the <command>tar</command> program, extract the package
|
||||
to be built. In Chapter 5, ensure you are the <emphasis>lfs</emphasis>
|
||||
user when extracting the package.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change to the directory created when the package was
|
||||
extracted.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Follow the book's instructions for building the package.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change back to the sources directory.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Delete the extracted source directory and any
|
||||
<filename class="directory"><replaceable><package></replaceable>-build</filename>
|
||||
directories that were created in the build process unless instructed otherwise.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</important>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-gettext" role="wrap">
|
||||
<?dbhtml filename="gettext.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>gettext</productname>
|
||||
<productnumber>&gettext-version;</productnumber>
|
||||
<address>&gettext-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Gettext-&gettext-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/gettext.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&gettext-ch5-sbu;</seg>
|
||||
<seg>&gettext-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Gettext</title>
|
||||
|
||||
<para>For our temporary set of tools, we only need to build and install
|
||||
three programs from Gettext.</para>
|
||||
|
||||
<para>Prepare Gettext for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">cd gettext-tools
|
||||
EMACS="no" ./configure --prefix=/tools --disable-shared</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure option:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>EMACS="no"</parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents the configure script from determining where to
|
||||
install Emacs Lisp files as the test is known to hang on some hosts.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-shared</parameter></term>
|
||||
<listitem>
|
||||
<para>We do not need to install any of the shared Gettext libraries at
|
||||
this time, therefore there is no need to build them.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make -C gnulib-lib
|
||||
make -C intl pluralx.c
|
||||
make -C src msgfmt
|
||||
make -C src msgmerge
|
||||
make -C src xgettext</userinput></screen>
|
||||
|
||||
<para>As only three programs have been compiled, it is not possible to run the
|
||||
test suite without compiling additional support libraries from the Gettext
|
||||
package. It is therefore not recommended to attempt to run the test suite at
|
||||
this stage.</para>
|
||||
|
||||
<para>Install the <command>msgfmt</command>, <command>msgmerge</command> and
|
||||
<command>xgettext</command> programs:</para>
|
||||
|
||||
<screen><userinput remap="install">cp -v src/{msgfmt,msgmerge,xgettext} /tools/bin</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-gettext" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,232 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-glibc" role="wrap">
|
||||
<?dbhtml filename="glibc.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>glibc</productname>
|
||||
<productnumber>&glibc-version;</productnumber>
|
||||
<address>&glibc-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Glibc-&glibc-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/glibc.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&glibc-ch5-sbu;</seg>
|
||||
<seg>&glibc-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Glibc</title>
|
||||
|
||||
<para>First, fix a build problem that affects i386 systems:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&glibc-upstream-patch;</userinput></screen>
|
||||
|
||||
<para>The Glibc documentation recommends building Glibc outside of the source
|
||||
directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../glibc-build
|
||||
cd ../glibc-build</userinput></screen>
|
||||
|
||||
<para>Next, prepare Glibc for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">../glibc-&glibc-version;/configure \
|
||||
--prefix=/tools \
|
||||
--host=$LFS_TGT \
|
||||
--build=$(../glibc-&glibc-version;/scripts/config.guess) \
|
||||
--disable-profile \
|
||||
--enable-kernel=&min-kernel; \
|
||||
--enable-obsolete-rpc \
|
||||
--with-headers=/tools/include \
|
||||
libc_cv_forced_unwind=yes \
|
||||
libc_cv_ctors_header=yes \
|
||||
libc_cv_c_cleanup=yes</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--host=$LFS_TGT, --build=$(../glibc-&glibc-version;/scripts/config.guess)</parameter></term>
|
||||
<listitem>
|
||||
<para>The combined effect of these switches is that Glibc's build system
|
||||
configures itself to cross-compile, using the cross-linker and
|
||||
cross-compiler in <filename class="directory">/tools</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<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-kernel=&min-kernel;</parameter></term>
|
||||
<listitem>
|
||||
<para>This tells Glibc to compile the library with support
|
||||
for &min-kernel; and later Linux kernels. Workarounds for older
|
||||
kernels are not enabled.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-obsolete-rpc</parameter></term>
|
||||
<listitem>
|
||||
<para>This installs NIS and RPC related headers that are not
|
||||
installed by default. They are required to build GCC and by
|
||||
several BLFS packages.</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>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>libc_cv_forced_unwind=yes</parameter></term>
|
||||
<listitem>
|
||||
<para>The linker installed during
|
||||
<xref linkend="ch-tools-binutils-pass1"/> was cross-compiled and as
|
||||
such cannot be used until Glibc has been installed. This means that
|
||||
the configure test for force-unwind support will fail, as it relies on
|
||||
a working linker. The libc_cv_forced_unwind=yes variable is passed in
|
||||
order to inform <command>configure</command> that force-unwind
|
||||
support is available without it having to run the test.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>libc_cv_c_cleanup=yes</parameter></term>
|
||||
<listitem>
|
||||
<para>Similarly, we pass libc_cv_c_cleanup=yes through to the
|
||||
<command>configure</command> script so that the test is skipped and C
|
||||
cleanup handling support is configured.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>libc_cv_ctors_header=yes</parameter></term>
|
||||
<listitem>
|
||||
<para>Similarly, we pass libc_cv_ctors_header=yes through to the
|
||||
<command>configure</command> script so that the test is skipped and
|
||||
gcc constructor support is configured.</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. This <command>msgfmt</command> program is part of the
|
||||
Gettext package which the host distribution should provide.</para>
|
||||
|
||||
<note><para>There have been reports that this package may fail when
|
||||
building as a "parallel make". If this occurs, rerun the make command
|
||||
with a "-j1" option.</para></note>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<!--
|
||||
<para>This package does come with a test suite, however, it cannot be
|
||||
run at this time because we do not have a C++ compiler yet.</para>
|
||||
|
||||
<note>
|
||||
<para>The test suite also requires locale data to be installed in order to run
|
||||
successfully. Locale data provides information to the system regarding
|
||||
such things as the date, time, and currency formats accepted and output by
|
||||
system utilities. 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. To install
|
||||
the Glibc locales anyway, use instructions from <xref
|
||||
linkend="ch-system-glibc" role="."/></para>
|
||||
</note>
|
||||
-->
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<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 'int main(){}' > dummy.c
|
||||
$LFS_TGT-gcc dummy.c
|
||||
readelf -l a.out | grep ': /tools'</userinput></screen>
|
||||
|
||||
<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>Note that for 64-bit machines, the interpreter name will be
|
||||
<filename>/tools/lib64/ld-linux-x86-64.so.2</filename>.</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.</para>
|
||||
|
||||
<para>Once all is well, clean up the test files:</para>
|
||||
|
||||
<screen><userinput>rm -v dummy.c a.out</userinput></screen>
|
||||
|
||||
</caution>
|
||||
|
||||
<note><para>Building Binutils in the section after next will serve as an
|
||||
additional check that the toolchain has been built properly. If Binutils
|
||||
fails to build, it is an indication that something has gone wrong with the
|
||||
previous Binutils, GCC, or Glibc installations.</para></note>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-glibc" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,84 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-gmp" role="wrap">
|
||||
<?dbhtml filename="gmp.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>gmp</productname>
|
||||
<productnumber>&gmp-version;</productnumber>
|
||||
<address>&gmp-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>GMP-&gmp-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-gmp">
|
||||
<primary sortas="a-GMP">GMP</primary>
|
||||
<secondary>tools</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/gmp.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&gmp-ch5-sbu;</seg>
|
||||
<seg>&gmp-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of GMP</title>
|
||||
|
||||
<para>Prepare GMP for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools --enable-mpbsd</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure option:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-mpbsd</parameter></term>
|
||||
<listitem>
|
||||
<para>This builds the Berkeley MP compatibility library</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-gmp" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-grep" role="wrap">
|
||||
<?dbhtml filename="grep.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>grep</productname>
|
||||
<productnumber>&grep-version;</productnumber>
|
||||
<address>&grep-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Grep-&grep-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/grep.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&grep-ch5-sbu;</seg>
|
||||
<seg>&grep-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Grep</title>
|
||||
|
||||
<para>Prepare Grep for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Grep test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-grep" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-gzip" role="wrap">
|
||||
<?dbhtml filename="gzip.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>gzip</productname>
|
||||
<productnumber>&gzip-version;</productnumber>
|
||||
<address>&gzip-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Gzip-&gzip-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/gzip.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&gzip-ch5-sbu;</seg>
|
||||
<seg>&gzip-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Gzip</title>
|
||||
|
||||
<para>Prepare Gzip for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Gzip test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-introduction">
|
||||
<?dbhtml filename="introduction.html"?>
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>This chapter shows how to build 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>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,125 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-libstdcpp" role="wrap">
|
||||
<?dbhtml filename="gcc-libstdc++.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>libstdc++</productname>
|
||||
<productnumber>&gcc-version;</productnumber>
|
||||
<address>&gcc-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Libstdc++-&gcc-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-libstdcpp">
|
||||
<primary sortas="a-GCC">GCC</primary>
|
||||
<secondary>tools, libstdc++</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>Libstdc++ is the standard C++ library. It is needed for the correct
|
||||
operation of the g++ compiler.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&libstdcpp-ch5-sbu;</seg>
|
||||
<seg>&libstdcpp-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Target Libstdc++</title>
|
||||
|
||||
<note>
|
||||
<para><application>Libstdc++</application> is part of the GCC sources.
|
||||
You should first unpack the GCC tarball and change to the
|
||||
<filename>gcc-&gcc-version;</filename> directory.</para>
|
||||
</note>
|
||||
|
||||
<para>Create a directory for Libstdc++ and enter it:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../gcc-build
|
||||
cd ../gcc-build</userinput></screen>
|
||||
|
||||
<para>Prepare Libstdc++ for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">../gcc-&gcc-version;/libstdc++-v3/configure \
|
||||
--host=$LFS_TGT \
|
||||
--prefix=/tools \
|
||||
--disable-multilib \
|
||||
--disable-nls \
|
||||
--disable-libstdcxx-threads \
|
||||
--disable-libstdcxx-pch \
|
||||
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--host=...</parameter></term>
|
||||
<listitem>
|
||||
<para>Indicates to use the cross compiler we have just built
|
||||
instead of the one in <filename>/usr/bin</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-libstdcxx-threads</parameter></term>
|
||||
<listitem>
|
||||
<para>Since we have not yet built the C threads library, the C++
|
||||
one cannot be built either.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-libstdcxx-pch</parameter></term>
|
||||
<listitem>
|
||||
<para>This switch prevents the installation of precompiled
|
||||
include files, which are not needed at this stage.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</parameter></term>
|
||||
<listitem>
|
||||
<para>This is the location where the standard include files are
|
||||
searched by the C++ compiler. In a normal build, this information
|
||||
is automatically passed to the Libstdc++ <command>configure</command>
|
||||
options from the top level directory. In our case, this information
|
||||
must be explicitly given.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile libstdc++ by running:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the library:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-gcc" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-linux-headers" role="wrap">
|
||||
<?dbhtml filename="linux-headers.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>linux</productname>
|
||||
<productnumber>&linux-version;</productnumber>
|
||||
<address>&linux-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Linux-&linux-version; API Headers</title>
|
||||
|
||||
<indexterm zone="ch-tools-linux-headers">
|
||||
<primary sortas="a-Linux">Linux</primary>
|
||||
<secondary>tools, API headers</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/linux-headers.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&linux-headers-ch5-sbu;</seg>
|
||||
<seg>&linux-headers-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Linux API Headers</title>
|
||||
|
||||
<para>The Linux kernel needs to expose an Application Programming Interface
|
||||
(API) for the system's C library (Glibc in LFS) to use. This is done
|
||||
by way of sanitizing various C header files that are shipped in the Linux
|
||||
kernel source tarball.</para>
|
||||
|
||||
<para>Make sure there are no stale files embedded in the package:</para>
|
||||
|
||||
<screen><userinput remap="pre">make mrproper</userinput></screen>
|
||||
|
||||
<para>Now extract the user-visible kernel headers from the source.
|
||||
They are placed in an intermediate local directory and copied to the needed
|
||||
location because the extraction process removes any existing files in
|
||||
the target directory.</para>
|
||||
|
||||
<screen><userinput remap="make">make INSTALL_HDR_PATH=dest headers_install
|
||||
</userinput><userinput remap="install">cp -rv dest/include/* /tools/include</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-linux-headers" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-m4" role="wrap">
|
||||
<?dbhtml filename="m4.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>m4</productname>
|
||||
<productnumber>&m4-version;</productnumber>
|
||||
<address>&m4-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>M4-&m4-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/m4.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&m4-ch5-sbu;</seg>
|
||||
<seg>&m4-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of M4</title>
|
||||
|
||||
<para>Prepare M4 for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 M4 test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
<sect1 id="ch-tools-make" role="wrap">
|
||||
<?dbhtml filename="make.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>make</productname>
|
||||
<productnumber>&make-version;</productnumber>
|
||||
<address>&make-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Make-&make-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/make.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&make-ch5-sbu;</seg>
|
||||
<seg>&make-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Make</title>
|
||||
|
||||
<para>Prepare Make for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools --without-guile</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure option:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-guile</parameter></term>
|
||||
<listitem>
|
||||
<para>This ensures that Make-&make-version; won't link against Guile libraries, which
|
||||
may be present on the host system, but won't be available within the
|
||||
<command>chroot</command> environment in the next chapter.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Make test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-make" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-mpfr" role="wrap">
|
||||
<?dbhtml filename="mpfr.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>mpfr</productname>
|
||||
<productnumber>&mpfr-version;</productnumber>
|
||||
<address>&mpfr-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>MPFR-&mpfr-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-mpfr">
|
||||
<primary sortas="a-MPFR">MPFR</primary>
|
||||
<secondary>tools</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/mpfr.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&mpfr-ch5-sbu;</seg>
|
||||
<seg>&mpfr-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of MPFR</title>
|
||||
|
||||
<para>Prepare MPFR for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools --enable-thread-safe</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-mpfr" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,122 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-ncurses" role="wrap">
|
||||
<?dbhtml filename="ncurses.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>ncurses</productname>
|
||||
<productnumber>&ncurses-version;</productnumber>
|
||||
<address>&ncurses-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Ncurses-&ncurses-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/ncurses.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&ncurses-ch5-sbu;</seg>
|
||||
<seg>&ncurses-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Ncurses</title>
|
||||
|
||||
<para>First, ensure that gawk is found first during configuration:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i s/mawk// configure</userinput></screen>
|
||||
|
||||
<para>Prepare Ncurses for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools \
|
||||
--with-shared \
|
||||
--without-debug \
|
||||
--without-ada \
|
||||
--enable-widec \
|
||||
--enable-overwrite</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-ada</parameter></term>
|
||||
<listitem>
|
||||
<para>This ensures that Ncurses does not build support for the Ada
|
||||
compiler which may be present on the host but will not be available
|
||||
once we enter the <command>chroot</command> environment.</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>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-widec</parameter></term>
|
||||
<listitem>
|
||||
<para>This switch causes wide-character libraries (e.g., <filename
|
||||
class="libraryfile">libncursesw.so.&ncurses-version;</filename>)
|
||||
to be built instead of normal ones (e.g., <filename
|
||||
class="libraryfile">libncurses.so.&ncurses-version;</filename>).
|
||||
These wide-character libraries are usable in both multibyte and
|
||||
traditional 8-bit locales, while normal libraries work properly
|
||||
only in 8-bit locales. Wide-character and normal libraries are
|
||||
source-compatible, but not binary-compatible.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>This package has a test suite, but it can only be run after the
|
||||
package has been installed. The tests reside in the
|
||||
<filename class="directory">test/</filename> directory. See the
|
||||
<filename>README</filename> file in that directory for further details.
|
||||
</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-patch" role="wrap">
|
||||
<?dbhtml filename="patch.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>patch</productname>
|
||||
<productnumber>&patch-version;</productnumber>
|
||||
<address>&patch-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Patch-&patch-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/patch.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&patch-ch5-sbu;</seg>
|
||||
<seg>&patch-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Patch</title>
|
||||
|
||||
<para>Prepare Patch for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Patch test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">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>
|
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-perl" role="wrap">
|
||||
<?dbhtml filename="perl.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>perl</productname>
|
||||
<productnumber>&perl-version;</productnumber>
|
||||
<address>&perl-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Perl-&perl-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/perl.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&perl-ch5-sbu;</seg>
|
||||
<seg>&perl-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Perl</title>
|
||||
<!--
|
||||
<para>First apply the following patch to adapt some hard-wired paths to the
|
||||
C library:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&perl-libc-patch;</userinput></screen>
|
||||
|
||||
Note: -Dlibs=-lm below avoids looking for gdbm and db libraries causing failure
|
||||
-->
|
||||
<para>Prepare Perl for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">sh Configure -des -Dprefix=/tools -Dlibs=-lm</userinput></screen>
|
||||
|
||||
<para>Build the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Although Perl comes with a test suite, it would be better to wait
|
||||
until it is installed in the next chapter.</para>
|
||||
|
||||
<para>Only a few of the utilities and libraries need to be installed at this
|
||||
time:</para>
|
||||
|
||||
<screen><userinput remap="install">cp -v perl cpan/podlators/pod2man /tools/bin
|
||||
mkdir -pv /tools/lib/perl5/&perl-version;
|
||||
cp -Rv 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>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-sed" role="wrap">
|
||||
<?dbhtml filename="sed.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>sed</productname>
|
||||
<productnumber>&sed-version;</productnumber>
|
||||
<address>&sed-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Sed-&sed-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/sed.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&sed-ch5-sbu;</seg>
|
||||
<seg>&sed-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Sed</title>
|
||||
|
||||
<para>Prepare Sed for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Sed test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-sed" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-stripping">
|
||||
<?dbhtml filename="stripping.html"?>
|
||||
|
||||
<title>Stripping</title>
|
||||
|
||||
<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 70 MB of unneeded
|
||||
debugging symbols. Remove those symbols with:</para>
|
||||
|
||||
<screen><userinput>strip --strip-debug /tools/lib/*
|
||||
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*</userinput></screen>
|
||||
|
||||
<para>These commands will skip a number of files, reporting that it does not
|
||||
recognize their file format. Most of these are scripts instead of binaries.
|
||||
Also use the system strip command to include the strip binary in /tools.</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 more, remove the documentation:</para>
|
||||
|
||||
<screen><userinput>rm -rf /tools/{,share}/{info,man,doc}</userinput></screen>
|
||||
|
||||
<para>At this point, you should have at least 3 GB of free space in
|
||||
<envar>$LFS</envar> that can be used to build and install Glibc and Gcc in
|
||||
the next phase. If you can build and install Glibc, you can build and install
|
||||
the rest too.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-tar" role="wrap">
|
||||
<?dbhtml filename="tar.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>tar</productname>
|
||||
<productnumber>&tar-version;</productnumber>
|
||||
<address>&tar-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Tar-&tar-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/tar.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&tar-ch5-sbu;</seg>
|
||||
<seg>&tar-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Tar</title>
|
||||
|
||||
<para>Prepare Tar for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Tar test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-tar" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-tcl" role="wrap">
|
||||
<?dbhtml filename="tcl.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>tcl-core</productname>
|
||||
<productnumber>&tcl-version;</productnumber>
|
||||
<address>&tcl-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Tcl-core-&tcl-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-tcl">
|
||||
<primary sortas="a-Tcl">Tcl-core</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Tcl package contains the Tool Command Language.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&tcl-ch5-sbu;</seg>
|
||||
<seg>&tcl-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Tcl-core</title>
|
||||
|
||||
<para>This package and the next three (Expect, DejaGNU, and Check) are
|
||||
installed to support running the test suites for GCC and Binutils and other
|
||||
packages. Installing four 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>Note that the Tcl package used here is a minimal version needed
|
||||
to run the LFS tests. For the full package, see the
|
||||
<ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para>
|
||||
|
||||
<para>Prepare Tcl for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">cd unix
|
||||
./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Build the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Tcl test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">TZ=UTC make test</userinput></screen>
|
||||
|
||||
<para>The Tcl test suite may 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), 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 are provided in <xref linkend="chapter-bootscripts"/>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>Make the installed library writable so debugging symbols can
|
||||
be removed later:</para>
|
||||
|
||||
<screen><userinput remap="install">chmod -v u+w /tools/lib/libtcl&tcl-major-version;.so</userinput></screen>
|
||||
|
||||
<para>Install Tcl's headers. The next package, Expect, requires them
|
||||
to build.</para>
|
||||
|
||||
<screen><userinput remap="install">make install-private-headers</userinput></screen>
|
||||
|
||||
<para>Now make a necessary symbolic link:</para>
|
||||
|
||||
<screen><userinput remap="install">ln -sv tclsh&tcl-major-version; /tools/bin/tclsh</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-tcl" role="content">
|
||||
<title>Contents of Tcl-core</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>tclsh (link to tclsh&tcl-major-version;) and tclsh&tcl-major-version;</seg>
|
||||
<seg>libtcl&tcl-major-version;.so, libtclstub&tcl-major-version;.a</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="tclsh&tcl-major-version;">
|
||||
<term><command>tclsh&tcl-major-version;</command></term>
|
||||
<listitem>
|
||||
<para>The Tcl command shell</para>
|
||||
<indexterm zone="ch-tools-tcl tclsh&tcl-major-version;">
|
||||
<primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="tclsh">
|
||||
<term><command>tclsh</command></term>
|
||||
<listitem>
|
||||
<para>A link to tclsh&tcl-major-version;</para>
|
||||
<indexterm zone="ch-tools-tcl tclsh">
|
||||
<primary sortas="b-tclsh">tclsh</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libtcl&tcl-major-version;.so">
|
||||
<term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term>
|
||||
<listitem>
|
||||
<para>The Tcl library</para>
|
||||
<indexterm zone="ch-tools-tcl libtcl&tcl-major-version;.so">
|
||||
<primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libtclstub&tcl-major-version;.a">
|
||||
<term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term>
|
||||
<listitem>
|
||||
<para>The Tcl Stub library</para>
|
||||
<indexterm zone="ch-tools-tcl libtclstub&tcl-major-version;.a">
|
||||
<primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-texinfo" role="wrap">
|
||||
<?dbhtml filename="texinfo.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>texinfo</productname>
|
||||
<productnumber>&texinfo-version;</productnumber>
|
||||
<address>&texinfo-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Texinfo-&texinfo-version;</title>
|
||||
|
||||
<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/2001/XInclude"
|
||||
href="../chapter06/texinfo.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&texinfo-ch5-sbu;</seg>
|
||||
<seg>&texinfo-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Texinfo</title>
|
||||
|
||||
<para>Prepare Texinfo for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Texinfo test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-texinfo" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,164 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-toolchaintechnotes">
|
||||
<?dbhtml filename="toolchaintechnotes.html"?>
|
||||
|
||||
<title>Toolchain Technical Notes</title>
|
||||
|
||||
<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
|
||||
to at any time during the process.</para>
|
||||
|
||||
<para>The overall goal of <xref linkend="chapter-temporary-tools"/> is to
|
||||
produce a temporary area that contains a known-good set of tools that can be
|
||||
isolated from the host system. By using <command>chroot</command>, the
|
||||
commands in the remaining chapters will be contained within that environment,
|
||||
ensuring a clean, trouble-free build of the target LFS system. The build
|
||||
process has been designed to minimize the risks for new readers and to provide
|
||||
the most educational value at the same time.</para>
|
||||
|
||||
<note>
|
||||
<para>Before continuing, be aware of the name of the working platform,
|
||||
often referred to as the target triplet. 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. For example, for a modern 32-bit Intel processor the
|
||||
output will likely be <emphasis>i686-pc-linux-gnu</emphasis>.</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 for a 32-bit Intel machine will be
|
||||
<filename class="libraryfile">ld-linux.so.2</filename>.
|
||||
A sure-fire way to determine the name of the dynamic linker 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>
|
||||
</note>
|
||||
|
||||
<para>Some key technical points of how the <xref
|
||||
linkend="chapter-temporary-tools"/> build method works:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Slightly adjusting the name of the working platform, by changing the
|
||||
"vendor" field target triplet by way of the
|
||||
<envar>LFS_TGT</envar> variable, ensures that the first build of Binutils
|
||||
and GCC produces a compatible cross-linker and cross-compiler. Instead of
|
||||
producing binaries for another architecture, the cross-linker and
|
||||
cross-compiler will produce binaries compatible with the current
|
||||
hardware.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> The temporary libraries are cross-compiled. Because a
|
||||
cross-compiler by its nature cannot rely on anything from its host
|
||||
system, this method removes potential contamination of the target
|
||||
system by lessening the chance of headers or libraries from the host
|
||||
being incorporated into the new tools. Cross-compilation also allows for
|
||||
the possibility of building both 32-bit and 64-bit libraries on 64-bit
|
||||
capable hardware.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Careful manipulation of the GCC source tells 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 highlight 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/$LFS_TGT/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-lfs-linux-gnu/bin/as
|
||||
checking what linker to use... /tools/i686-lfs-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>Next installed are sanitized Linux API headers. These allow the standard
|
||||
C library (Glibc) to interface with features that the Linux kernel will
|
||||
provide.</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 compiler
|
||||
relating to the <parameter>--host</parameter> parameter passed to its
|
||||
configure script, e.g. in our case,
|
||||
<command>i686-lfs-linux-gnu-gcc</command>. 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="i686-lfs-gnu-gcc"</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>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.</para>
|
||||
|
||||
<para>For the second pass of GCC, its sources also need to be modified to
|
||||
tell GCC to use the new dynamic linker. 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. 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>, we will perform a quick changeover of the
|
||||
toolchain defaults, and then proceed in building the rest of the target
|
||||
LFS system.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-util-linux" role="wrap">
|
||||
<?dbhtml filename="util-linux.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>util-linux</productname>
|
||||
<productnumber>&util-linux-version;</productnumber>
|
||||
<address>&util-linux-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Util-linux-&util-linux-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-util-linux">
|
||||
<primary sortas="a-Util-linux">Util-linux</primary>
|
||||
<secondary>tools</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Util-linux package contains miscellaneous utility programs.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&util-linux-ch5-sbu;</seg>
|
||||
<seg>&util-linux-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Util-linux</title>
|
||||
|
||||
<para>Prepare Util-linux for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools \
|
||||
--without-python \
|
||||
--disable-makeinstall-chown \
|
||||
--without-systemdsystemunitdir \
|
||||
PKG_CONFIG=""</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure option:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-python</parameter></term>
|
||||
<listitem>
|
||||
<para>This switch disables using <application>Python</application>
|
||||
if it is installed on the host system. It avoids trying to build
|
||||
unneeded bindings.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--disable-makeinstall-chown</parameter></term>
|
||||
<listitem>
|
||||
<para>This switch disables using the <command>chown</command> command
|
||||
during installation. This is not needed when installing into the
|
||||
/tools directory and avoids the necessity of installing as
|
||||
root.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--without-systemdsystemunitdir</parameter></term>
|
||||
<listitem>
|
||||
<para>On systems that use systemd, the package tries to install
|
||||
a systemd specific file to a non-existent directory in /tools.
|
||||
This switch disables the unnecessary action.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><envar>PKG_CONFIG=""</envar></term>
|
||||
<listitem>
|
||||
<para>Setting this envronment variable prevents adding unneeded
|
||||
features that may be available on the host. Note that the location
|
||||
shown for setting this environment variable is different from other
|
||||
LFS sections where variables are set preceding the command. This
|
||||
location is shown to demonstrate an alternative way of setting an
|
||||
environment variable when using configure.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-tools-xz" role="wrap">
|
||||
<?dbhtml filename="xz.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>xz</productname>
|
||||
<productnumber>&xz-version;</productnumber>
|
||||
<address>&xz-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Xz-&xz-version;</title>
|
||||
|
||||
<indexterm zone="ch-tools-xz">
|
||||
<primary sortas="a-xz">Xz</primary>
|
||||
<secondary>tools</secondary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="../chapter06/xz.xml"
|
||||
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&xz-ch5-sbu;</seg>
|
||||
<seg>&xz-ch5-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Xz</title>
|
||||
|
||||
<para>Prepare Xz for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/tools</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<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 Xz test suite anyway, issue the following command:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title/>
|
||||
|
||||
<para>Details on this package are located in
|
||||
<xref linkend="contents-xz" role="."/></para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-aboutdebug">
|
||||
<?dbhtml filename="aboutdebug.html"?>
|
||||
|
||||
<title>About Debugging Symbols</title>
|
||||
|
||||
<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 <command>bash</command> binary with debugging symbols:
|
||||
1200 KB</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A <command>bash</command> 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.</para>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,156 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-acl" role="wrap">
|
||||
<?dbhtml filename="acl.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>acl</productname>
|
||||
<productnumber>&acl-version;</productnumber>
|
||||
<address>&acl-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Acl-&acl-version;</title>
|
||||
|
||||
<indexterm zone="ch-system-acl">
|
||||
<primary sortas="a-Acl">Acl</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Acl package contains utilities to administer Access Control Lists,
|
||||
which are used to define more fine-grained discretionary access rights for
|
||||
files and directories.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&acl-ch6-sbu;</seg>
|
||||
<seg>&acl-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Acl</title>
|
||||
|
||||
<para>Modify the documentation directory so that it is a versioned
|
||||
directory:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i -e 's|/@pkg_name@|&-@pkg_version@|' include/builddefs.in</userinput></screen>
|
||||
|
||||
<para>Fix some broken tests:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i "s:| sed.*::g" test/{sbits-restore,cp,misc}.test</userinput></screen>
|
||||
|
||||
<para>Additionally, fix a bug that causes <command>getfacl -e</command>
|
||||
to segfault on overly long group name:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i -e "/TABS-1;/a if (x > (TABS-1)) x = (TABS-1);" \
|
||||
libacl/__acl_to_any_text.c</userinput></screen>
|
||||
|
||||
<para>Prepare Acl for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
--disable-static \
|
||||
--libexecdir=/usr/lib</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>The Acl tests need to be run on a filesystem that supports access
|
||||
controls after <application>Coreutils</application> has been built with the
|
||||
Acl libraries. If desired, return to this package and run <command>make -j1
|
||||
tests</command> after <application>Coreutils</application> has been built
|
||||
later in this chapter.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install install-dev install-lib
|
||||
chmod -v 755 /usr/lib/libacl.so</userinput></screen>
|
||||
|
||||
<para>The shared library needs to be moved to
|
||||
<filename class="directory">/lib</filename>, and as a result the
|
||||
<filename class="extension">.so</filename> file in
|
||||
<filename class="directory">/usr/lib</filename> will need to be recreated:</para>
|
||||
|
||||
<screen><userinput remap="install">mv -v /usr/lib/libacl.so.* /lib
|
||||
ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-acl" role="content">
|
||||
<title>Contents of Acl</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<segtitle>Installed directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>chacl, getfacl, and setacl</seg>
|
||||
<seg>libacl.so</seg>
|
||||
<seg>/usr/include/acl and /usr/share/doc/acl-&acl-version;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="chacl">
|
||||
<term><command>chacl</command></term>
|
||||
<listitem>
|
||||
<para>Changes the access control list of a file
|
||||
or directory</para>
|
||||
<indexterm zone="ch-system-acl chacl">
|
||||
<primary sortas="b-chacl">chacl</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="getfacl">
|
||||
<term><command>getfacl</command></term>
|
||||
<listitem>
|
||||
<para>Gets file access control lists</para>
|
||||
<indexterm zone="ch-system-acl getfacl">
|
||||
<primary sortas="b-getfacl">getfacl</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setacl">
|
||||
<term><command>setacl</command></term>
|
||||
<listitem>
|
||||
<para>Sets file access control lists</para>
|
||||
<indexterm zone="ch-system-acl setacl">
|
||||
<primary sortas="b-setacl">setacl</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libacl">
|
||||
<term><filename class="libraryfile">libacl</filename></term>
|
||||
<listitem>
|
||||
<para>Contains the library functions for manipulating Access Control Lists</para>
|
||||
<indexterm zone="ch-system-acl libacl">
|
||||
<primary sortas="c-libacl">libacl</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,117 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-adjusting">
|
||||
<?dbhtml filename="adjusting.html"?>
|
||||
|
||||
<title>Adjusting the Toolchain</title>
|
||||
|
||||
<para>Now that the final C libraries have been installed, it is time to adjust
|
||||
the toolchain so that it will link any
|
||||
newly compiled program against these new libraries.</para>
|
||||
|
||||
<para>First, backup the <filename class="directory">/tools</filename> linker,
|
||||
and replace it with the adjusted linker we made in chapter 5. We'll also create
|
||||
a link to its counterpart in <filename class="directory">/tools/$(gcc
|
||||
-dumpmachine)/bin</filename>:</para>
|
||||
|
||||
<screen><userinput>mv -v /tools/bin/{ld,ld-old}
|
||||
mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}
|
||||
mv -v /tools/bin/{ld-new,ld}
|
||||
ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld</userinput></screen>
|
||||
|
||||
<para>Next, amend the GCC specs file so that it points to the new
|
||||
dynamic linker. Simply deleting all instances of <quote>/tools</quote> should
|
||||
leave us with the correct path to the dynamic linker. Also adjust the specs file
|
||||
so that GCC knows where to find the correct headers and Glibc start files.
|
||||
A <command>sed</command> command accomplishes this:</para>
|
||||
|
||||
<screen><userinput>gcc -dumpspecs | sed -e 's@/tools@@g' \
|
||||
-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
|
||||
-e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
|
||||
`dirname $(gcc --print-libgcc-file-name)`/specs</userinput></screen>
|
||||
|
||||
<para>It is a good idea to visually inspect the specs file to verify the
|
||||
intended change was actually made.</para>
|
||||
|
||||
<para>It is imperative at this point to ensure that the basic
|
||||
functions (compiling and linking) of the adjusted toolchain are working
|
||||
as expected. To do this, perform the following sanity checks:</para>
|
||||
|
||||
<screen os="a"><userinput>echo 'int main(){}' > dummy.c
|
||||
cc dummy.c -v -Wl,--verbose &> dummy.log
|
||||
readelf -l a.out | grep ': /lib'</userinput></screen>
|
||||
|
||||
<para os="b">There should be no errors,
|
||||
and the output of the last command will be (allowing for
|
||||
platform-specific differences in dynamic linker name):</para>
|
||||
|
||||
<screen os="c"><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>
|
||||
|
||||
<para>Note that <filename class="directory">/lib</filename> is now
|
||||
the prefix of our dynamic linker.</para>
|
||||
|
||||
<para os="d">Now make sure that we're setup to use the correct start files:</para>
|
||||
|
||||
<screen os="e"><userinput>grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log</userinput></screen>
|
||||
|
||||
<para os="f">The output of the last command should be:</para>
|
||||
|
||||
<screen><computeroutput>/usr/lib/crt1.o succeeded
|
||||
/usr/lib/crti.o succeeded
|
||||
/usr/lib/crtn.o succeeded</computeroutput></screen>
|
||||
|
||||
<para os="g">Verify that the compiler is searching for the correct header
|
||||
files:</para>
|
||||
|
||||
<screen><userinput>grep -B1 '^ /usr/include' dummy.log</userinput></screen>
|
||||
|
||||
<para os="h">This command should return the following output:</para>
|
||||
|
||||
<screen><computeroutput>#include <...> search starts here:
|
||||
/usr/include</computeroutput></screen>
|
||||
|
||||
<para os="i">Next, verify that the new linker is being used with the correct search paths:</para>
|
||||
|
||||
<screen os="j"><userinput>grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</userinput></screen>
|
||||
|
||||
<para os="k">References to paths that have components with '-linux-gnu' should
|
||||
be ignored, but otherwise the output of the last command should be:</para>
|
||||
|
||||
<screen><computeroutput>SEARCH_DIR("/usr/lib")
|
||||
SEARCH_DIR("/lib");</computeroutput></screen>
|
||||
|
||||
<para os="l">Next make sure that we're using the correct libc:</para>
|
||||
|
||||
<screen os="m"><userinput>grep "/lib.*/libc.so.6 " dummy.log</userinput></screen>
|
||||
|
||||
<para os="n">The output of the last command (allowing for a lib64 directory
|
||||
on 64-bit hosts) should be:</para>
|
||||
|
||||
<screen os="o"><computeroutput>attempt to open /lib/libc.so.6 succeeded</computeroutput></screen>
|
||||
|
||||
<para os="p">Lastly, make sure GCC is using the correct dynamic linker:</para>
|
||||
|
||||
<screen os="q"><userinput>grep found dummy.log</userinput></screen>
|
||||
|
||||
<para os="r"> The output of the last command should be (allowing for
|
||||
platform-specific differences in dynamic linker name and a lib64 directory on
|
||||
64-bit hosts):</para>
|
||||
|
||||
<screen os="s"><computeroutput>found ld-linux.so.2 at /lib/ld-linux.so.2</computeroutput></screen>
|
||||
|
||||
<para os="t">If the output does not appear as shown above or is not received
|
||||
at all, then something is seriously wrong. Investigate and retrace the
|
||||
steps to find out where the problem is and correct it. The most likely
|
||||
reason is that something went wrong with the specs file adjustment. Any
|
||||
issues will need to be resolved before continuing on with the process.</para>
|
||||
|
||||
<para os="u">Once everything is working correctly, clean up the test files:</para>
|
||||
|
||||
<screen os="v"><userinput>rm -v dummy.c a.out dummy.log</userinput></screen>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,148 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-attr" role="wrap">
|
||||
<?dbhtml filename="attr.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>attr</productname>
|
||||
<productnumber>&attr-version;</productnumber>
|
||||
<address>&attr-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Attr-&attr-version;</title>
|
||||
|
||||
<indexterm zone="ch-system-attr">
|
||||
<primary sortas="a-Attr">Attr</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The attr package contains utilities to administer the extended
|
||||
attributes on filesystem objects.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&attr-ch6-sbu;</seg>
|
||||
<seg>&attr-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Attr</title>
|
||||
|
||||
<para>Modify the documentation directory so that it is a versioned
|
||||
directory:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i -e 's|/@pkg_name@|&-@pkg_version@|' include/builddefs.in</userinput></screen>
|
||||
|
||||
<para>Prevent installation of manual pages that were already installed by
|
||||
the <xref linkend="man-pages"/> package:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i -e "/SUBDIRS/s|man2||" man/Makefile</userinput></screen>
|
||||
|
||||
<para>Prepare Attr for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>The tests need to be run on a filesystem that supports extended
|
||||
attributes such as the ext2, ext3, or ext4 filesystems. The tests are also
|
||||
known to fail if running multiple simultaneous tests (-j option greater than
|
||||
1). To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make -j1 tests root-tests</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install install-dev install-lib
|
||||
chmod -v 755 /usr/lib/libattr.so</userinput></screen>
|
||||
|
||||
<para>The shared library needs to be moved to
|
||||
<filename class="directory">/lib</filename>, and as a result the
|
||||
<filename class="extension">.so</filename> file in
|
||||
<filename class="directory">/usr/lib</filename> will need to be recreated:</para>
|
||||
|
||||
<screen><userinput remap="install">mv -v /usr/lib/libattr.so.* /lib
|
||||
ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.so</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-attr" role="content">
|
||||
<title>Contents of Attr</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<segtitle>Installed directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>attr, getfattr, and setattr</seg>
|
||||
<seg>libattr.so</seg>
|
||||
<seg>/usr/include/attr and /usr/share/doc/attr-&attr-version;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="attr">
|
||||
<term><command>attr</command></term>
|
||||
<listitem>
|
||||
<para>Extends attributes on filesystem objects</para>
|
||||
<indexterm zone="ch-system-attr attr">
|
||||
<primary sortas="b-attr">attr</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="getfattr">
|
||||
<term><command>getfattr</command></term>
|
||||
<listitem>
|
||||
<para>Gets the extended attributes of filesystem objects</para>
|
||||
<indexterm zone="ch-system-attr getfattr">
|
||||
<primary sortas="b-getfattr">getfattr</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="setattr">
|
||||
<term><command>setattr</command></term>
|
||||
<listitem>
|
||||
<para>Sets the extended attributes of filesystem objects</para>
|
||||
<indexterm zone="ch-system-attr setattr">
|
||||
<primary sortas="b-setattr">setattr</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libattr">
|
||||
<term><filename class="libraryfile">libattr</filename></term>
|
||||
<listitem>
|
||||
<para>Contains the libbrary functions for manipulating extended attributes</para>
|
||||
<indexterm zone="ch-system-attr libattr">
|
||||
<primary sortas="c-libattr">libattr</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,182 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-autoconf" role="wrap">
|
||||
<?dbhtml filename="autoconf.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>autoconf</productname>
|
||||
<productnumber>&autoconf-version;</productnumber>
|
||||
<address>&autoconf-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Autoconf-&autoconf-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&autoconf-ch6-sbu;</seg>
|
||||
<seg>&autoconf-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Autoconf</title>
|
||||
|
||||
<para>Prepare Autoconf for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>This takes a long time, about 4.7 SBUs. In addition, 6 tests are skipped
|
||||
that use Automake. For full test coverage, Autoconf can be re-tested
|
||||
after Automake has been installed. In addition, two tests fail due to
|
||||
changes in libtool-2.4.3 and later.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-autoconf" role="content">
|
||||
<title>Contents of Autoconf</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed directory</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate,
|
||||
and ifnames</seg>
|
||||
<seg>/usr/share/autoconf</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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>
|
|
@ -0,0 +1,144 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-automake" role="wrap">
|
||||
<?dbhtml filename="automake.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>automake</productname>
|
||||
<productnumber>&automake-version;</productnumber>
|
||||
<address>&automake-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Automake-&automake-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&automake-ch6-sbu;</seg>
|
||||
<seg>&automake-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Automake</title>
|
||||
|
||||
<para>First fix a warning that is caused by perl-5.22 and later:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i 's:/\\\${:/\\\$\\{:' bin/automake.in</userinput></screen>
|
||||
|
||||
<para>Prepare Automake for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/automake-&automake-version;</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>There are a couple of tests that incorrectly link to the
|
||||
wrong version of the flex library, so we temporarily work around
|
||||
the problem. Also, using the -j4 make option speeds up the tests, even on
|
||||
systems with only one processor, due to internal delays in individual
|
||||
tests. To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">sed -i "s:./configure:LEXLIB=/usr/lib/libfl.a &:" t/lex-{clean,depend}-cxx.sh
|
||||
make -j4 check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-automake" role="content">
|
||||
<title>Contents of Automake</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>aclocal, aclocal-&am-minor-version; (hard linked with aclocal), automake, and
|
||||
automake-&am-minor-version; (hard linked with automake) </seg>
|
||||
<seg>/usr/share/aclocal-&am-minor-version;, /usr/share/automake-&am-minor-version;, and
|
||||
/usr/share/doc/automake-&automake-version;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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="aclocalversion">
|
||||
<term><command>aclocal-&am-minor-version;</command></term>
|
||||
<listitem>
|
||||
<para>A hard link to <command>aclocal</command></para>
|
||||
<indexterm zone="ch-system-automake aclocalversion">
|
||||
<primary sortas="b-aclocal-&am-minor-version;">aclocal-&am-minor-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 generates 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-&am-minor-version;</command></term>
|
||||
<listitem>
|
||||
<para>A hard link to <command>automake</command></para>
|
||||
<indexterm zone="ch-system-automake automake-version">
|
||||
<primary sortas="b-automake-&am-minor-version;">automake-&am-minor-version;</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,163 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-bash" role="wrap">
|
||||
<?dbhtml filename="bash.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bash</productname>
|
||||
<productnumber>&bash-version;</productnumber>
|
||||
<address>&bash-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bash-&bash-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bash-ch6-sbu;</seg>
|
||||
<seg>&bash-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bash</title>
|
||||
|
||||
<para>First, apply the following patch to fix various bugs that have been
|
||||
addressed upstream:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&bash-fixes-patch;</userinput></screen>
|
||||
|
||||
<para>Prepare Bash for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
--bindir=/bin \
|
||||
--docdir=/usr/share/doc/bash-&bash-version; \
|
||||
--without-bash-malloc \
|
||||
--with-installed-readline</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the new configure option:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-installed-readline</parameter></term>
|
||||
<listitem>
|
||||
<para>This option 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 remap="make">make</userinput></screen>
|
||||
|
||||
<para>Skip down to <quote>Install the
|
||||
package</quote> if not running the test suite.</para>
|
||||
|
||||
<para>To prepare the tests, ensure that the <systemitem class="username">nobody</systemitem> user can write to the sources tree:</para>
|
||||
|
||||
<screen><userinput remap="test">chown -Rv nobody .</userinput></screen>
|
||||
|
||||
<para>Now, run the tests as the <systemitem
|
||||
class="username">nobody</systemitem> user:</para>
|
||||
|
||||
<screen><userinput remap="test">su nobody -s /bin/bash -c "PATH=$PATH make tests"</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>Run the newly compiled <command>bash</command> program (replacing the one that is
|
||||
currently being executed):</para>
|
||||
|
||||
<screen role="nodump"><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>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed directory</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>bash, bashbug, and sh (link to bash)</seg>
|
||||
<seg>/usr/share/doc/bash-&bash-version;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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 standard
|
||||
formatted bug reports concerning <command>bash</command></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>
|
|
@ -0,0 +1,127 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-bc" role="wrap">
|
||||
<?dbhtml filename="bc.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bc</productname>
|
||||
<productnumber>&bc-version;</productnumber>
|
||||
<address>&bc-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bc-&bc-version;</title>
|
||||
|
||||
<indexterm zone="ch-system-bc">
|
||||
<primary sortas="a-Bc">Bc</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Bc package contains an arbitrary precision numeric processing
|
||||
language.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bc-ch6-sbu;</seg>
|
||||
<seg>&bc-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bc</title>
|
||||
|
||||
<para>First, fix some minor memory leaks in the code:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&bc-memory-leak-patch;</userinput></screen>
|
||||
|
||||
<para>Prepare Bc for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
--with-readline \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-readline</parameter></term>
|
||||
<listitem>
|
||||
<para>This option tells Bc 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 remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test bc, run the commands below. There is quite a bit of output,
|
||||
so you may want to redirect it to a file. There are a very small percentage
|
||||
of tests (10 of 12,144) that will indicate a round off error at the last
|
||||
digit.</para>
|
||||
|
||||
<screen><userinput remap="test">echo "quit" | ./bc/bc -l Test/checklib.b</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-bc" role="content">
|
||||
<title>Contents of Bc</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>bc and dc</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="bc">
|
||||
<term><command>bc</command></term>
|
||||
<listitem>
|
||||
<para>is a command line calculator</para>
|
||||
<indexterm zone="ch-system-bc bc">
|
||||
<primary sortas="b-bc">bc</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dc">
|
||||
<term><command>dc</command></term>
|
||||
<listitem>
|
||||
<para>is a reverse-polish command line calculator</para>
|
||||
<indexterm zone="ch-system-bc dc">
|
||||
<primary sortas="b-dc">dc</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,346 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-binutils" role="wrap">
|
||||
<?dbhtml filename="binutils.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>binutils</productname>
|
||||
<productnumber>&binutils-version;</productnumber>
|
||||
<address>&binutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Binutils-&binutils-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&binutils-ch6-sbu;</seg>
|
||||
<seg>&binutils-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Binutils</title>
|
||||
|
||||
<para>Verify that the PTYs are working properly inside the chroot
|
||||
environment by performing a simple test:</para>
|
||||
|
||||
<screen><userinput remap="test">expect -c "spawn ls"</userinput></screen>
|
||||
|
||||
<para>This command should output the following:</para>
|
||||
|
||||
<screen><computeroutput>spawn ls</computeroutput></screen>
|
||||
|
||||
<para>If, instead, the output includes the message below, then the environment
|
||||
is not set up for proper PTY operation. This issue needs to be resolved before
|
||||
running the test suites for Binutils and GCC:</para>
|
||||
|
||||
<screen><computeroutput>The system has no more ptys.
|
||||
Ask your system administrator to create more.</computeroutput></screen>
|
||||
<!--
|
||||
<para>Fix some LTO tests in the test suite:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&binutils-lto-testsuite-patch;</userinput></screen>
|
||||
|
||||
<para>Enable binutils to recognize multiple plugins:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&binutils-multiple-plugins-patch;</userinput></screen>
|
||||
-->
|
||||
<para>The Binutils documentation recommends building Binutils outside of the
|
||||
source directory in a dedicated build directory:</para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v ../binutils-build
|
||||
cd ../binutils-build</userinput></screen>
|
||||
|
||||
<para>Prepare Binutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">../binutils-&binutils-version;/configure --prefix=/usr \
|
||||
--enable-shared \
|
||||
--disable-werror</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make tooldir=/usr</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the make parameter:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>tooldir=/usr</parameter></term>
|
||||
<listitem>
|
||||
<para>Normally, the tooldir (the directory where the executables will
|
||||
ultimately be located) is set to <filename
|
||||
class="directory">$(exec_prefix)/$(target_alias)</filename>. For
|
||||
example, x86_64 machines would expand that to <filename
|
||||
class="directory">/usr/x86_64-unknown-linux-gnu</filename>. Because this is
|
||||
a custom system, this target-specific directory in <filename
|
||||
class="directory">/usr</filename> is not required. <filename
|
||||
class="directory">$(exec_prefix)/$(target_alias)</filename> 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>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<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>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-binutils" role="content">
|
||||
<title>Contents of Binutils</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<segtitle>Installed directory</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>addr2line, ar, as, c++filt, elfedit, gprof, ld, ld.bfd, nm,
|
||||
objcopy, objdump, ranlib, readelf, size, strings, and strip</seg>
|
||||
<seg>libbfd.{a,so} and libopcodes.{a,so}</seg>
|
||||
<seg>/usr/lib/ldscripts</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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="elfedit">
|
||||
<term><command>elfedit</command></term>
|
||||
<listitem>
|
||||
<para>Updates the ELF header of ELF files</para>
|
||||
<indexterm zone="ch-system-binutils elfedit">
|
||||
<primary sortas="b-elfedit">elfedit</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="ld.bfd">
|
||||
<term><command>ld.bfd</command></term>
|
||||
<listitem>
|
||||
<para>Hard link to <command>ld</command></para>
|
||||
<indexterm zone="ch-system-binutils ld.bfd">
|
||||
<primary sortas="b-ld.bfd">ld.bfd</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="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>
|
|
@ -0,0 +1,131 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-bison" role="wrap">
|
||||
<?dbhtml filename="bison.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bison</productname>
|
||||
<productnumber>&bison-version;</productnumber>
|
||||
<address>&bison-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bison-&bison-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bison-ch6-sbu;</seg>
|
||||
<seg>&bison-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bison</title>
|
||||
<!-- bison only installs a static library
|
||||
<para>Inhibit static library installation:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i '/lib_LIBRARIES =/d' Makefile.in</userinput></screen>
|
||||
-->
|
||||
<para>Prepare Bison for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr --docdir=/usr/share/doc/bison-&bison-version;</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<!--
|
||||
<para>To test the results (about 2.2 SBU), issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
-->
|
||||
<para>There is a circular dependency between bison and flex with regard to
|
||||
the checks. If desired, after installing flex in the next section, the
|
||||
bison checks can be run with <command>make check</command>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-bison" role="content">
|
||||
<title>Contents of Bison</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
<segtitle>Installed directory</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>bison and yacc</seg>
|
||||
<seg>liby.a</seg>
|
||||
<seg>/usr/share/bison</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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; Bison is a replacement for Yacc (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">
|
||||
<term><filename class="libraryfile">liby</filename></term>
|
||||
<listitem>
|
||||
<para>The Yacc library containing implementations of Yacc-compatible
|
||||
<function>yyerror</function> and <function>main</function> functions;
|
||||
this library is normally not very useful, but POSIX requires it</para>
|
||||
<indexterm zone="ch-system-bison liby">
|
||||
<primary sortas="c-liby">liby</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,250 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-bzip2" role="wrap">
|
||||
<?dbhtml filename="bzip2.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>bzip2</productname>
|
||||
<productnumber>&bzip2-version;</productnumber>
|
||||
<address>&bzip2-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Bzip2-&bzip2-version;</title>
|
||||
|
||||
<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. Compressing text files with <command>bzip2</command> yields a much
|
||||
better compression percentage than with the traditional
|
||||
<command>gzip</command>.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&bzip2-ch6-sbu;</seg>
|
||||
<seg>&bzip2-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Bzip2</title>
|
||||
|
||||
<para>Apply a patch that will install the documentation for this package:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&bzip2-docs-patch;</userinput></screen>
|
||||
|
||||
<para>The following command ensures installation of symbolic links are relative:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile</userinput></screen>
|
||||
|
||||
<para>Ensure the man pages are installed into the correct location:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile</userinput></screen>
|
||||
|
||||
<para>Prepare Bzip2 for compilation with:</para>
|
||||
|
||||
<screen><userinput remap="make">make -f Makefile-libbz2_so
|
||||
make clean</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the make parameter:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>-f Makefile-libbz2_so</parameter></term>
|
||||
<listitem>
|
||||
<para>This 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>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile and test the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>Install the programs:</para>
|
||||
|
||||
<screen><userinput remap="install">make PREFIX=/usr install</userinput></screen>
|
||||
|
||||
<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 remap="install">cp -v bzip2-shared /bin/bzip2
|
||||
cp -av libbz2.so* /lib
|
||||
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
|
||||
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
|
||||
ln -sv bzip2 /bin/bunzip2
|
||||
ln -sv bzip2 /bin/bzcat</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-bzip2" role="content">
|
||||
<title>Contents of Bzip2</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<segtitle>Installed directory</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp (link to
|
||||
bzdiff), bzdiff, bzegrep (link to bzgrep), bzfgrep (link to bzgrep),
|
||||
bzgrep, bzip2, bzip2recover, bzless (link to bzmore), and bzmore</seg>
|
||||
<seg>libbz2.{a,so}</seg>
|
||||
<seg>/usr/share/doc/bzip2-&bzip2-version;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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="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="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="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>
|
|
@ -0,0 +1,87 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<chapter id="chapter-building-system" xreflabel="Chapter 6">
|
||||
<?dbhtml dir="chapter06"?>
|
||||
<?dbhtml filename="chapter06.html"?>
|
||||
|
||||
<title>Installing Basic System Software</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kernfs.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pkgmgt.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="chroot.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingdirs.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="createfiles.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="linux-headers.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-pages.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glibc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="adjusting.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="zlib.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="file.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="binutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gmp.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpfr.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mpc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gcc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bzip2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pkgconfig.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ncurses.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="attr.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libcap.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sed.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="shadow.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="psmisc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iana-etc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="m4.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bison.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="flex.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="grep.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="readline.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bash.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libtool.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gdbm.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gperf.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="expat.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="inetutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="perl.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="xml-parser.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="intltool.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="autoconf.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="automake.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="xz.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kmod.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gettext.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="systemd.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="procps.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="e2fsprogs.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="coreutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="diffutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gawk.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="findutils.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="groff.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="grub.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="less.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gzip.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iproute2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="kbd.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libpipeline.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="make.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="patch.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbus.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="util-linux.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-db.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tar.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="texinfo.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="vim.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutdebug.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="strippingagain.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="revisedchroot.xml"/>
|
||||
|
||||
</chapter>
|
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-chroot">
|
||||
<?dbhtml filename="chroot.html"?>
|
||||
|
||||
<title>Entering the Chroot Environment</title>
|
||||
|
||||
<para>It is time to enter the chroot environment to begin building and
|
||||
installing the final LFS system. As user <systemitem
|
||||
class="username">root</systemitem>, run the following command to enter the
|
||||
realm that is, at the moment, populated with only the temporary tools:</para>
|
||||
|
||||
<screen role="nodump"><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 no longer be
|
||||
used once 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>Note that the <command>bash</command> prompt will say
|
||||
<computeroutput>I have no name!</computeroutput> This is normal because the
|
||||
<filename>/etc/passwd</filename> file has not been created yet.</para>
|
||||
|
||||
<note>
|
||||
<para>It is important that all the commands throughout the remainder of this
|
||||
chapter and the following chapters are run from within the chroot
|
||||
environment. If you leave this environment for any reason (rebooting for
|
||||
example), ensure that the virtual kernel filesystems are mounted as
|
||||
explained in <xref linkend="ch-system-bindmount"/> and <xref
|
||||
linkend="ch-system-kernfsmount"/> and enter chroot again before continuing
|
||||
with the installation.</para>
|
||||
</note>
|
||||
|
||||
</sect1>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,252 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-createfiles">
|
||||
<?dbhtml filename="createfiles.html"?>
|
||||
|
||||
<title>Creating Essential Files and Symlinks</title>
|
||||
|
||||
<indexterm zone="ch-system-createfiles">
|
||||
<primary sortas="e-/etc/passwd">/etc/passwd</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="ch-system-createfiles">
|
||||
<primary sortas="e-/etc/group">/etc/group</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="ch-system-createfiles">
|
||||
<primary sortas="e-/var/run/utmp">/var/run/utmp</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="ch-system-createfiles">
|
||||
<primary sortas="e-/var/log/btmp">/var/log/btmp</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="ch-system-createfiles">
|
||||
<primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="ch-system-createfiles">
|
||||
<primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Some programs use hard-wired paths to programs which do not exist yet. 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 -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
|
||||
ln -sv /tools/bin/perl /usr/bin
|
||||
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
|
||||
ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
|
||||
sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la
|
||||
ln -sv bash /bin/sh</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The purpose of each link:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/bin/bash</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>Many <command>bash</command> scripts specify
|
||||
<filename>/bin/bash</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/bin/cat</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>This pathname is hard-coded into Glibc's configure script.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/bin/echo</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>This is to satisfy one of the tests in Glibc's test suite, which
|
||||
expects <filename>/bin/echo</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/bin/pwd</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>Some <command>configure</command> scripts, particularly Glibc's,
|
||||
have this pathname hard-coded.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/bin/stty</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>This pathname is hard-coded into Expect, therefore it is needed
|
||||
for Binutils and GCC test suites to pass.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/usr/bin/perl</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>Many Perl scripts hard-code this path to the
|
||||
<command>perl</command> program.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/usr/lib/libgcc_s.so{,.1}</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>Glibc needs this for the pthreads library to work.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/usr/lib/libstdc++{,.6}</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>This is needed by several tests in Glibc's test suite, as well as
|
||||
for C++ support in GMP.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/usr/lib/libstdc++.la</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents a <filename class="directory">/tools</filename>
|
||||
reference that would otherwise be in
|
||||
<filename>/usr/lib/libstdc++.la</filename> after GCC is installed.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter><filename>/bin/sh</filename></parameter></term>
|
||||
<listitem>
|
||||
<para>Many shell scripts hard-code <filename>/bin/sh</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Historically, Linux maintains a list of the mounted file systems in the
|
||||
file <filename>/etc/mtab</filename>. Modern kernels maintain this list
|
||||
internally and exposes it to the user via the <filename
|
||||
class="directory">/proc</filename> filesystem. To satisfy utilities that
|
||||
expect the presence of <filename>/etc/mtab</filename>, create the following
|
||||
symbolic link:</para>
|
||||
|
||||
<screen><userinput>ln -sv /proc/self/mounts /etc/mtab</userinput></screen>
|
||||
|
||||
<para>In order for user <systemitem class="username">root</systemitem> to be
|
||||
able to login and for the name <quote>root</quote> to be recognized, there
|
||||
must be relevant entries in the <filename>/etc/passwd</filename> and
|
||||
<filename>/etc/group</filename> files.</para>
|
||||
|
||||
<para>Create the <filename>/etc/passwd</filename> file by running the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput>cat > /etc/passwd << "EOF"
|
||||
<literal>root:x:0:0:root:/root:/bin/bash
|
||||
bin:x:1:1:bin:/dev/null:/bin/false
|
||||
daemon:x:6:6:Daemon User:/dev/null:/bin/false
|
||||
messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false
|
||||
systemd-bus-proxy:x:72:72:systemd Bus Proxy:/:/bin/false
|
||||
systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/bin/false
|
||||
systemd-journal-remote:x:74:74:systemd Journal Remote:/:/bin/false
|
||||
systemd-journal-upload:x:75:75:systemd Journal Upload:/:/bin/false
|
||||
systemd-network:x:76:76:systemd Network Management:/:/bin/false
|
||||
systemd-resolve:x:77:77:systemd Resolver:/:/bin/false
|
||||
systemd-timesync:x:78:78:systemd Time Synchronization:/:/bin/false
|
||||
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>The actual password for <systemitem class="username">root</systemitem>
|
||||
(the <quote>x</quote> used here is just a placeholder) will be set later.</para>
|
||||
|
||||
<para>Create the <filename>/etc/group</filename> file by running the following
|
||||
command:</para>
|
||||
|
||||
<screen><userinput>cat > /etc/group << "EOF"
|
||||
<literal>root:x:0:
|
||||
bin:x:1:daemon
|
||||
sys:x:2:
|
||||
kmem:x:3:
|
||||
tape:x:4:
|
||||
tty:x:5:
|
||||
daemon:x:6:
|
||||
floppy:x:7:
|
||||
disk:x:8:
|
||||
lp:x:9:
|
||||
dialout:x:10:
|
||||
audio:x:11:
|
||||
video:x:12:
|
||||
utmp:x:13:
|
||||
usb:x:14:
|
||||
cdrom:x:15:
|
||||
adm:x:16:
|
||||
messagebus:x:18:
|
||||
systemd-journal:x:23:
|
||||
input:x:24:
|
||||
mail:x:34:
|
||||
systemd-bus-proxy:x:72:
|
||||
systemd-journal-gateway:x:73:
|
||||
systemd-journal-remote:x:74:
|
||||
systemd-journal-upload:x:75:
|
||||
systemd-network:x:76:
|
||||
systemd-resolve:x:77:
|
||||
systemd-timesync:x:78:
|
||||
nogroup:x:99:
|
||||
users:x:999:</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>The created groups are not part of any standard—they are groups
|
||||
decided on in part by the requirements of the Udev configuration in this
|
||||
chapter, and in part by common convention employed by a number of existing
|
||||
Linux distributions. In addition, some test suites rely on specific users
|
||||
or groups. The Linux Standard Base (LSB, available at <ulink
|
||||
url="http://www.linuxbase.org"/>) recommends only that, besides the group
|
||||
<systemitem class="groupname">root</systemitem> with a Group ID (GID) of 0,
|
||||
a group <systemitem class="groupname">bin</systemitem> with a GID of 1 be
|
||||
present. All other group names and GIDs can be chosen freely by the system
|
||||
administrator since well-written programs do not depend on GID numbers, but
|
||||
rather use the group's name.</para>
|
||||
|
||||
<para>To remove the <quote>I have no name!</quote> prompt, start a new
|
||||
shell. Since a full Glibc was installed in <xref
|
||||
linkend="chapter-temporary-tools"/> and the
|
||||
<filename>/etc/passwd</filename> and <filename>/etc/group</filename>
|
||||
files have been created, user name and group name resolution will now
|
||||
work:</para>
|
||||
|
||||
<screen role="nodump"><userinput>exec /tools/bin/bash --login +h</userinput></screen>
|
||||
|
||||
<para>Note the use of the <parameter>+h</parameter> directive. This tells
|
||||
<command>bash</command> not to use its internal path hashing. Without this
|
||||
directive, <command>bash</command> would remember the paths to binaries it has
|
||||
executed. To ensure the use of the newly compiled binaries as soon as they are
|
||||
installed, the <parameter>+h</parameter> directive will be used for the duration
|
||||
of this chapter.</para>
|
||||
|
||||
<para>The <command>login</command>, <command>agetty</command>, and
|
||||
<command>init</command> programs (and others) use a number of log
|
||||
files to record information such as who was logged into the system and
|
||||
when. However, these programs will not write to the log files if they
|
||||
do not already exist. Initialize the log files and give them
|
||||
proper permissions:</para>
|
||||
|
||||
<screen><userinput>touch /var/log/{btmp,lastlog,wtmp}
|
||||
chgrp -v utmp /var/log/lastlog
|
||||
chmod -v 664 /var/log/lastlog
|
||||
chmod -v 600 /var/log/btmp</userinput></screen>
|
||||
|
||||
<para>The <filename>/var/log/wtmp</filename> file records all logins and
|
||||
logouts. The <filename>/var/log/lastlog</filename> file records when each
|
||||
user last logged in. The <filename>/var/log/btmp</filename> file records the
|
||||
bad login attempts.</para>
|
||||
|
||||
<note><para>The <filename>/run/utmp</filename> file records the users that
|
||||
are currently logged in. This file is created dynamically in the boot
|
||||
scripts.</para></note>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-creatingdirs">
|
||||
<?dbhtml filename="creatingdirs.html"?>
|
||||
|
||||
<title>Creating Directories</title>
|
||||
|
||||
<para>It is time to create some structure in the LFS file system. Create a
|
||||
standard directory tree by issuing the following commands:</para>
|
||||
|
||||
<screen><userinput>mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
|
||||
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
|
||||
install -dv -m 0750 /root
|
||||
install -dv -m 1777 /tmp /var/tmp
|
||||
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
|
||||
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
|
||||
mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}
|
||||
mkdir -v /usr/libexec
|
||||
mkdir -pv /usr/{,local/}share/man/man{1..8}
|
||||
|
||||
case $(uname -m) in
|
||||
x86_64) ln -sv lib /lib64
|
||||
ln -sv lib /usr/lib64
|
||||
ln -sv lib /usr/local/lib64 ;;
|
||||
esac
|
||||
|
||||
mkdir -v /var/{log,mail,spool}
|
||||
ln -sv /run /var/run
|
||||
ln -sv /run/lock /var/lock
|
||||
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</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 <systemitem
|
||||
class="username">root</systemitem>, 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
|
||||
another user's 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) (available at <ulink
|
||||
url="https://wiki.linuxfoundation.org/en/FHS"/>). The FHS also stipulates
|
||||
the optional existence some directories such as <filename
|
||||
class="directory">/usr/local/games</filename> and <filename
|
||||
class="directory">/usr/share/games</filename>. We create only the
|
||||
directories that are needed. However, feel free to create these
|
||||
directories. </para>
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,301 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-db" role="wrap">
|
||||
<?dbhtml filename="db.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>db</productname>
|
||||
<productnumber>&db-version;</productnumber>
|
||||
<address>&db-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Berkeley DB-&db-version;</title>
|
||||
|
||||
<indexterm zone="ch-system-db">
|
||||
<primary sortas="a-Berkeley-DB">Berkeley DB</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Berkeley DB package contains programs and utilities used by many
|
||||
other applications for database related functions.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&db-ch6-sbu;</seg>
|
||||
<seg>&db-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<tip>
|
||||
<title>Other Installation Possibilities</title>
|
||||
|
||||
<para>There are instructions to build this package in the BLFS book if you
|
||||
need to build the RPC server or additional language bindings. The
|
||||
additional language bindings will require additional packages to be
|
||||
installed. See <ulink url="&blfs-book;server/databases.html#db"/>
|
||||
for suggested installation instructions.</para>
|
||||
|
||||
<para>Also, GDBM <emphasis>could</emphasis> be used in place of Berkeley
|
||||
DB to satisfy Man-DB. However, since Berkeley DB is considered a core part
|
||||
of the LFS build, it will not be listed as a dependency for any package in
|
||||
the BLFS book. Likewise, many hours go into testing LFS with Berkeley DB
|
||||
installed, not with GDBM. If you fully understand the risks versus
|
||||
benefits of using GDBM and wish to use it anyway, see the BLFS
|
||||
instructions located at <ulink
|
||||
url="&blfs-book;general/gdbm.html"/></para>
|
||||
|
||||
</tip>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Berkeley DB</title>
|
||||
|
||||
<para>Apply an upstream patch so that replication clients can open a
|
||||
sequence:</para>
|
||||
|
||||
<screen><userinput remap="pre">patch -Np1 -i ../&db-fixes-patch;</userinput></screen>
|
||||
|
||||
<para>Prepare Berkeley DB for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">cd build_unix
|
||||
../dist/configure --prefix=/usr --enable-compat185 --enable-cxx</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-compat185</parameter></term>
|
||||
<listitem>
|
||||
<para>This option enables building Berkeley DB 1.85 compatibility
|
||||
API.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-cxx</parameter></term>
|
||||
<listitem>
|
||||
<para>This option enables building C++ API libraries.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>It is not possible to test the package meaningfully, because
|
||||
that would involve building Tcl bindings. Tcl bindings cannot be
|
||||
built properly now because Tcl is linked against Glibc in
|
||||
<filename class="directory">/tools</filename>, not against Glibc in
|
||||
<filename class="directory">/usr</filename>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make docdir=/usr/share/doc/db-&db-version; install</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the make parameter:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>docdir=...</parameter></term>
|
||||
<listitem>
|
||||
<para>This variable specifies the correct place for the
|
||||
documentation.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Fix the ownership of the installed documentation:</para>
|
||||
|
||||
<screen><userinput remap="install">chown -Rv root:root /usr/share/doc/db-&db-version;</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-db" role="content">
|
||||
<title>Contents of Berkeley DB</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>db_archive, db_checkpoint, db_codegen, db_deadlock, db_dump,
|
||||
db_hotbackup, db_load, db_printlog, db_recover, db_stat, db_upgrade, and
|
||||
db_verify</seg>
|
||||
<seg>libdb.{a,so}and libdb_cxx.{a,so}</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="db_archive">
|
||||
<term><command>db_archive</command></term>
|
||||
<listitem>
|
||||
<para>Prints the pathnames of log files that are no longer in use</para>
|
||||
<indexterm zone="ch-system-db db_archive">
|
||||
<primary sortas="b-db_archive">db_archive</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_checkpoint">
|
||||
<term><command>db_checkpoint</command></term>
|
||||
<listitem>
|
||||
<para>A daemon used to monitor and checkpoint database logs</para>
|
||||
<indexterm zone="ch-system-db db_checkpoint">
|
||||
<primary sortas="b-db_checkpoint">db_checkpoint</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_codegen">
|
||||
<term><command>db_codegen</command></term>
|
||||
<listitem>
|
||||
<para>Generates application code to create and configure Berkeley DB
|
||||
database environments and databases based on a simple description
|
||||
language, and writes it to one or more output files</para>
|
||||
<indexterm zone="ch-system-db db_codegen">
|
||||
<primary sortas="b-db_codegen">db_codegen</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_deadlock">
|
||||
<term><command>db_deadlock</command></term>
|
||||
<listitem>
|
||||
<para>A daemon used to abort lock requests when deadlocks are
|
||||
detected</para>
|
||||
<indexterm zone="ch-system-db db_deadlock">
|
||||
<primary sortas="b-db_deadlock">db_deadlock</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_dump">
|
||||
<term><command>db_dump</command></term>
|
||||
<listitem>
|
||||
<para>Converts database files to a plain-text file format readable
|
||||
by <command>db_load</command></para>
|
||||
<indexterm zone="ch-system-db db_dump">
|
||||
<primary sortas="b-db_dump">db_dump</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_hotbackup">
|
||||
<term><command>db_hotbackup</command></term>
|
||||
<listitem>
|
||||
<para>Creates <quote>hot backup</quote> or <quote>hot failover</quote>
|
||||
snapshots of Berkeley DB databases</para>
|
||||
<indexterm zone="ch-system-db db_hotbackup">
|
||||
<primary sortas="b-db_hotbackup">db_hotbackup</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_load">
|
||||
<term><command>db_load</command></term>
|
||||
<listitem>
|
||||
<para>Is used to create database files from plain-text files</para>
|
||||
<indexterm zone="ch-system-db db_load">
|
||||
<primary sortas="b-db_load">db_load</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_printlog">
|
||||
<term><command>db_printlog</command></term>
|
||||
<listitem>
|
||||
<para>Converts database log files to human readable text</para>
|
||||
<indexterm zone="ch-system-db db_printlog">
|
||||
<primary sortas="b-db_printlog">db_printlog</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_recover">
|
||||
<term><command>db_recover</command></term>
|
||||
<listitem>
|
||||
<para>Is used to restore a database to a consistent state after a
|
||||
failure</para>
|
||||
<indexterm zone="ch-system-db db_recover">
|
||||
<primary sortas="b-db_recover">db_recover</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_stat">
|
||||
<term><command>db_stat</command></term>
|
||||
<listitem>
|
||||
<para>Displays statistics for Berkeley databases</para>
|
||||
<indexterm zone="ch-system-db db_stat">
|
||||
<primary sortas="b-db_stat">db_stat</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_upgrade">
|
||||
<term><command>db_upgrade</command></term>
|
||||
<listitem>
|
||||
<para>Is used to upgrade database files to a newer version of
|
||||
Berkeley DB</para>
|
||||
<indexterm zone="ch-system-db db_upgrade">
|
||||
<primary sortas="b-db_upgrade">db_upgrade</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="db_verify">
|
||||
<term><command>db_verify</command></term>
|
||||
<listitem>
|
||||
<para>Is used to run consistency checks on database files</para>
|
||||
<indexterm zone="ch-system-db db_verify">
|
||||
<primary sortas="b-db_verify">db_verify</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
<varlistentry id="libdb">
|
||||
<term><filename class="libraryfile">libdb.{a,so}</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions to manipulate database files from C
|
||||
programs</para>
|
||||
<indexterm zone="ch-system-db libdb">
|
||||
<primary sortas="c-libdb">libdb</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libdb_cxx">
|
||||
<term><filename class="libraryfile">libdb_cxx.{a,so}</filename></term>
|
||||
<listitem>
|
||||
<para>Contains functions to manipulate database files from C++
|
||||
programs</para>
|
||||
<indexterm zone="ch-system-db libdb_cxx">
|
||||
<primary sortas="c-libdb_cxx">libdb_cxx</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,212 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-dbus" role="wrap">
|
||||
<?dbhtml filename="dbus.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>dbus</productname>
|
||||
<productnumber>&dbus-version;</productnumber>
|
||||
<address>&dbus-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>D-Bus-&dbus-version;</title>
|
||||
|
||||
<indexterm zone="ch-system-dbus">
|
||||
<primary sortas="a-dbus">D-Bus</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>D-Bus is a message bus system, a simple way for applications to talk
|
||||
to one another. D-Bus supplies both a system daemon (for events such as
|
||||
"new hardware device added" or "printer queue changed") and a
|
||||
per-user-login-session daemon (for general IPC needs among user
|
||||
applications). Also, the message bus is built on top of a general one-to-one
|
||||
message passing framework, which can be used by any two applications to
|
||||
communicate directly (without going through the message bus daemon).</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&dbus-ch6-sbu;</seg>
|
||||
<seg>&dbus-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of D-Bus</title>
|
||||
|
||||
<para>Prepare D-Bus for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure"> ./configure --prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
--disable-static \
|
||||
--disable-doxygen-docs \
|
||||
--disable-xml-docs \
|
||||
--docdir=/usr/share/doc/dbus-&dbus-version; \
|
||||
--with-console-auth-dir=/run/console</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-console-auth-dir=/run/console</parameter></term>
|
||||
<listitem>
|
||||
<para>This specifies the location of the ConsoleKit auth
|
||||
directory.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>This package does come with a test suite, but it requires several
|
||||
packages that are not included in LFS. Instructions for running the
|
||||
test suite can be found in the BLFS book at
|
||||
<ulink url="&blfs-book;general/dbus.html"/>.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>The shared library needs to be moved to
|
||||
<filename class="directory">/lib</filename>, and as a result the
|
||||
<filename class="extension">.so</filename> file in
|
||||
<filename class="directory">/usr/lib</filename> will need to be recreated:</para>
|
||||
|
||||
<screen><userinput remap="install">mv -v /usr/lib/libdbus-1.so.* /lib
|
||||
ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so</userinput></screen>
|
||||
|
||||
<para>Create a symlink, so that D-Bus and systemd can use the same
|
||||
<filename>machine-id</filename> file:</para>
|
||||
|
||||
<screen><userinput remap="install">ln -sfv /etc/machine-id /var/lib/dbus</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-dbus" role="content">
|
||||
<title>Contents of D-Bus</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<segtitle>Installed directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor,
|
||||
dbus-run-session, dbus-send, and dbus-uuidgen</seg>
|
||||
<seg>libdbus-1.{a,so}</seg>
|
||||
<seg>/etc/dbus-1, /usr/include/dbus-1.0, /usr/lib/dbus-1.0,
|
||||
/usr/share/dbus-1, /usr/share/doc/dbus-&dbus-version;,
|
||||
and /var/lib/dbus</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="dbus-cleanup-sockets">
|
||||
<term><command>dbus-cleanup-sockets</command></term>
|
||||
<listitem>
|
||||
<para>Used to clean up leftover sockets in a directory</para>
|
||||
<indexterm zone="ch-system-dbus dbus-cleanup-sockets">
|
||||
<primary sortas="b-dbus-cleanup-sockets">dbus-cleanup-sockets</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dbus-daemon">
|
||||
<term><command>dbus-daemon</command></term>
|
||||
<listitem>
|
||||
<para>The D-Bus message bus daemon</para>
|
||||
<indexterm zone="ch-system-dbus dbus-daemon">
|
||||
<primary sortas="b-dbus-daemon">dbus-daemon</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dbus-launch">
|
||||
<term><command>dbus-launch</command></term>
|
||||
<listitem>
|
||||
<para>Starts <command>dbus-daemon</command> from a shell
|
||||
script</para>
|
||||
<indexterm zone="ch-system-dbus dbus-launch">
|
||||
<primary sortas="b-dbus-launch">dbus-launch</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dbus-monitor">
|
||||
<term><command>dbus-monitor</command></term>
|
||||
<listitem>
|
||||
<para>Monitors messages passing through a D-Bus message bus</para>
|
||||
<indexterm zone="ch-system-dbus dbus-monitor">
|
||||
<primary sortas="b-dbus-monitor">dbus-monitor</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dbus-run-session">
|
||||
<term><command>dbus-run-session</command></term>
|
||||
<listitem>
|
||||
<para>Starts a session bus instance of <command>dbus-daemon</command>
|
||||
from a shell script and starts a specified program in that
|
||||
session</para>
|
||||
<indexterm zone="ch-system-dbus dbus-run-session">
|
||||
<primary sortas="b-dbus-run-session">dbus-run-session</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dbus-send">
|
||||
<term><command>dbus-send</command></term>
|
||||
<listitem>
|
||||
<para>Sends a message to a D-Bus message bus</para>
|
||||
<indexterm zone="ch-system-dbus dbus-send">
|
||||
<primary sortas="b-dbus-send">dbus-send</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="dbus-uuidgen">
|
||||
<term><command>dbus-uuidgen</command></term>
|
||||
<listitem>
|
||||
<para>Generates a universally unique ID</para>
|
||||
<indexterm zone="ch-system-dbus dbus-uuidgen">
|
||||
<primary sortas="b-dbus-uuidgen">dbus-uuidgen</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libdbus-1">
|
||||
<term><filename class="libraryfile">libdbus-1</filename></term>
|
||||
<listitem>
|
||||
<para>Contains API functions used to communicate with the D-Bus
|
||||
message bus</para>
|
||||
<indexterm zone="ch-system-dbus libdbus-1">
|
||||
<primary sortas="c-libdbus-1">libdbus-1</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,131 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-diffutils" role="wrap">
|
||||
<?dbhtml filename="diffutils.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>diffutils</productname>
|
||||
<productnumber>&diffutils-version;</productnumber>
|
||||
<address>&diffutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Diffutils-&diffutils-version;</title>
|
||||
|
||||
<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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&diffutils-ch6-sbu;</seg>
|
||||
<seg>&diffutils-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Diffutils</title>
|
||||
|
||||
<para>First fix a file so locale files are installed:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i 's:= @mkdir_p@:= /bin/mkdir -p:' po/Makefile.in.in</userinput></screen>
|
||||
|
||||
<para>Prepare Diffutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>The test-update-copyright.sh failure can be safely ignored.</para>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-diffutils" role="content">
|
||||
<title>Contents of Diffutils</title>
|
||||
|
||||
<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"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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>
|
|
@ -0,0 +1,550 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-e2fsprogs" role="wrap">
|
||||
<?dbhtml filename="e2fsprogs.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>e2fsprogs</productname>
|
||||
<productnumber>&e2fsprogs-version;</productnumber>
|
||||
<address>&e2fsprogs-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>E2fsprogs-&e2fsprogs-version;</title>
|
||||
|
||||
<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> and
|
||||
<systemitem class="filesystem">ext4</systemitem> journaling
|
||||
file systems.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&e2fsprogs-ch6-sbu;</seg>
|
||||
<seg>&e2fsprogs-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of E2fsprogs</title>
|
||||
|
||||
<para>The E2fsprogs documentation recommends that the package be built in
|
||||
a subdirectory of the source tree: </para>
|
||||
|
||||
<screen><userinput remap="pre">mkdir -v build
|
||||
cd build</userinput></screen>
|
||||
|
||||
<para>Prepare E2fsprogs for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">LIBS=-L/tools/lib \
|
||||
CFLAGS=-I/tools/include \
|
||||
PKG_CONFIG_PATH=/tools/lib/pkgconfig \
|
||||
../configure --prefix=/usr \
|
||||
--bindir=/bin \
|
||||
--with-root-prefix="" \
|
||||
--enable-elf-shlibs \
|
||||
--disable-libblkid \
|
||||
--disable-libuuid \
|
||||
--disable-uuidd \
|
||||
--disable-fsck</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the environment variable and configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>PKG_CONFIG_PATH, LIBS, CFLAGS</parameter></term>
|
||||
<listitem>
|
||||
<para>These variables enable e2fsprogs to be built using the
|
||||
<xref linkend="ch-tools-util-linux"/> package built earlier.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--with-root-prefix=""</parameter> and
|
||||
<parameter>--bindir=/bin</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
|
||||
programs still 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.</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-*</parameter></term>
|
||||
<listitem>
|
||||
<para>This prevents E2fsprogs from building and installing the
|
||||
<systemitem class="library">libuuid</systemitem> and
|
||||
<systemitem class="library">libblkid</systemitem> libraries, the
|
||||
<systemitem class="daemon">uuidd</systemitem> daemon, and the
|
||||
<command>fsck</command> wrapper, as Util-Linux installs more
|
||||
recent versions.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To set up and run the test suite we need to first link some
|
||||
libraries from /tools/lib to a location where the test programs look.
|
||||
To run the tests, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">ln -sfv /tools/lib/lib{blk,uu}id.so.1 lib
|
||||
make LD_LIBRARY_PATH=/tools/lib check</userinput></screen>
|
||||
|
||||
<para>One of the E2fsprogs tests will attempt to allocate 256 MB of memory.
|
||||
If you do not have significantly more RAM than this, be sure to enable
|
||||
sufficient swap space for the test. See <xref
|
||||
linkend="space-creatingfilesystem"/> and <xref linkend="space-mounting"/>
|
||||
for details on creating and enabling swap space.</para>
|
||||
|
||||
<para>Install the binaries, documentation, and shared libraries:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>Install the static libraries and headers:</para>
|
||||
|
||||
<screen><userinput remap="install">make install-libs</userinput></screen>
|
||||
|
||||
<para>Make the installed static libraries writable so debugging symbols can
|
||||
be removed later:</para>
|
||||
|
||||
<screen><userinput remap="install">chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a</userinput></screen>
|
||||
|
||||
<para>This package installs a gzipped
|
||||
<filename class="extension">.info</filename> file but doesn't update the
|
||||
system-wide <filename>dir</filename> file. Unzip this file and then update
|
||||
the system <filename>dir</filename> file using the following
|
||||
commands.</para>
|
||||
|
||||
<screen><userinput remap="install">gunzip -v /usr/share/info/libext2fs.info.gz
|
||||
install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info</userinput></screen>
|
||||
|
||||
<para>If desired, create and install some additional documentation by
|
||||
issuing the following commands:</para>
|
||||
|
||||
<screen><userinput remap="install">makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo
|
||||
install -v -m644 doc/com_err.info /usr/share/info
|
||||
install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-e2fsprogs" role="content">
|
||||
<title>Contents of E2fsprogs</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<segtitle>Installed directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>badblocks, chattr, compile_et, debugfs, dumpe2fs,e2freefrag,
|
||||
e2fsck, e2image, e2label, e2undo, e4defrag, filefrag, fsck.ext2,
|
||||
fsck.ext3, fsck.ext4, fsck.ext4dev, logsave, lsattr, mk_cmds, mke2fs,
|
||||
mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev, mklost+found,
|
||||
resize2fs, and tune2fs</seg>
|
||||
<seg>libcom_err.so, libe2p.so, libext2fs.so, and libss.so</seg>
|
||||
<seg>/usr/include/e2p, /usr/include/et, /usr/include/ext2fs,
|
||||
/usr/include/ss, /usr/share/et, and /usr/share/ss</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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="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="e2freefrag">
|
||||
<term><command>e2freefrag</command></term>
|
||||
<listitem>
|
||||
<para>Reports free space fragmentation information</para>
|
||||
<indexterm zone="ch-system-e2fsprogs e2freefrag">
|
||||
<primary sortas="b-e2freefrag">e2freefrag</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="e2undo">
|
||||
<term><command>e2undo</command></term>
|
||||
<listitem>
|
||||
<para>Replays the undo log undo_log for an ext2/ext3/ext4 filesystem
|
||||
found on a device [This can be used to undo a failed operation by an
|
||||
e2fsprogs program.]</para>
|
||||
<indexterm zone="ch-system-e2fsprogs e2undo">
|
||||
<primary sortas="b-e2undo">e2undo</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="e4defrag">
|
||||
<term><command>e4defrag</command></term>
|
||||
<listitem>
|
||||
<para>Online defragmenter for ext4 filesystems</para>
|
||||
<indexterm zone="ch-system-e2fsprogs e4defrag">
|
||||
<primary sortas="b-e4defrag">e4defrag</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="filefrag">
|
||||
<term><command>filefrag</command></term>
|
||||
<listitem>
|
||||
<para>Reports on how badly fragmented a particular file might be</para>
|
||||
<indexterm zone="ch-system-e2fsprogs filefrag">
|
||||
<primary sortas="b-filefrag">filefrag</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 and is a hard link to <command>e2fsck</command></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 and is a hard link to <command>e2fsck</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs fsck.ext3">
|
||||
<primary sortas="b-fsck.ext3">fsck.ext3</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fsck.ext4">
|
||||
<term><command>fsck.ext4</command></term>
|
||||
<listitem>
|
||||
<para>By default checks <systemitem class="filesystem">ext4</systemitem>
|
||||
file systems and is a hard link to <command>e2fsck</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs fsck.ext4">
|
||||
<primary sortas="b-fsck.ext4">fsck.ext4</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="fsck.ext4dev">
|
||||
<term><command>fsck.ext4dev</command></term>
|
||||
<listitem>
|
||||
<para>By default checks <systemitem class="filesystem">ext4</systemitem>
|
||||
development file systems and is a hard link to
|
||||
<command>e2fsck</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs fsck.ext4dev">
|
||||
<primary sortas="b-fsck.ext4dev">fsck.ext4dev</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 help 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>Creates an <systemitem class="filesystem">ext2</systemitem>
|
||||
or <systemitem class="filesystem">ext3</systemitem> 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 and is a hard link to <command>mke2fs</command></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 and is a hard link to <command>mke2fs</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs mkfs.ext3">
|
||||
<primary sortas="b-mkfs.ext3">mkfs.ext3</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkfs.ext4">
|
||||
<term><command>mkfs.ext4</command></term>
|
||||
<listitem>
|
||||
<para>By default creates <systemitem class="filesystem">ext4</systemitem>
|
||||
file systems and is a hard link to <command>mke2fs</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs mkfs.ext4">
|
||||
<primary sortas="b-mkfs.ext4">mkfs.ext4</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="mkfs.ext4dev">
|
||||
<term><command>mkfs.ext4dev</command></term>
|
||||
<listitem>
|
||||
<para>By default creates <systemitem class="filesystem">ext4</systemitem>
|
||||
development file systems and is a hard link to <command>mke2fs</command></para>
|
||||
<indexterm zone="ch-system-e2fsprogs mkfs.ext4dev">
|
||||
<primary sortas="b-mkfs.ext4dev">mkfs.ext4dev</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="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="libquota">
|
||||
<term><filename class="libraryfile">libquota</filename></term>
|
||||
<listitem>
|
||||
<para>Provides an interface for creating and updating quota files
|
||||
and ext4 superblock fields</para>
|
||||
<indexterm zone="ch-system-e2fsprogs libquota">
|
||||
<primary sortas="c-libquota">libquota</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>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-expat" role="wrap">
|
||||
<?dbhtml filename="expat.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>expat</productname>
|
||||
<productnumber>&expat-version;</productnumber>
|
||||
<address>&expat-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Expat-&expat-version;</title>
|
||||
|
||||
<indexterm zone="ch-system-expat">
|
||||
<primary sortas="a-Expat">Expat</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>The Expat package contains a stream oriented C library for
|
||||
parsing XML.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&expat-ch6-sbu;</seg>
|
||||
<seg>&expat-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Expat</title>
|
||||
|
||||
<para>Prepare Expat for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>If desired, install the documentation:</para>
|
||||
|
||||
<screen><userinput remap="install">install -v -dm755 /usr/share/doc/expat-&expat-version;
|
||||
install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-&expat-version;</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-expat" role="content">
|
||||
<title>Contents of Expat</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed program</segtitle>
|
||||
<segtitle>Installed libraries</segtitle>
|
||||
<segtitle>Installed directory</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>xmlwf</seg>
|
||||
<seg>libexpat.so</seg>
|
||||
<seg>/usr/share/doc/expat-&expat-version;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="xmlwf">
|
||||
<term><command>xmlwf </command></term>
|
||||
<listitem>
|
||||
<para>is a non-validating utility to check whether or not
|
||||
XML documents are well formed</para>
|
||||
<indexterm zone="ch-system-expat xmlwf">
|
||||
<primary sortas="b-xmlwf">xmlwf</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libexpat">
|
||||
<term><filename class="libraryfile">libexpat</filename></term>
|
||||
<listitem>
|
||||
<para> contains API functions for parsing XML</para>
|
||||
<indexterm zone="ch-system-expat libexpat">
|
||||
<primary sortas="c-libexpat">libexpat</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
|
@ -0,0 +1,108 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-file" role="wrap">
|
||||
<?dbhtml filename="file.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>file</productname>
|
||||
<productnumber>&file-version;</productnumber>
|
||||
<address>&file-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>File-&file-version;</title>
|
||||
|
||||
<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 a given
|
||||
file or files.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&file-ch6-sbu;</seg>
|
||||
<seg>&file-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of File</title>
|
||||
|
||||
<para>Prepare File for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="contents-file" role="content">
|
||||
<title>Contents of File</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
<segtitle>Installed library</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>file</seg>
|
||||
<seg>libmagic.so</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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>
|
|
@ -0,0 +1,172 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||||
%general-entities;
|
||||
]>
|
||||
|
||||
<sect1 id="ch-system-findutils" role="wrap">
|
||||
<?dbhtml filename="findutils.html"?>
|
||||
|
||||
<sect1info condition="script">
|
||||
<productname>findutils</productname>
|
||||
<productnumber>&findutils-version;</productnumber>
|
||||
<address>&findutils-url;</address>
|
||||
</sect1info>
|
||||
|
||||
<title>Findutils-&findutils-version;</title>
|
||||
|
||||
<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. These programs
|
||||
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>
|
||||
<segtitle>&diskspace;</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>&findutils-ch6-sbu;</seg>
|
||||
<seg>&findutils-ch6-du;</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of Findutils</title>
|
||||
|
||||
<para>Prepare Findutils for compilation:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr --localstatedir=/var/lib/locate</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>The meaning of the configure options:</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><parameter>--localstatedir</parameter></term>
|
||||
<listitem>
|
||||
<para>This option changes the location of the <command>locate</command>
|
||||
database to be in <filename class="directory">/var/lib/locate</filename>,
|
||||
which is FHS-compliant.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Compile the package:</para>
|
||||
|
||||
<screen><userinput remap="make">make</userinput></screen>
|
||||
|
||||
<para>To test the results, issue:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
<para>Install the package:</para>
|
||||
|
||||
<screen><userinput remap="install">make install</userinput></screen>
|
||||
|
||||
<para>Some packages in BLFS and beyond expect the
|
||||
<command>find</command> program in <filename
|
||||
class="directory">/bin</filename>, so make sure
|
||||
it's placed there:</para>
|
||||
|
||||
<screen><userinput remap="install">mv -v /usr/bin/find /bin
|
||||
sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-findutils" role="content">
|
||||
<title>Contents of Findutils</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed programs</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>code, find, locate, oldfind, updatedb, and xargs</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<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="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="oldfind">
|
||||
<term><command>oldfind</command></term>
|
||||
<listitem>
|
||||
<para>Older version of find, using a different algorithm</para>
|
||||
<indexterm zone="ch-system-findutils oldfind">
|
||||
<primary sortas="b-oldfind">oldfind</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>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue