diff --git a/chapter05/bash.xml b/chapter05/bash.xml
deleted file mode 100644
index ee1fb574e..000000000
--- a/chapter05/bash.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- bash
- &bash-version;
- &bash-url;
-
-
- Bash-&bash-version;
-
-
- Bash
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &bash-ch5-sbu;
- &bash-ch5-du;
-
-
-
-
-
-
- Installation of Bash
-
- Prepare Bash for compilation:
-
-./configure --prefix=/usr \
- --build=$(support/config.guess) \
- --host=$LFS_TGT \
- --without-bash-malloc
-
-
- The meaning of the configure options:
-
-
- --without-bash-malloc
-
- This option turns off the use of Bash's memory allocation
- (malloc) function which is known to cause
- segmentation faults. By turning this option off, Bash will use
- the malloc functions from Glibc which are
- more stable.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
- Move the excutable to where it is expected to be:
-
-mv $LFS/usr/bin/bash $LFS/bin/bash
-
- Make a link for the programs that use sh for
- a shell:
-
-ln -sv bash $LFS/bin/sh
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/binutils-pass2.xml b/chapter05/binutils-pass2.xml
deleted file mode 100644
index 5d0fd7e6d..000000000
--- a/chapter05/binutils-pass2.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- binutils-pass2
- &binutils-version;
- &binutils-url;
-
-
- Binutils-&binutils-version; - Pass 2
-
-
- Binutils
- tools, pass 2
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &binutils-ch5p2-sbu;
- &binutils-ch5p2-du;
-
-
-
-
-
-
- Installation of Binutils
-
- Create a separate build directory again:
-
-mkdir -v build
-cd build
-
- Prepare Binutils for compilation:
-
-../configure \
- --prefix=/usr \
- --build=$(../config.guess) \
- --host=$LFS_TGT \
- --disable-nls \
- --enable-shared \
- --disable-werror
-
-
- The meaning of the new configure options:
-
-
- --host=$LFS_TGT
-
- This tells the configure script that we want to build
- this pass of binutils for the $LFS_TGT machine, using our just
- built cross-compiler. This prevents the linker from searching
- through library directories on the host.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/bison.xml b/chapter05/bison.xml
deleted file mode 100644
index 3ed86713a..000000000
--- a/chapter05/bison.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- bison
- &bison-version;
- &bison-url;
-
-
- Bison-&bison-version;
-
-
- Bison
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &bison-ch5-sbu;
- &bison-ch5-du;
-
-
-
-
-
-
- Installation of Bison
-
- Prepare Bison for compilation:
-
-./configure --prefix=/usr \
- --docdir=/usr/share/doc/bison-&bison-version;
-
-
- The meaning of the new configure option:
-
-
- --docdir=/usr/share/doc/bison-&bison-version;
-
- This tells the build system to install bison documentation
- into a versioned directory.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/bzip2.xml b/chapter05/bzip2.xml
deleted file mode 100644
index 828b7fc0f..000000000
--- a/chapter05/bzip2.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- bzip2
- &bzip2-version;
- &bzip2-url;
-
-
- Bzip2-&bzip2-version;
-
-
- Bzip2
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &bzip2-ch5-sbu;
- &bzip2-ch5-du;
-
-
-
-
-
-
- Installation of Bzip2
-
- Apply a patch that will install the documentation for this
- package:
-
-patch -Np1 -i ../&bzip2-docs-patch;
-
- The following command ensures installation of symbolic links are
- relative:
-
-sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
-
- Ensure the man pages are installed into the correct location:
-
-sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
-
- The Bzip2 package does not contain a configure
- script. There are two Makefile, one for the shared
- library, and the other for the static library. Since we need both, We
- do the compilation in two stages. First the shared library:
-
-make CC=$LFS_TGT-gcc -f Makefile-libbz2_so
-make clean
-
-
- The meaning of the make parameter:
-
-
- -f Makefile-libbz2_so
-
- This will cause Bzip2 to be built using a different
- Makefile file, in this case the
- Makefile-libbz2_so file, which creates a dynamic
- libbz2.so library and links
- the Bzip2 utilities against it.
-
-
-
-
-
- Compile and test the package with:
-
-make CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib
-
- Install the package:
-
-make PREFIX=$LFS/usr install
-
- Install the shared bzip2 binary into the
- /bin directory, make some necessary
- symbolic links, and clean up:
-
-cp -v bzip2-shared $LFS/bin/bzip2
-cp -av libbz2.so* $LFS/lib
-ln -sv ../../lib/libbz2.so.1.0 $LFS/usr/lib/libbz2.so
-rm -v $LFS/usr/bin/{bunzip2,bzcat,bzip2}
-ln -sv bzip2 $LFS/bin/bunzip2
-ln -sv bzip2 $LFS/bin/bzcat
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/changingowner.xml b/chapter05/changingowner.xml
deleted file mode 100644
index 43a902821..000000000
--- a/chapter05/changingowner.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- Changing Ownership
-
-
- The commands in the remainder of this book must be performed while
- logged in as user root and no
- longer as user lfs. Also, double
- check that $LFS is set in root's environment.
-
-
- Currently, the whole directory hierarchy in $LFS
- is owned by the user lfs, a user
- that exists only on the host system. If the directories under $LFS are kept as they are, 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 all
- the files under $LFS, thus exposing
- these files to possible malicious manipulation.
-
- To avoid this issue, you could add the lfs user to the new LFS system later when
- creating the /etc/passwd file, taking care to assign it
- the same user and group IDs as on the host system. Better yet, change the
- ownership of the $LFS/* directories to
- user root by running the following
- command:
-
-chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,lib64,tools}
-
-
diff --git a/chapter05/chroot.xml b/chapter05/chroot.xml
deleted file mode 100644
index 5b6310af7..000000000
--- a/chapter05/chroot.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- Entering the Chroot Environment
-
- Now that all the packages which depend on themselves for being built
- are on the system, it is time to enter the chroot environment to finish
- installing the remaining temporary tools. This environment will be in use
- also for installing the final system. As user root, run the following command to enter the
- realm that is, at the moment, populated with only the temporary tools:
-
-chroot "$LFS" /usr/bin/env -i \
- HOME=/root \
- TERM="$TERM" \
- PS1='(lfs chroot) \u:\w\$ ' \
- PATH=/bin:/usr/bin:/sbin:/usr/sbin \
- /bin/bash --login +h
-
- The -i option given to the env
- command will clear all variables of the chroot environment. After that, only
- the HOME, TERM, PS1, and
- PATH variables are set again. The
- TERM=$TERM construct will set the TERM
- variable inside chroot to the same value as outside chroot. This variable is
- needed for programs like vim and less
- to operate properly. If other variables are needed, such as
- CFLAGS or CXXFLAGS, this is a good place to set
- them again.
-
- From this point on, there is no need to use the
- LFS variable anymore, because all work will be restricted
- to the LFS file system. This is because the Bash shell is told that
- $LFS is now the root
- (/) directory.
-
- Notice that /tools/bin is not
- anymore in the PATH. This means that a temporary tool will no longer be
- used once its final version is installed. This occurs when the shell does not
- remember
the locations of executed binaries—for this
- reason, hashing is switched off by passing the +h option
- to bash.
-
- Note that the bash prompt will say
- I have no name! This is normal because the
- /etc/passwd file has not been created yet.
-
-
- 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 and and enter chroot again before continuing
- with the installation.
-
-
-
diff --git a/chapter05/coreutils.xml b/chapter05/coreutils.xml
deleted file mode 100644
index f1e380f7e..000000000
--- a/chapter05/coreutils.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- coreutils
- &coreutils-version;
- &coreutils-url;
-
-
- Coreutils-&coreutils-version;
-
-
- Coreutils
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &coreutils-ch5-sbu;
- &coreutils-ch5-du;
-
-
-
-
-
-
- Installation of Coreutils
-
- Prepare Coreutils for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess) \
- --enable-install-program=hostname \
- --enable-no-install-program=kill,uptime
-
-
- The meaning of the configure options:
-
-
- --enable-install-program=hostname
-
- This enables the hostname binary to be built
- and installed – it is disabled by default but is required by the
- Perl test suite.
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
- Move programs to their final expected locations. Although this is
- not necessary in this temporary environment, we must do so because some
- programs harcode executable locations:
-
-mv -v $LFS/usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} $LFS/bin
-mv -v $LFS/usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} $LFS/bin
-mv -v $LFS/usr/bin/{rmdir,stty,sync,true,uname} $LFS/bin
-mv -v $LFS/usr/bin/chroot $LFS/usr/sbin
-mkdir -pv $LFS/usr/share/man/man8
-mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
-sed -i s/\"1\"/\"8\"/1 $LFS/usr/share/man/man8/chroot.8
-mv -v $LFS/usr/bin/{head,nice,sleep,touch} $LFS/bin
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/createfiles.xml b/chapter05/createfiles.xml
deleted file mode 100644
index aed8d79da..000000000
--- a/chapter05/createfiles.xml
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- Creating Essential Files and Symlinks
-
-
- /etc/passwd
-
-
-
- /etc/group
-
-
-
- /var/run/utmp
-
-
-
- /var/log/btmp
-
-
-
- /var/log/lastlog
-
-
-
- /var/log/wtmp
-
-
- Historically, Linux maintains a list of the mounted file systems in the
- file /etc/mtab. Modern kernels maintain this list
- internally and exposes it to the user via the /proc filesystem. To satisfy utilities that
- expect the presence of /etc/mtab, create the following
- symbolic link:
-
-ln -sv /proc/self/mounts /etc/mtab
-
- In order for user root to be
- able to login and for the name root
to be recognized, there
- must be relevant entries in the /etc/passwd and
- /etc/group files.
-
- Create the /etc/passwd file by running the following
- command:
-
-cat > /etc/passwd << "EOF"
-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
-nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
-EOF
-
-cat > /etc/passwd << "EOF"
-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
-systemd-coredump:x:79:79:systemd Core Dumper:/:/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
-EOF
-
- The actual password for root
- (the x
used here is just a placeholder) will be set later.
-
- Create the /etc/group file by running the following
- command:
-
-cat > /etc/group << "EOF"
-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:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:
-EOF
-
-cat > /etc/group << "EOF"
-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:
-kvm:x:61:
-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:
-systemd-coredump:x:79:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:
-EOF
-
- The created groups are not part of any standard—they are groups
- decided on in part by the requirements of the Udev configuration in the next
- 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 ) recommends only that, besides the group
- root with a Group ID (GID) of 0,
- a group bin 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.
-
- Some tests in need a regular
- user. We add this user here and delete this account at the end of that
- chapter.
-
-echo "tester:x:$(ls -n $(tty) | cut -d" " -f3):101::/home/tester:/bin/bash" >> /etc/passwd
-echo "tester:x:101:" >> /etc/group
-install -o tester -d /home/tester
-
- To remove the I have no name!
prompt, start a new
- shell. Since the
- /etc/passwd and /etc/group
- files have been created, user name and group name resolution will now
- work:
-
-exec /bin/bash --login +h
-
- Note the use of the +h directive. This tells
- bash not to use its internal path hashing. Without this
- directive, bash 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 +h directive will be used for the duration
- of this chapter.
-
- The login, agetty, and
- init 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:
-
-touch /var/log/{btmp,lastlog,faillog,wtmp}
-chgrp -v utmp /var/log/lastlog
-chmod -v 664 /var/log/lastlog
-chmod -v 600 /var/log/btmp
-
- The /var/log/wtmp file records all logins and
- logouts. The /var/log/lastlog file records when each
- user last logged in. The /var/log/faillog file records
- failed login attempts. The /var/log/btmp file records
- the bad login attempts.
-
- The /run/utmp file records the users that
- are currently logged in. This file is created dynamically in the boot
- scripts.
-
-
diff --git a/chapter05/creatingdirs.xml b/chapter05/creatingdirs.xml
deleted file mode 100644
index 359717ff7..000000000
--- a/chapter05/creatingdirs.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- Creating Directories
-
- It is time to create the full structure in the LFS file system. Create
- a standard directory tree by issuing the following commands:
-
-mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
-mkdir -pv /{media/{floppy,cdrom},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 -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
-mkdir -pv /usr/{,local/}share/man/man{1..8}
-
-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}
-
- 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 root, and another to the directories for
- temporary files.
-
- The first mode change ensures that not just anybody can enter
- the /root 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
- /tmp and /var/tmp directories, but cannot remove
- another user's files from them. The latter is prohibited by the so-called
- sticky bit,
the highest bit (1) in the 1777 bit mask.
-
-
- FHS Compliance Note
-
- The directory tree is based on the Filesystem Hierarchy Standard
- (FHS) (available at ). The FHS also specifies
- the optional existence of some directories such as /usr/local/games and /usr/share/games. We create only the
- directories that are needed. However, feel free to create these
- directories.
-
-
-
-
diff --git a/chapter05/dejagnu.xml b/chapter05/dejagnu.xml
deleted file mode 100644
index 8f1ab7648..000000000
--- a/chapter05/dejagnu.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- dejagnu
- &dejagnu-version;
- &dejagnu-url;
-
-
- DejaGNU-&dejagnu-version;
-
-
- DejaGNU
-
-
-
-
-
- The DejaGnu package contains a framework for running test
- suites on GNU tools. It is written in expect, which itself
- uses Tcl (Tool Command Language).
-
-
- &buildtime;
- &diskspace;
-
-
- &dejagnu-ch5-sbu;
- &dejagnu-ch5-du;
-
-
-
-
-
-
- Installation of DejaGNU
-
- Prepare DejaGNU for compilation:
-
-./configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html doc/dejagnu.texi
-makeinfo --plaintext -o doc/dejagnu.txt doc/dejagnu.texi
-
- Build and install the package:
-
-make install
-install -v -dm755 /usr/share/doc/dejagnu-&dejagnu-version;
-install -v -m644 doc/dejagnu.{html,txt} \
- /usr/share/doc/dejagnu-&dejagnu-version;
-
- To test the results, issue:
-
-make check
-
-
-
-
-
- Contents of DejaGNU
-
-
- Installed program
-
-
- runtest
-
-
-
-
- Short Descriptions
-
-
-
-
- runtest
-
- A wrapper script that locates the proper
- expect shell and then runs DejaGNU
-
- runtest
-
-
-
-
-
-
-
-
-
diff --git a/chapter05/diffutils.xml b/chapter05/diffutils.xml
deleted file mode 100644
index 194fe4607..000000000
--- a/chapter05/diffutils.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- diffutils
- &diffutils-version;
- &diffutils-url;
-
-
- Diffutils-&diffutils-version;
-
-
- Diffutils
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &diffutils-ch5-sbu;
- &diffutils-ch5-du;
-
-
-
-
-
-
- Installation of Diffutils
-
- Prepare Diffutils for compilation:
-
-./configure --prefix=/usr --host=$LFS_TGT
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/expect.xml b/chapter05/expect.xml
deleted file mode 100644
index 20b227ea5..000000000
--- a/chapter05/expect.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- expect
- &expect-version;
- &expect-url;
-
-
- Expect-&expect-version;
-
-
- Expect
-
-
-
-
-
- The Expect package contains tools for
- automating, via scripted dialogues, interactive applications such as
- telnet, ftp,
- passwd, fsck,
- rlogin, and tip.
- Expect is also useful for testing these same
- applications as well as easing all sorts of tasks that are prohibitively
- difficult with anything else. The DejaGnu
- framework is written in Expect.
-
-
- &buildtime;
- &diskspace;
-
-
- &expect-ch5-sbu;
- &expect-ch5-du;
-
-
-
-
-
-
- Installation of Expect
-
- Prepare Expect for compilation:
-
-
-./configure --prefix=/usr \
- --with-tcl=/usr/lib \
- --enable-shared \
- --mandir=/usr/share/man \
- --with-tclinclude=/usr/include
-
-
- The meaning of the configure options:
-
-
- --with-tcl=/usr/lib
-
- This parameter is needed to tell the
- configure where the
- tclConfig.sh is located.
-
-
-
-
- --with-tclinclude=/usr/include
-
- This explicitly tells Expect where to find Tcl's internal
- headers. Using this option avoids conditions where
- configure fails because it cannot automatically
- discover the location of Tcl's headers.
-
-
-
-
-
- Build the package:
-
-make
-
- Install the package:
-
-make install
-ln -svf expect&expect-version;/libexpect&expect-version;.so /usr/lib
-
-
-
-
- Contents of Expect
-
-
- Installed program
- Installed library
-
-
- expect
- libexpect-&expect-lib-version;.so
-
-
-
-
- Short Descriptions
-
-
-
-
- expect
-
- Communicates with other interactive programs according
- to a script
-
- expect
-
-
-
-
-
- libexpect-&expect-lib-version;.so
-
- Contains functions that allow Expect to be used as a Tcl
- extension or to be used directly from C or C++ (without Tcl)
-
- libexpect-&expect-lib-version;
-
-
-
-
-
-
-
-
-
diff --git a/chapter05/file.xml b/chapter05/file.xml
deleted file mode 100644
index 5a821d180..000000000
--- a/chapter05/file.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- file
- &file-version;
- &file-url;
-
-
- File-&file-version;
-
-
- File
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &file-ch5-sbu;
- &file-ch5-du;
-
-
-
-
-
-
- Installation of File
-
- Prepare File for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
- Details on this package are located in
-
-
-
-
diff --git a/chapter05/findutils.xml b/chapter05/findutils.xml
deleted file mode 100644
index 073c1640c..000000000
--- a/chapter05/findutils.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- findutils
- &findutils-version;
- &findutils-url;
-
-
- Findutils-&findutils-version;
-
-
- Findutils
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &findutils-ch5-sbu;
- &findutils-ch5-du;
-
-
-
-
-
-
- Installation of Findutils
-
- Prepare Findutils for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
- Move the excutable to its final expected location:
-
-mv -v $LFS/usr/bin/find $LFS/bin
-sed -i 's|find:=${BINDIR}|find:=/bin|' $LFS/usr/bin/updatedb
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/flex.xml b/chapter05/flex.xml
deleted file mode 100644
index 88e263413..000000000
--- a/chapter05/flex.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- flex
- &flex-version;
- &flex-url;
-
-
- Flex-&flex-version;
-
-
- Flex
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &flex-ch5-sbu;
- &flex-ch5-du;
-
-
-
-
-
-
- Installation of Flex
-
- Prepare Flex for compilation:
-
-./configure --prefix=/usr \
- --docdir=/usr/share/doc/flex-&flex-version;
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/gawk.xml b/chapter05/gawk.xml
deleted file mode 100644
index d5b5d6d8d..000000000
--- a/chapter05/gawk.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- gawk
- &gawk-version;
- &gawk-url;
-
-
- Gawk-&gawk-version;
-
-
- Gawk
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &gawk-ch5-sbu;
- &gawk-ch5-du;
-
-
-
-
-
-
- Installation of Gawk
-
- First, ensure some unneeded files are not installed:
-
-sed -i 's/extras//' Makefile.in
-
- Prepare Gawk for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(./config.guess)
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml
deleted file mode 100644
index 5f6864d02..000000000
--- a/chapter05/gcc-pass2.xml
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- gcc-pass2
- &gcc-version;
- &gcc-url;
-
-
- GCC-&gcc-version; - Pass 2
-
-
- GCC
- tools, pass 2
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &gcc-ch5p2-sbu;
- &gcc-ch5p2-du;
-
-
-
-
-
-
- Installation of GCC
-
- As in the first build of GCC, the GMP, MPFR, and MPC packages are
- required. Unpack the tarballs and move them into the required directory
- names:
-
-tar -xf ../mpfr-&mpfr-version;.tar.xz
-mv -v mpfr-&mpfr-version; mpfr
-tar -xf ../gmp-&gmp-version;.tar.xz
-mv -v gmp-&gmp-version; gmp
-tar -xf ../mpc-&mpc-version;.tar.gz
-mv -v mpc-&mpc-version; mpc
-
- If building on x86_64, change the default directory name for 64-bit
- libraries to lib
:
-
-case $(uname -m) in
- x86_64)
- sed -e '/m64=/s/lib64/lib/' \
- -i.orig gcc/config/i386/t-linux64
- ;;
-esac
-
- Fix an issue with GCC-10.1 when building with a cross
- compiler:
-
-patch -Np1 -i ../&gcc-cross-patch;
-
- Create a separate build directory again:
-
-mkdir -v build
-cd build
-
- Create a symlink that allos libgcc to be built with posix threads
- support:
-
-mkdir -pv $LFS_TGT/libgcc
-ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
-
- Before starting to build GCC, remember to unset any environment
- variables that override the default optimization flags.
-
- Now prepare GCC for compilation:
-
-../configure \
- --build=$(../config.guess) \
- --host=$LFS_TGT \
- --prefix=/usr \
- CC_FOR_TARGET=$LFS_TGT-gcc \
- --with-build-sysroot=$LFS \
- --enable-initfini-array \
- --disable-nls \
- --disable-multilib \
- --disable-decimal-float \
- --disable-libatomic \
- --disable-libgomp \
- --disable-libquadmath \
- --disable-libssp \
- --disable-libvtv \
- --disable-libstdcxx \
- --enable-languages=c,c++
-
-
- The meaning of the new configure options:
-
-
- -with-build-sysroot=$LFS
-
- Normally, using --host= ensures that
- a cross-compiler is used for building gcc, and that compiler knows
- that it has to look for headers and libraries in $LFS. But the build system of GCC uses
- other tools, which are not aware of this location. This switch is
- needed to have them find the needed files in $LFS, and not on the host.
-
-
-
-
- --enable-initfini-array
-
- This option is automatically enabled when building a native
- compiler with a native compiler on x86. But here, we build with
- a cross compiler, so we need to explicitely set this option.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
- As a finishing touch, create a symlink. Many programs and scripts
- run cc instead of gcc, 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
- cc leaves the system administrator free to decide
- which C compiler to install:
-
-ln -sv gcc $LFS/usr/bin/cc
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/gettext.xml b/chapter05/gettext.xml
deleted file mode 100644
index a3baed723..000000000
--- a/chapter05/gettext.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- gettext
- &gettext-version;
- &gettext-url;
-
-
- Gettext-&gettext-version;
-
-
- Gettext
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &gettext-ch5-sbu;
- &gettext-ch5-du;
-
-
-
-
-
-
- Installation of Gettext
-
- For our temporary set of tools, we only need to install
- three programs from Gettext.
-
- Prepare Gettext for compilation:
-
-./configure --disable-shared
-
-
- The meaning of the configure option:
-
-
- --disable-shared
-
- We do not need to install any of the shared Gettext libraries at
- this time, therefore there is no need to build them.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the msgfmt, msgmerge and
- xgettext programs:
-
-cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/grep.xml b/chapter05/grep.xml
deleted file mode 100644
index bac311f2f..000000000
--- a/chapter05/grep.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- grep
- &grep-version;
- &grep-url;
-
-
- Grep-&grep-version;
-
-
- Grep
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &grep-ch5-sbu;
- &grep-ch5-du;
-
-
-
-
-
-
- Installation of Grep
-
- Prepare Grep for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --bindir=/bin
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/gzip.xml b/chapter05/gzip.xml
deleted file mode 100644
index e9bdd3bd8..000000000
--- a/chapter05/gzip.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- gzip
- &gzip-version;
- &gzip-url;
-
-
- Gzip-&gzip-version;
-
-
- Gzip
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &gzip-ch5-sbu;
- &gzip-ch5-du;
-
-
-
-
-
-
- Installation of Gzip
-
- Prepare Gzip for compilation:
-
-./configure --prefix=/usr --host=$LFS_TGT
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
- Move the excutable to its final expected location:
-
-mv -v $LFS/usr/bin/gzip $LFS/bin
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/kernfs.xml b/chapter05/kernfs.xml
deleted file mode 100644
index dd6b8991c..000000000
--- a/chapter05/kernfs.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- Preparing Virtual Kernel File Systems
-
-
- /dev/*
-
-
- Various file systems exported by the kernel are used to communicate to
- and from the kernel itself. These file systems are virtual in that no disk
- space is used for them. The content of the file systems resides in
- memory.
-
- Begin by creating directories onto which the file systems will be
- mounted:
-
-mkdir -pv $LFS/{dev,proc,sys,run}
-
-
- Creating Initial Device Nodes
-
- When the kernel boots the system, it requires the presence of a few
- device nodes, in particular the console and null devices. The device nodes must be created
- on the hard disk so that they are available before udevd
- has been started, and additionally when Linux is started with
- init=/bin/bash. Create the devices by running the
- following commands:
-
-mknod -m 600 $LFS/dev/console c 5 1
-mknod -m 666 $LFS/dev/null c 1 3
-
-
-
-
- Mounting and Populating /dev
-
- The recommended method of populating the /dev directory with devices is to mount a
- virtual filesystem (such as tmpfs) on the /dev directory, and allow the devices to be
- created dynamically on that virtual filesystem as they are detected or
- accessed. Device creation is generally done during the boot process
- by Udev. Since this new system does not yet have Udev and has not yet
- been booted, it is necessary to mount and populate /dev manually. This is accomplished by bind
- mounting the host system's /dev
- directory. A bind mount is a special type of mount that allows you to
- create a mirror of a directory or mount point to some other location. Use
- the following command to achieve this:
-
-mount -v --bind /dev $LFS/dev
-
-
-
-
- Mounting Virtual Kernel File Systems
-
- Now mount the remaining virtual kernel filesystems:
-
-mount -v --bind /dev/pts $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run
-
-
- The meaning of the mount options for devpts:
-
-
- gid=5
-
- This ensures that all devpts-created device nodes are owned by
- group ID 5. This is the ID we will use later on for the tty group. We use the group ID instead
- of a name, since the host system might use a different ID for its
- tty group.
-
-
-
-
- mode=0620
-
- This ensures that all devpts-created device nodes have mode 0620
- (user readable and writable, group writable). Together with the
- option above, this ensures that devpts will create device nodes that
- meet the requirements of grantpt(), meaning the Glibc
- pt_chown helper binary (which is not installed by
- default) is not necessary.
-
-
-
-
-
- In some host systems, /dev/shm is a
- symbolic link to /run/shm.
- The /run tmpfs was mounted above so in this case only a
- directory needs to be created.
-
-if [ -h $LFS/dev/shm ]; then
- mkdir -pv $LFS/$(readlink $LFS/dev/shm)
-fi
-
-
-
-
diff --git a/chapter05/libstdc++-pass2.xml b/chapter05/libstdc++-pass2.xml
deleted file mode 100644
index 999a4fa4e..000000000
--- a/chapter05/libstdc++-pass2.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- gcc-libstdc++
- &gcc-version;
- &gcc-url;
-
-
- Libstdc++ from GCC-&gcc-version;, Pass 2
-
-
- GCC
- tools, libstdc++ pass 2
-
-
-
-
-
- Again, when building , we had to
- defer the installation of the C++ standard library, because no suitable
- compiler was available to compile it: we could not use the compiler
- installed, because this compiler is a native
- compiler, and should not be used outside of chroot without being at
- risk of polluting the build with some host components.
-
-
- &buildtime;
- &diskspace;
-
-
-
- &libstdcpp-ch5-sbu;
- &libstdcpp-ch5-du;
-
-
-
-
-
-
- Installation of Target Libstdc++
-
-
- Libstdc++ is part of the GCC sources.
- You should first unpack the GCC tarball and change to the
- gcc-&gcc-version; directory.
-
-
- Create a link which exists when building Libstdc++ in the gcc
- tree:
-
-ln -s gthr-posix.h libgcc/gthr-default.h
-
- Create a separate build directory for Libstdc++ and enter it:
-
-mkdir -v build
-cd build
-
- Prepare Libstdc++ for compilation:
-
-../libstdc++-v3/configure \
- CXXFLAGS="-g -O2 -D_GNU_SOURCE" \
- --prefix=/usr \
- --disable-multilib \
- --disable-nls \
- --disable-libstdcxx-pch
-
-
- The meaning of the configure options:
-
-
- CXXFLAGS="-g -O2 -D_GNU_SOURCE"
-
- Those flags are passed by the top level Makefile when doing
- a full build of GCC.
-
-
-
-
- --disable-libstdcxx-pch
-
- This switch prevents the installation of precompiled
- include files, which are not needed at this stage.
-
-
-
-
-
- Compile libstdc++ by running:
-
-make
-
- Install the library:
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/m4.xml b/chapter05/m4.xml
deleted file mode 100644
index 3f51c11d1..000000000
--- a/chapter05/m4.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- m4
- &m4-version;
- &m4-url;
-
-
- M4-&m4-version;
-
-
- M4
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &m4-ch5-sbu;
- &m4-ch5-du;
-
-
-
-
-
-
- Installation of M4
-
- First, make some fixes introduced by glibc-2.28:
-
-sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
-echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
-
- Prepare M4 for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/make.xml b/chapter05/make.xml
deleted file mode 100644
index 2d054dd9e..000000000
--- a/chapter05/make.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- make
- &make-version;
- &make-url;
-
-
- Make-&make-version;
-
-
- Make
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &make-ch5-sbu;
- &make-ch5-du;
-
-
-
-
-
-
- Installation of Make
-
- Prepare Make for compilation:
-
-./configure --prefix=/usr \
- --without-guile \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)
-
-
- The meaning of the new configure option:
-
-
- --without-guile
-
- Although we are cross-compiling, configure tries to use
- guile from the build host if it finds it. This makes compilation
- fail, so this switch prevents using it.
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/ncurses.xml b/chapter05/ncurses.xml
deleted file mode 100644
index e2455eb7a..000000000
--- a/chapter05/ncurses.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- ncurses
- &ncurses-version;
- &ncurses-url;
-
-
- Ncurses-&ncurses-version;
-
-
- Ncurses
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &ncurses-ch5-sbu;
- &ncurses-ch5-du;
-
-
-
-
-
-
- Installation of Ncurses
-
- First, ensure that gawk is found first during configuration:
-
-sed -i s/mawk// configure
-
- Then, run the following commands to build the tic
- program on the build host:
-
-mkdir build
-cd build
-../configure
-make -C include
-make -C progs tic
-cd ..
-
- Prepare Ncurses for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(./config.guess) \
- --mandir=/usr/share/man \
- --with-shared \
- --without-debug \
- --without-ada \
- --without-normal \
- --enable-widec \
- --enable-pc-files
-
-
- The meaning of the new configure options:
-
-
- --without-ada
-
- 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 chroot environment.
-
-
-
-
- --enable-widec
-
- This switch causes wide-character libraries (e.g., libncursesw.so.&ncurses-version;)
- to be built instead of normal ones (e.g., libncurses.so.&ncurses-version;).
- 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.
-
-
-
-
- --enable-pc-files
-
- This switch generates and installs .pc files for pkg-config.
-
-
-
-
-
- --without-normal
-
- This switch disables building and installing most static libraries.
-
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
-ln -s libncursesw.so $LFS/usr/lib/libncurses.so
-
- Move the shared libraries to the
- /lib directory, where they are
- expected to reside:
-
-mv -v $LFS/usr/lib/libncursesw.so.6* $LFS/lib
-
- Because the libraries have been moved, one symlink points to
- a non-existent file. Recreate it:
-
-ln -sfv ../../lib/$(readlink $LFS/usr/lib/libncursesw.so) $LFS/usr/lib/libncursesw.so
-
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/patch.xml b/chapter05/patch.xml
deleted file mode 100644
index 08bad5c56..000000000
--- a/chapter05/patch.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- patch
- &patch-version;
- &patch-url;
-
-
- Patch-&patch-version;
-
-
- Patch
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &patch-ch5-sbu;
- &patch-ch5-du;
-
-
-
-
-
-
- Installation of Patch
-
- Prepare Patch for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/perl.xml b/chapter05/perl.xml
deleted file mode 100644
index 663d3dbc2..000000000
--- a/chapter05/perl.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- perl
- &perl-version;
- &perl-url;
-
-
- Perl-&perl-version;
-
-
- Perl
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &perl-ch5-sbu;
- &perl-ch5-du;
-
-
-
-
-
-
- Installation of Perl
-
- Prepare Perl for compilation:
-
-sh Configure -des -Dprefix=/usr
-
-
- The meaning of the new Configure options:
-
- -des
-
- This is a combination of three options: -d uses defaults for
- all items; -e ensures completion of all tasks; -s silences
- non-essential output.
-
-
-
-
-
- Build the package:
-
-make
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/python.xml b/chapter05/python.xml
deleted file mode 100644
index 8e7afaf03..000000000
--- a/chapter05/python.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- Python
- &python-version;
- &python-url;
-
-
- Python-&python-version;
-
-
- Python
- temporary
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &python-ch5-sbu;
- &python-ch5-du;
-
-
-
-
-
-
- Installation of Python
-
-
- There are two package files whose name starts with
- python
. The one to extract from is
- Python-&python-version;.tar.xz (notice the
- uppercase first letter).
-
-
- Prepare Python for compilation:
-
-./configure --prefix=/usr --without-ensurepip
-
-
- The meaning of the configure option:
-
-
- --without-ensurepip
-
- This switch disables the Python package installer, which is not
- needed at this stage.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/sed.xml b/chapter05/sed.xml
deleted file mode 100644
index 5daaf6b7e..000000000
--- a/chapter05/sed.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- sed
- &sed-version;
- &sed-url;
-
-
- Sed-&sed-version;
-
-
- Sed
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &sed-ch5-sbu;
- &sed-ch5-du;
-
-
-
-
-
-
- Installation of Sed
-
- Prepare Sed for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --bindir=/bin
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/stripping.xml b/chapter05/stripping.xml
deleted file mode 100644
index 7c054b6b2..000000000
--- a/chapter05/stripping.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
- Stripping
-
- 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:
-
-$LFS_TGT-strip --strip-debug $LFS/usr/lib/*
-$LFS_TGT-strip --strip-unneeded $LFS/usr/{,s}bin/*
-
- 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.
- Note that we use the strip program built in
- Binutils pass 1
, since it is the one that knows how to strip
- our cross-compiled programs.
-
-
- Take care not to use
- --strip-unneeded on the libraries. The static
- ones would be destroyed and the toolchain packages would need to be
- built all over again.
-
- To save more, remove the documentation:
-
-rm -rf $LFS/usr/{,share}/{info,man,doc}
-
- The libtool .la files are only useful when linking with static
- libraries. They are unneeded, and potentially harmful, when using dynamic
- shared libraries, specially when using also non-autotools build systems.
- Remove those files now:
-
-find $LFS/usr/{lib,libexec} -name \*.la -delete
-
- At this point, you should have at least 3 GB of free space in
- $LFS 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.
-
-
diff --git a/chapter05/tar.xml b/chapter05/tar.xml
deleted file mode 100644
index 26f676121..000000000
--- a/chapter05/tar.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- tar
- &tar-version;
- &tar-url;
-
-
- Tar-&tar-version;
-
-
- Tar
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &tar-ch5-sbu;
- &tar-ch5-du;
-
-
-
-
-
-
- Installation of Tar
-
- Prepare Tar for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess) \
- --bindir=/bin
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/tcl.xml b/chapter05/tcl.xml
deleted file mode 100644
index bd17a91a8..000000000
--- a/chapter05/tcl.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
- %general-entities;
-
-
-]>
-
-
-
-
-
- tcl
- &tcl-version;
- &tcl-url;
-
-
- Tcl-&tcl-version;
-
-
- Tcl
-
-
-
-
-
- The Tcl package contains the Tool Command Language,
- a robust general-purpose scripting language. The Expect package
- is written in the Tcl language.
-
-
- &buildtime;
- &diskspace;
-
-
- &tcl-ch5-sbu;
- &tcl-ch5-du;
-
-
-
-
-
-
- Installation of Tcl
-
- This package and the next two (Expect and DejaGNU) are
- installed to support running the test suites for GCC and Binutils and other
- packages. Installing three packages for testing purposes may seem
- excessive, but it is very reassuring, if not essential, to know that the
- most important tools are working properly. These packages are required
- to run the test suites in .
-
- Note that the Tcl package used here is a minimal version needed
- to run the LFS tests. For the full package, see the
- BLFS Tcl procedures.
-
- Prepare Tcl for compilation:
-
-SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr \
- --mandir=/usr/share/man \
- $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
-
-
- The meaning of the configure options:
-
-
- $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
-
- The construct $(<shell command>)
- is replaced by the output of the chell command. Here this output is
- empty if running on a 32 bit machine, and is
- --enable-64bit if running on a 64 bit machine.
-
-
-
-
-
-
- Build the package:
-
-make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
- -e "s|$SRCDIR|/usr/include|" \
- -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
- -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
- -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
- -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
- -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \
- -e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|" \
- -e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|" \
- -i pkgs/itcl&itcl-ver;/itclConfig.sh
-
-unset SRCDIR
-
- The various sed
after the make
command
- remove references to the build directory from various configuration files,
- and replaces them with the install directory. This is not mandatory
- for the remaining of LFS, but may be needed in case a package built later
- uses Tcl.
-
- Install the package:
-
-make install
-
- Make the installed library writable so debugging symbols can
- be removed later:
-
-chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so
-
- Install Tcl's headers. The next package, Expect, requires them
- to build.
-
-make install-private-headers
-
- Now make a necessary symbolic link:
-
-ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh
-
-
-
-
- Contents of Tcl
-
-
- Installed programs
- Installed library
-
-
- tclsh (link to tclsh&tcl-major-version;) and tclsh&tcl-major-version;
- libtcl&tcl-major-version;.so, libtclstub&tcl-major-version;.a
-
-
-
-
- Short Descriptions
-
-
-
-
- tclsh&tcl-major-version;
-
- The Tcl command shell
-
- tclsh&tcl-major-version;
-
-
-
-
-
- tclsh
-
- A link to tclsh&tcl-major-version;
-
- tclsh
-
-
-
-
-
- libtcl&tcl-major-version;.so
-
- The Tcl library
-
- libtcl&tcl-major-version;.so
-
-
-
-
-
- libtclstub&tcl-major-version;.a
-
- The Tcl Stub library
-
- libtclstub&tcl-major-version;.a
-
-
-
-
-
-
-
-
-
diff --git a/chapter05/texinfo.xml b/chapter05/texinfo.xml
deleted file mode 100644
index 2cb7764cb..000000000
--- a/chapter05/texinfo.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- texinfo
- &texinfo-version;
- &texinfo-url;
-
-
- Texinfo-&texinfo-version;
-
-
- Texinfo
- temporary
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &texinfo-ch5-sbu;
- &texinfo-ch5-du;
-
-
-
-
-
-
- Installation of Texinfo
-
- Prepare Texinfo for compilation:
-
-./configure --prefix=/usr
-
-
- As part of the configure process, a test is made that indicates an
- error for TestXS_la-TestXS.lo. This is not relevant for LFS and should be
- ignored.
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/util-linux.xml b/chapter05/util-linux.xml
deleted file mode 100644
index 6aebad7a1..000000000
--- a/chapter05/util-linux.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- util-linux
- &util-linux-version;
- &util-linux-url;
-
-
- Util-linux-&util-linux-version;
-
-
- Util-linux
- tools
-
-
-
-
-
- The Util-linux package contains miscellaneous utility programs.
-
-
- &buildtime;
- &diskspace;
-
-
- &util-linux-ch5-sbu;
- &util-linux-ch5-du;
-
-
-
-
-
-
- Installation of Util-linux
-
- First create a directory
- to enable storage for the hwclock program:
-
-mkdir -pv /var/lib/hwclock
-
- Prepare Util-linux for compilation:
-
-./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
- --docdir=/usr/share/doc/util-linux-&util-linux-version; \
- --disable-chfn-chsh \
- --disable-login \
- --disable-nologin \
- --disable-su \
- --disable-setpriv \
- --disable-runuser \
- --disable-pylibmount \
- --disable-static \
- --without-python
-
-
- The meaning of the configure options:
-
-
- ADJTIME_PATH=/var/lib/hwclock/adjtime
-
- This sets the location of the file recording information about
- the hardware clock, in accordance to the FHS. This is not stricly
- needed fot his temporary tool, but it prevent creating a file
- at another location, which would not be overwritten or removed
- when building the final util-linux.
-
-
-
-
- --disable-*
-
- Those switches prevent warnings about building components
- that require packages not in LFS or not installed yet.
-
-
-
-
- --without-python
-
- This switch disables using Python.
- It avoids trying to build unneeded bindings.
-
-
-
-
-
- Compile the package:
-
-make
-
- Install the package:
-
-make install
-
-
-
-
-
-
- Details on this package are located in
-
-
-
-
-
diff --git a/chapter05/xz.xml b/chapter05/xz.xml
deleted file mode 100644
index 83e4a96d6..000000000
--- a/chapter05/xz.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
- %general-entities;
-]>
-
-
-
-
-
- xz
- &xz-version;
- &xz-url;
-
-
- Xz-&xz-version;
-
-
- Xz
- tools
-
-
-
-
-
-
-
-
- &buildtime;
- &diskspace;
-
-
- &xz-ch5-sbu;
- &xz-ch5-du;
-
-
-
-
-
-
- Installation of Xz
-
- Prepare Xz for compilation:
-
-./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess) \
- --disable-static \
- --docdir=/usr/share/doc/xz-&xz-version;
-
- Compile the package:
-
-make
-
- Install the package:
-
-make DESTDIR=$LFS install
-
- Make sure that all essential files are in the correct directory:
-
-mv -v $LFS/usr/bin/{lzma,unlzma,lzcat,xz,unxz,xzcat} $LFS/bin
-mv -v $LFS/usr/lib/liblzma.so.* $LFS/lib
-ln -svf ../../lib/$(readlink $LFS/usr/lib/liblzma.so) $LFS/usr/lib/liblzma.so
-
-
-
-
-
- Details on this package are located in
-
-
-
-