mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-19 11:49:20 +01:00
Resolved bug 192 and a version increase
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@1370 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
7c77094da0
commit
8c5e7152f0
@ -6,6 +6,14 @@
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>December 10th, 2001 [marcheerdink]: Chapter 5+6: Cleaned
|
||||
up the sed commands to use the backup file that was created earlier instead
|
||||
of writing to an intermediate 'tmp~' file.</para></listitem>
|
||||
|
||||
<listitem><para>December 10th, 2001 [marcheerdink]: Chapter 5+6: 'make'
|
||||
command for diffutils installation changed to 'make PR_PROGRAM=/usr/bin/pr.'
|
||||
This bug was reported by Greg Schafer.</para></listitem>
|
||||
|
||||
<listitem><para>December 7th, 2001 [gerard]: Chapter 6: Change the
|
||||
configure command from <emphasis>./Configure -Dprefix=/usr</emphasis> to
|
||||
<emphasis>./configure.gnu --prefix=/usr</emphasis>. This is more consistent
|
||||
|
@ -8,8 +8,7 @@ change.</para>
|
||||
<para><screen><userinput>cp lib/Makefile.in lib/Makefile.in.backup &&
|
||||
sed -e 's/\(.*\)\(fopen-safer\.c \)\\/\1\2atexit.c \\/' \
|
||||
-e 's/\(.*\)\(idcache\$U\.\$.*\)\\/\1\2atexit$U.$(OBJEXT) \\/' \
|
||||
lib/Makefile.in > lib/Makefile.in~ &&
|
||||
mv lib/Makefile.in~ lib/Makefile.in:</userinput></screen>
|
||||
lib/Makefile.in.backup > lib/Makefile.in:</userinput></screen>
|
||||
This is used to fix a problem with building fileutils statically on glibc 2.2.3
|
||||
systems. If this isn't done, then there is the possibility of all of the
|
||||
fileutils programs causing segmentation faults once chroot is entered
|
||||
|
@ -24,8 +24,7 @@ than likely result in all kinds of compile time problems.</para>
|
||||
<para><screen><userinput>cp lib/Makefile.in lib/Makefile.in.backup &&
|
||||
sed -e 's/\(.*\)\(fopen-safer\.c \)\\/\1\2atexit.c \\/' \
|
||||
-e 's/\(.*\)\(idcache\$U\.\$.*\)\\/\1\2atexit$U.$(OBJEXT) \\/' \
|
||||
lib/Makefile.in > lib/Makefile.in~ &&
|
||||
mv lib/Makefile.in~ lib/Makefile.in</userinput></screen></para>
|
||||
lib/Makefile.in.backup > lib/Makefile.in</userinput></screen></para>
|
||||
|
||||
<para>Install fileutils by running the following commands:</para>
|
||||
|
||||
|
@ -12,30 +12,20 @@ that it can't read the file, so we simply create an empty file (the empty file
|
||||
will have Glibc default to using /lib and /usr/lib which is fine).</para>
|
||||
|
||||
<para><userinput>sed 's%\$(PERL)%/usr/bin/perl%'
|
||||
malloc/Makefile > tmp~:</userinput> This sed command
|
||||
searches through <filename>malloc/Makefile</filename> and
|
||||
malloc/Makefile.backup > malloc/Makefile:</userinput> This sed command
|
||||
searches through <filename>malloc/Makefile.backup</filename> and
|
||||
converts all occurrences of <filename>$(PERL)</filename> to
|
||||
<filename>/usr/bin/perl</filename>. The output is then written to the
|
||||
file <filename>tmp~</filename>. This is done because Glibc can't
|
||||
autodetect perl since it hasn't been installed yet.</para>
|
||||
original <filename>malloc/Makefile.in</filename> which is used during
|
||||
configuration. This is done because Glibc can't autodetect perl since
|
||||
it hasn't been installed yet.</para>
|
||||
|
||||
<para><userinput>mv tmp~ malloc/Makefile:</userinput> The file
|
||||
<filename>tmp~</filename> is now moved back to
|
||||
<filename>malloc/Makefile</filename>. We do this because
|
||||
when using sed, we can't write straight back to this file so we need to
|
||||
use a temporary file in between.</para>
|
||||
|
||||
<para><userinput>sed 's/root/0' login/Makefile >
|
||||
tmp~:</userinput> This sed command replaces all occurences of
|
||||
<filename>root</filename> in
|
||||
<filename>login/Makefile</filename> with 0. This is
|
||||
because as we don't have glibc on the LFS system yet, usernames can't
|
||||
be resolved to their user id's. Therefore, we replace the username
|
||||
root with the id 0. </para>
|
||||
|
||||
<para><userinput>mv tmp~ login/Makefile:</userinput> As above, we are using
|
||||
a temporary file (<filename>tmp~</filename>) to store the
|
||||
edited Makefile and then copying it back over the original.</para>
|
||||
<para><userinput>sed 's/root/0' login/Makefile.backup >
|
||||
login/Makefile:</userinput> This sed command replaces all occurences of
|
||||
<filename>root</filename> in <filename>login/Makefile.backup</filename>
|
||||
with 0. This is because we don't have glibc on the LFS system yet, so
|
||||
usernames can't be resolved to their user id's. Therefore, we replace
|
||||
the username root with user id 0.</para>
|
||||
|
||||
<para><userinput>--enable-add-ons:</userinput> This enables the add-on that
|
||||
we install with Glibc: linuxthreads</para>
|
||||
@ -44,18 +34,16 @@ we install with Glibc: linuxthreads</para>
|
||||
pt_chown program to be installed in the /usr/bin directory.</para>
|
||||
|
||||
<para><userinput>sed 's/cross-compiling = yes/cross-compiling = no/'
|
||||
config.make > config.make~:</userinput> This time, we're replacing
|
||||
<filename>cross-compiling = yes</filename> with
|
||||
config.make.backup > config.make:</userinput> This time, sed searches
|
||||
through <filename>config.make.backup</filename> and replaces all occurences
|
||||
of <filename>cross-compiling = yes</filename> with
|
||||
<filename>cross-compiling = no</filename>. We do this because we are
|
||||
only building for our own system. Cross-compiling is used, for
|
||||
instance, to build a package for an Apple Power PC on an Intel system.
|
||||
The reason Glibc thinks we're cross-compiling is that it can't compile a
|
||||
test program to determine this, so it automatically defaults to a
|
||||
cross-compiler. The reason for the failed program is because Glibc
|
||||
hasn't been installed yet.</para>
|
||||
|
||||
<para><userinput>mv config.make~ config.make:</userinput> Again, we are moving
|
||||
the temporary file over the original.</para>
|
||||
only building for our own system. Cross-compiling is used, for instance,
|
||||
to build a package for an Apple Power PC on an Intel system. The reason
|
||||
Glibc thinks we're cross-compiling is that it can't compile a test program
|
||||
to determine this, so it automatically defaults to a cross-compiler.
|
||||
Compiling the test program failes because Glibc hasn't been installed
|
||||
yet.</para>
|
||||
|
||||
<para><userinput>exec /bin/bash:</userinput>This command will
|
||||
start a new bash shell which will replace the current shell. This is
|
||||
|
@ -17,19 +17,16 @@ it comes with.</para>
|
||||
<para><screen><userinput>mknod -m 0666 /dev/null c 1 3 &&
|
||||
touch /etc/ld.so.conf &&
|
||||
cp malloc/Makefile malloc/Makefile.backup &&
|
||||
sed 's%\$(PERL)%/usr/bin/perl%' malloc/Makefile > tmp~ &&
|
||||
mv tmp~ malloc/Makefile &&
|
||||
sed 's%\$(PERL)%/usr/bin/perl%' malloc/Makefile.backup > malloc/Makefile &&
|
||||
cp login/Makefile login/Makefile.backup &&
|
||||
sed 's/root/0/' login/Makefile > tmp~ &&
|
||||
mv tmp~ login/Makefile &&
|
||||
sed 's/root/0/' login/Makefile.backup > login/Makefile &&
|
||||
mkdir ../glibc-build &&
|
||||
cd ../glibc-build &&
|
||||
../glibc-&glibc-version;/configure --prefix=/usr \
|
||||
--enable-add-ons --libexecdir=/usr/bin &&
|
||||
cp config.make config.make.backup &&
|
||||
sed 's/cross-compiling = yes/cross-compiling = no/' \
|
||||
config.make > tmp~ &&
|
||||
mv tmp~ config.make &&
|
||||
config.make.backup > config.make &&
|
||||
make &&
|
||||
make install &&
|
||||
make localedata/install-locales &&
|
||||
|
@ -1,10 +1,10 @@
|
||||
<sect2>
|
||||
<title>Command explanations</title>
|
||||
|
||||
<para><userinput>sed 's/\(.*\) (nflg || \(.*\))\(.*\)/\1\2\3/' src/useradd.c
|
||||
> useradd.c.temp &&</userinput>: This sed is used to fix a
|
||||
compilation bug which occurs due to a variable (nflg) being used but not
|
||||
defined.</para>
|
||||
<para><userinput>sed 's/\(.*\) (nflg || \(.*\))\(.*\)/\1\2\3/'
|
||||
src/useradd.c.backup > src/useradd.c &&</userinput>:
|
||||
This sed is used to fix a compilation bug which occurs due to a
|
||||
variable (nflg) being used but not defined.</para>
|
||||
|
||||
<para><userinput>cp limits login.access /etc:</userinput> These files
|
||||
were not installed during the installation of the package so we copy
|
||||
|
@ -11,8 +11,7 @@ following commands:</para>
|
||||
|
||||
<para><screen><userinput>cp src/useradd.c src/useradd.c.backup &&
|
||||
sed 's/\(.*\) (nflg || \(.*\))\(.*\)/\1\2\3/' \
|
||||
src/useradd.c > tmp~ &&
|
||||
mv tmp~ src/useradd.c &&
|
||||
src/useradd.c.backup > src/useradd.c &&
|
||||
./configure --prefix=/usr &&
|
||||
make &&
|
||||
make install &&
|
||||
|
@ -13,8 +13,7 @@ commands. If you don't want to change it, skip it.</para>
|
||||
|
||||
<para><screen><userinput>cp src/init.c src/init.c.backup &&
|
||||
sed 's/\(.*\)\(Sending processes\)\(.*\)/\1\2 started by init\3/' \
|
||||
src/init.c > tmp~ &&
|
||||
mv tmp~ src/init.c</userinput></screen></para>
|
||||
src/init.c.backup > src/init.c</userinput></screen></para>
|
||||
|
||||
<para>Install Sysvinit by running the following commands:</para>
|
||||
|
||||
|
@ -7,8 +7,7 @@ util-linux package, FHS-compliant, run the following.</para>
|
||||
|
||||
<para><screen><userinput>cp hwclock/hwclock.c hwclock/hwclock.c.backup &&
|
||||
sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \
|
||||
hwclock/hwclock.c > tmp~ &&
|
||||
mv tmp~ hwclock/hwclock.c &&
|
||||
hwclock/hwclock.c.backup > hwclock/hwclock.c &&
|
||||
mkdir -p /var/lib/hwclock</userinput></screen></para>
|
||||
|
||||
</sect2>
|
||||
|
@ -9,7 +9,8 @@ which are currently available are for Emacs, Joe and nano.</para>
|
||||
|
||||
<para>Install Vim by running the following commands:</para>
|
||||
|
||||
<para><screen><userinput>sed '/shUntil\|link shRepeat/{
|
||||
<para><screen><userinput>cp runtime/syntax/sh.vim runtime/syntax/sh.vim.backup &&
|
||||
sed '/shUntil\|link shRepeat/{
|
||||
/shUntil/N
|
||||
/^/i\
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
@ -17,8 +18,7 @@ which are currently available are for Emacs, Joe and nano.</para>
|
||||
/$/i\
|
||||
endif
|
||||
d
|
||||
}' runtime/syntax/sh.vim > sh.vim.fixed &&
|
||||
mv sh.vim.fixed runtime/syntax/sh.vim &&
|
||||
}' runtime/syntax/sh.vim.backup > runtime/syntax/sh.vim &&
|
||||
./configure --prefix=/usr &&
|
||||
make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\" &&
|
||||
make install &&
|
||||
@ -41,7 +41,8 @@ for their temporary state files, like temporary save files for example.
|
||||
If you wish vim to conform to the FHS, you should use this command set
|
||||
instead of the one presented above:</para>
|
||||
|
||||
<para><screen><userinput>sed '/shUntil\|link shRepeat/{
|
||||
<para><screen><userinput>cp runtime/syntax/sh.vim runtime/syntax/sh.vim.backup &&
|
||||
sed '/shUntil\|link shRepeat/{
|
||||
/shUntil/N
|
||||
/^/i\
|
||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||
@ -49,8 +50,7 @@ instead of the one presented above:</para>
|
||||
/$/i\
|
||||
endif
|
||||
d
|
||||
}' runtime/syntax/sh.vim > sh.vim.fixed &&
|
||||
mv sh.vim.fixed runtime/syntax/sh.vim &&
|
||||
}' runtime/syntax/sh.vim.backup > runtime/syntax/sh.vim &&
|
||||
./configure --prefix=/usr --localstatedir=/var/lib/vim &&
|
||||
make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\" &&
|
||||
make install &&
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
<!ENTITY book SYSTEM "book/book.xml">
|
||||
|
||||
<!ENTITY version "20011207">
|
||||
<!ENTITY releasedate "December 7th, 2001">
|
||||
<!ENTITY version "20011210">
|
||||
<!ENTITY releasedate "December 10th, 2001">
|
||||
|
||||
<!ENTITY ftp-root "ftp://ftp.linuxfromscratch.org">
|
||||
<!ENTITY http-root "http://ftp.linuxfromscratch.org">
|
||||
|
Loading…
Reference in New Issue
Block a user