911 lines
27 KiB
Bash
911 lines
27 KiB
Bash
#!/bin/bash
|
|
|
|
source vars.sh
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.3 ""$LFS_MANPAGES""" >> build.log
|
|
|
|
tar xf "$LFS_MANPAGES".tar.xz &&
|
|
cd "$LFS_MANPAGES" &&
|
|
make prefix=/usr install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_MANPAGES" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.3 ""$LFS_MANPAGES""" >> build.log &&
|
|
echo "$LFS_MANPAGES" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.4 ""$LFS_IANAETC""" >> build.log
|
|
|
|
tar xf "$LFS_IANAETC".tar.gz &&
|
|
cd "$LFS_IANAETC" &&
|
|
cp services protocols /etc &&
|
|
cd .. &&
|
|
rm -rf "$LFS_IANAETC" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.4 ""$LFS_IANAETC""" >> build.log
|
|
echo "$LFS_IANAETC" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.5 ""$LFS_GLIBC""" >> build.log
|
|
|
|
tar xf "$LFS_GLIBC".tar.xz &&
|
|
cd "$LFS_GLIBC" &&
|
|
patch -Np1 -i ../glibc-2.37-fhs-1.patch &&
|
|
sed '/width -=/s/workend - string/number_length/' \
|
|
-i stdio-common/vfprintf-process-arg.c &&
|
|
mkdir -v build &&
|
|
cd build &&
|
|
echo "rootsbindir=/usr/sbin" > configparms &&
|
|
../configure --prefix=/usr \
|
|
--disable-werror \
|
|
--enable-kernel=3.2 \
|
|
--enable-stack-protector=strong \
|
|
--with-headers=/usr/include \
|
|
libc_cv_slibdir=/usr/lib &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../../check-log_"$LFS_GLIBC".log;
|
|
fi
|
|
touch /etc/ld.so.conf &&
|
|
sed '/test-installation/s@$(LFS_PERL)@echo not running@' -i ../Makefile &&
|
|
make install &&
|
|
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd &&
|
|
cp -v ../nscd/nscd.conf /etc/nscd.conf &&
|
|
mkdir -pv /var/cache/nscd &&
|
|
install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf &&
|
|
install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service &&
|
|
make localedata/install-locales
|
|
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
|
|
localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
|
|
cat > /etc/nsswitch.conf << "EOF"
|
|
# Begin /etc/nsswitch.conf
|
|
|
|
passwd: files
|
|
group: files
|
|
shadow: files
|
|
|
|
hosts: files dns
|
|
networks: files
|
|
|
|
protocols: files
|
|
services: files
|
|
ethers: files
|
|
rpc: files
|
|
|
|
# End /etc/nsswitch.conf
|
|
EOF
|
|
tar -xf ../../tzdata2022g.tar.gz &&
|
|
ZONEINFO=/usr/share/zoneinfo &&
|
|
mkdir -pv $ZONEINFO/{posix,right} &&
|
|
for tz in etcetera southamerica northamerica europe africa antarctica \
|
|
asia australasia backward; do
|
|
zic -L /dev/null -d $ZONEINFO ${tz}
|
|
zic -L /dev/null -d $ZONEINFO/posix ${tz}
|
|
zic -L leapseconds -d $ZONEINFO/right ${tz}
|
|
done &&
|
|
cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO &&
|
|
zic -d $ZONEINFO -p America/New_York &&
|
|
unset ZONEINFO &&
|
|
ln -sfv /usr/share/zoneinfo/UTC /etc/localtime &&
|
|
cat > /etc/ld.so.conf << "EOF"
|
|
# Begin /etc/ld.so.conf
|
|
/usr/local/lib
|
|
/opt/lib
|
|
|
|
EOF
|
|
cat >> /etc/ld.so.conf << "EOF"
|
|
# Add an include directory
|
|
include /etc/ld.so.conf.d/*.conf
|
|
|
|
EOF
|
|
mkdir -pv /etc/ld.so.conf.d &&
|
|
cd ../.. &&
|
|
rm -rf "$LFS_GLIBC" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.5 ""$LFS_GLIBC""" >> build.log &&
|
|
echo "$LFS_GLIBC" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.6 ""$LFS_ZLIB""" >> build.log
|
|
|
|
tar xf "$LFS_ZLIB".tar.xz &&
|
|
cd "$LFS_ZLIB" &&
|
|
./configure --prefix=/usr &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_ZLIB".log;
|
|
fi
|
|
make install &&
|
|
rm -fv /usr/lib/libz.a &&
|
|
cd .. &&
|
|
rm -rf "$LFS_ZLIB" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.6 ""$LFS_ZLIB""" >> build.log &&
|
|
echo "$LFS_ZLIB" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.7 ""$LFS_BZIP2""" >> build.log
|
|
|
|
tar xf "$LFS_BZIP2".tar.gz &&
|
|
cd "$LFS_BZIP2" &&
|
|
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch &&
|
|
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile &&
|
|
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile &&
|
|
make -f Makefile-libbz2_so &&
|
|
make clean &&
|
|
make &&
|
|
make PREFIX=/usr install &&
|
|
cp -av libbz2.so.* /usr/lib &&
|
|
ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so &&
|
|
cp -v bzip2-shared /usr/bin/bzip2 &&
|
|
for i in /usr/bin/{bzcat,bunzip2}; do
|
|
ln -sfv bzip2 $i
|
|
done &&
|
|
rm -fv /usr/lib/libbz2.a &&
|
|
cd .. &&
|
|
rm -rf "$LFS_BZIP2" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.7 ""$LFS_BZIP2""" >> build.log &&
|
|
echo "$LFS_BZIP2" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.8 ""$LFS_XZ""" >> build.log
|
|
|
|
tar xf "$LFS_XZ".tar.xz &&
|
|
cd "$LFS_XZ" &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--docdir=/usr/share/doc/xz-5.4.1 &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_XZ".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_XZ" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.8 ""$LFS_XZ""" >> build.log &&
|
|
echo "$LFS_XZ" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.9 ""$LFS_ZSTD""" >> build.log
|
|
|
|
tar xf "$LFS_ZSTD".tar.gz &&
|
|
cd "$LFS_ZSTD" &&
|
|
make prefix=/usr &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_ZSTD".log;
|
|
fi
|
|
make prefix=/usr install &&
|
|
rm -v /usr/lib/libzstd.a &&
|
|
cd .. &&
|
|
rm -rf "$LFS_ZSTD" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.9 ""$LFS_ZSTD""" >> build.log &&
|
|
echo "$LFS_ZSTD" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.10 ""$LFS_FILE""" >> build.log
|
|
|
|
tar xf "$LFS_FILE".tar.gz &&
|
|
cd "$LFS_FILE" &&
|
|
./configure --prefix=/usr &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_FILE".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_FILE" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.10 ""$LFS_FILE""" >> build.log &&
|
|
echo "$LFS_FILE" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.11 ""$LFS_READLINE""" >> build.log
|
|
|
|
tar xf "$LFS_READLINE".tar.gz &&
|
|
cd "$LFS_READLINE" &&
|
|
sed -i '/MV.*old/d' Makefile.in &&
|
|
sed -i '/{OLDSUFF}/c:' support/shlib-install &&
|
|
patch -Np1 -i ../readline-8.2-upstream_fix-1.patch &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--with-curses \
|
|
--docdir=/usr/share/doc/readline-8.2 &&
|
|
make SHLIB_LIBS="-lncursesw" &&
|
|
make SHLIB_LIBS="-lncursesw" install &&
|
|
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2 &&
|
|
cd .. &&
|
|
rm -rf "$LFS_READLINE" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.11 ""$LFS_READLINE""" >> build.log &&
|
|
echo "$LFS_READLINE" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.12 ""$LFS_M4""" >> build.log
|
|
|
|
tar xf "$LFS_M4".tar.xz &&
|
|
cd "$LFS_M4" &&
|
|
./configure --prefix=/usr &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_M4".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_M4" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.12 ""$LFS_M4""" >> build.log &&
|
|
echo "$LFS_M4" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.13 ""$LFS_BC""" >> build.log
|
|
|
|
tar xf "$LFS_BC".tar.xz &&
|
|
cd "$LFS_BC" &&
|
|
CC=gcc ./configure --prefix=/usr -G -O3 -r &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make test | tee ../check-log_"$LFS_BC".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_BC" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.13 ""$LFS_BC""" >> build.log
|
|
echo "$LFS_BC" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.14 ""$LFS_FLEX""" >> build.log
|
|
|
|
tar xf "$LFS_FLEX".tar.gz &&
|
|
cd "$LFS_FLEX" &&
|
|
./configure --prefix=/usr \
|
|
--docdir=/usr/share/doc/flex-2.6.4 \
|
|
--disable-static &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_FLEX".log;
|
|
fi
|
|
make install &&
|
|
ln -sv flex /usr/bin/lex &&
|
|
cd .. &&
|
|
rm -rf "$LFS_FLEX" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.14 ""$LFS_FLEX""" >> build.log &&
|
|
echo "$LFS_FLEX" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.15 ""$LFS_TCL""" >> build.log
|
|
|
|
tar xf "$LFS_TCL"-src.tar.gz &&
|
|
cd "$LFS_TCL" &&
|
|
SRCDIR=$(pwd) &&
|
|
cd unix &&
|
|
./configure --prefix=/usr \
|
|
--mandir=/usr/share/man &&
|
|
make &&
|
|
sed -e "s|$SRCDIR/unix|/usr/lib|" \
|
|
-e "s|$SRCDIR|/usr/include|" \
|
|
-i tclConfig.sh &&
|
|
sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.5|/usr/lib/tdbc1.1.5|" \
|
|
-e "s|$SRCDIR/pkgs/tdbc1.1.5/generic|/usr/include|" \
|
|
-e "s|$SRCDIR/pkgs/tdbc1.1.5/library|/usr/lib/tcl8.6|" \
|
|
-e "s|$SRCDIR/pkgs/tdbc1.1.5|/usr/include|" \
|
|
-i pkgs/tdbc1.1.5/tdbcConfig.sh &&
|
|
sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.3|/usr/lib/itcl4.2.3|" \
|
|
-e "s|$SRCDIR/pkgs/itcl4.2.3/generic|/usr/include|" \
|
|
-e "s|$SRCDIR/pkgs/itcl4.2.3|/usr/include|" \
|
|
-i pkgs/itcl4.2.3/itclConfig.sh &&
|
|
unset SRCDIR &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make test | tee ../../check-log_"$LFS_TCL".log;
|
|
fi
|
|
make install &&
|
|
chmod -v u+w /usr/lib/libtcl8.6.so &&
|
|
make install-private-headers &&
|
|
ln -sfv tclsh8.6 /usr/bin/tclsh &&
|
|
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 &&
|
|
cd .. &&
|
|
tar -xf ../tcl8.6.13-html.tar.gz --strip-components=1 &&
|
|
mkdir -v -p /usr/share/doc/tcl-8.6.13 &&
|
|
cp -v -r ./html/* /usr/share/doc/tcl-8.6.13 &&
|
|
cd .. &&
|
|
rm -rf "$LFS_TCL" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.15 ""$LFS_TCL""" >> build.log &&
|
|
echo "$LFS_TCL" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.16 ""$LFS_EXPECT""" >> build.log
|
|
|
|
tar xf "$LFS_EXPECT".tar.gz &&
|
|
cd "$LFS_EXPECT" &&
|
|
./configure --prefix=/usr \
|
|
--with-tcl=/usr/lib \
|
|
--enable-shared \
|
|
--mandir=/usr/share/man \
|
|
--with-tclinclude=/usr/include &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make test | tee ../check-log_"$LFS_EXPECT".log;
|
|
fi
|
|
make install &&
|
|
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib &&
|
|
cd .. && rm -rf "$LFS_EXPECT" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.16 ""$LFS_EXPECT""" >> build.log &&
|
|
echo "$LFS_EXPECT" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.17 ""$LFS_DEJAGNU""" >> build.log
|
|
|
|
tar xf "$LFS_DEJAGNU".tar.gz &&
|
|
cd "$LFS_DEJAGNU" &&
|
|
mkdir -v build &&
|
|
cd build &&
|
|
../configure --prefix=/usr &&
|
|
makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi &&
|
|
makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi &&
|
|
make install &&
|
|
install -v -dm755 /usr/share/doc/dejagnu-1.6.3 &&
|
|
install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../../check-log_"$LFS_DEJAGNU".log;
|
|
fi
|
|
cd ../.. &&
|
|
rm -rf "$LFS_DEJAGNU" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.17 ""$LFS_DEJAGNU""" >> build.log &&
|
|
echo "$LFS_DEJAGNU" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.18 ""$LFS_BINUTILS""" >> build.log
|
|
|
|
tar xf "$LFS_BINUTILS".tar.xz &&
|
|
cd "$LFS_BINUTILS" &&
|
|
echo "Verify that the PTYs are working properly inside the chroot environment"
|
|
echo "The output should be: spawn ls"
|
|
expect -c "spawn ls"
|
|
sleep 5;
|
|
mkdir -v build &&
|
|
cd build &&
|
|
../configure --prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--enable-gold \
|
|
--enable-ld=default \
|
|
--enable-plugins \
|
|
--enable-shared \
|
|
--disable-werror \
|
|
--enable-64-bit-bfd \
|
|
--with-system-zlib &&
|
|
make tooldir=/usr &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make -k check | tee ../../check-log_"$LFS_BINUTILS".log;
|
|
grep '^FAIL:' $(find -name '*.log')
|
|
fi
|
|
make tooldir=/usr install &&
|
|
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,sframe,opcodes}.a &&
|
|
rm -fv /usr/share/man/man1/{gprofng,gp-*}.1 &&
|
|
cd ../.. &&
|
|
rm -rf "$LFS_BINUTILS" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.18 ""$LFS_BINUTILS""" >> build.log &&
|
|
echo "$LFS_BINUTILS" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.19 ""$LFS_GMP""" >> build.log
|
|
|
|
tar xf "$LFS_GMP".tar.xz &&
|
|
cd "$LFS_GMP" &&
|
|
./configure --prefix=/usr \
|
|
--enable-cxx \
|
|
--disable-static \
|
|
--docdir=/usr/share/doc/gmp-6.2.1 &&
|
|
make &&
|
|
make html &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check 2>&1 | tee gmp-check-log;
|
|
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log &&
|
|
cp gmp-check-log ../check-log_"$LFS_GMP".log
|
|
fi
|
|
make install &&
|
|
make install-html &&
|
|
cd .. &&
|
|
rm -rf "$LFS_GMP" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.19 ""$LFS_GMP""" >> build.log &&
|
|
echo "$LFS_GMP" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.20 ""$LFS_MPFR""" >> build.log
|
|
|
|
tar xf "$LFS_MPFR".tar.xz &&
|
|
cd "$LFS_MPFR" &&
|
|
sed -e 's/+01,234,567/+1,234,567 /' \
|
|
-e 's/13.10Pd/13Pd/' \
|
|
-i tests/tsprintf.c &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--enable-thread-safe \
|
|
--docdir=/usr/share/doc/mpfr-4.2.0 &&
|
|
make &&
|
|
make html &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_MPFR".log;
|
|
fi
|
|
make install &&
|
|
make install-html &&
|
|
cd .. &&
|
|
rm -rf "$LFS_MPFR" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.20 ""$LFS_MPFR""" >> build.log &&
|
|
echo "$LFS_MPFR" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.21 ""$LFS_MPC""" >> build.log
|
|
|
|
tar xf "$LFS_MPC".tar.gz &&
|
|
cd "$LFS_MPC" &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--docdir=/usr/share/doc/mpc-1.3.1 &&
|
|
make &&
|
|
make html &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_MPC".log;
|
|
fi
|
|
make install &&
|
|
make install-html &&
|
|
cd .. &&
|
|
rm -rf "$LFS_MPC" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.21 ""$LFS_MPC""" >> build.log &&
|
|
echo "$LFS_MPC" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.22 ""$LFS_ATTR""" >> build.log
|
|
|
|
tar xf "$LFS_ATTR".tar.gz &&
|
|
cd "$LFS_ATTR" &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--sysconfdir=/etc \
|
|
--docdir=/usr/share/doc/attr-2.5.1 &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_ATTR".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_ATTR" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.22 ""$LFS_ATTR""" >> build.log &&
|
|
echo "$LFS_ATTR" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.23 ""$LFS_ACL""" >> build.log
|
|
|
|
tar xf "$LFS_ACL".tar.xz &&
|
|
cd "$LFS_ACL" &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--docdir=/usr/share/doc/acl-2.3.1 &&
|
|
make &&
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_ACL" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.23 ""$LFS_ACL""" >> build.log &&
|
|
echo "$LFS_ACL" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.24 ""$LFS_LIBCAP""" >> build.log
|
|
|
|
tar xf "$LFS_LIBCAP".tar.xz &&
|
|
cd "$LFS_LIBCAP" &&
|
|
sed -i '/install -m.*STA/d' libcap/Makefile &&
|
|
make prefix=/usr lib=lib &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make test | tee ../check-log_"$LFS_LIBCAP".log;
|
|
fi
|
|
make prefix=/usr lib=lib install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_LIBCAP" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.24 ""$LFS_LIBCAP""" >> build.log &&
|
|
echo "$LFS_LIBCAP" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.25 ""$LFS_SHADOW""" >> build.log
|
|
|
|
tar xf "$LFS_SHADOW".tar.xz &&
|
|
cd "$LFS_SHADOW" &&
|
|
sed -i 's/groups$(EXEEXT) //' src/Makefile.in &&
|
|
find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;
|
|
find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
|
|
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;
|
|
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
|
|
-e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@' \
|
|
-e 's:/var/spool/mail:/var/mail:' \
|
|
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
|
|
-i etc/login.defs &&
|
|
touch /usr/bin/passwd &&
|
|
./configure --sysconfdir=/etc \
|
|
--disable-static \
|
|
--with-group-name-max-length=32 &&
|
|
make &&
|
|
make exec_prefix=/usr install &&
|
|
make -C man install-man &&
|
|
pwconv &&
|
|
grpconv &&
|
|
mkdir -p /etc/default &&
|
|
useradd -D --gid 999 &&
|
|
# sed -i '/MAIL/s/yes/no/' /etc/default/useradd
|
|
echo root:root | chpasswd #Set the root password
|
|
echo "The password for the user root has been set to 'root'"
|
|
sleep 5
|
|
cd .. &&
|
|
rm -rf "$LFS_SHADOW" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.25 ""$LFS_SHADOW""" >> build.log &&
|
|
echo "$LFS_SHADOW" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.26 ""$LFS_GCC""" >> build.log
|
|
|
|
tar xf "$LFS_GCC".tar.xz &&
|
|
cd "$LFS_GCC" &&
|
|
case $(uname -m) in
|
|
x86_64)
|
|
sed -e '/m64=/s/lib64/lib/' \
|
|
-i.orig gcc/config/i386/t-linux64
|
|
;;
|
|
esac &&
|
|
mkdir -v build &&
|
|
cd build &&
|
|
../configure --prefix=/usr \
|
|
LD=ld \
|
|
--enable-languages=c,c++ \
|
|
--enable-default-pie \
|
|
--enable-default-ssp \
|
|
--disable-multilib \
|
|
--disable-bootstrap \
|
|
--with-system-zlib &&
|
|
make &&
|
|
ulimit -s 32768 &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
chown -Rv tester . &&
|
|
su tester -c "PATH=$PATH make -k -j""$JOBS"" check";
|
|
../contrib/test_summary | tee ../../check-log_"$LFS_GCC".log &&
|
|
../contrib/test_summary | grep -A7 Summ
|
|
fi
|
|
make install &&
|
|
chown -v -R root:root \
|
|
/usr/lib/gcc/$(gcc -dumpmachine)/12.2.0/include{,-fixed} &&
|
|
ln -svr /usr/bin/cpp /usr/lib &&
|
|
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.2.0/liblto_plugin.so \
|
|
/usr/lib/bfd-plugins/ &&
|
|
echo "Now that our final toolchain is in place, it is important to again ensure that compiling and linking will work as expected. We do this by performing some sanity checks"
|
|
echo "There should be no errors, and the output of the last command will be (allowing for platform-specific differences in the dynamic linker name):"
|
|
echo "[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]"
|
|
echo 'int main(){}' > dummy.c &&
|
|
cc dummy.c -v -Wl,--verbose &> dummy.log &&
|
|
readelf -l a.out | grep ': /lib'
|
|
echo "Now make sure that we're set up to use the correct start files"
|
|
echo "The output should be:"
|
|
echo "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o succeeded"
|
|
echo "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o succeeded"
|
|
echo "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o succeeded"
|
|
grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log
|
|
echo "Verify that the compiler is searching for the correct header files"
|
|
echo "The output should be:"
|
|
echo "#include <...> search starts here:"
|
|
echo" /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include"
|
|
echo" /usr/local/include"
|
|
echo" /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed"
|
|
echo" /usr/include"
|
|
grep -B4 '^ /usr/include' dummy.log
|
|
echo "Verify that the new linker is being used with the correct search paths"
|
|
echo "References to paths that have components with '-linux-gnu' should be ignored, but otherwise the output should be:"
|
|
echo 'SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")'
|
|
echo 'SEARCH_DIR("/usr/local/lib64")'
|
|
echo 'SEARCH_DIR("/lib64")'
|
|
echo 'SEARCH_DIR("/usr/lib64")'
|
|
echo 'SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")'
|
|
echo 'SEARCH_DIR("/usr/local/lib")'
|
|
echo 'SEARCH_DIR("/lib")"'
|
|
echo 'SEARCH_DIR("/usr/lib");'
|
|
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
|
|
echo "Next make sure that we're using the correct libc"
|
|
echo "The output should be:"
|
|
echo "attempt to open /usr/lib/libc.so.6 succeeded"
|
|
grep "/lib.*/libc.so.6 " dummy.log
|
|
echo "Make sure LFS_GCC is using the correct dynamic linker"
|
|
echo "The output should be (allowing for platform-specific differences in dynamic linker name):"
|
|
echo "found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2"
|
|
grep found dummy.log
|
|
sleep 5
|
|
rm -v dummy.c a.out dummy.log &&
|
|
mkdir -pv /usr/share/gdb/auto-load/usr/lib &&
|
|
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib &&
|
|
cd ../.. &&
|
|
rm -rf "$LFS_GCC" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.26 ""$LFS_GCC""" >> build.log &&
|
|
echo "$LFS_GCC" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.27 ""$LFS_PKGCONFIG""" >> build.log
|
|
|
|
tar xf "$LFS_PKGCONFIG".tar.gz &&
|
|
cd "$LFS_PKGCONFIG" &&
|
|
./configure --prefix=/usr \
|
|
--with-internal-glib \
|
|
--disable-host-tool \
|
|
--docdir=/usr/share/doc/pkg-config-0.29.2 &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_PKGCONFIG".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_PKGCONFIG" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.27 ""$LFS_PKGCONFIG""" >> build.log &&
|
|
echo "$LFS_PKGCONFIG" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.28 ""$LFS_NCURSES""" >> build.log
|
|
|
|
tar xf "$LFS_NCURSES".tar.gz &&
|
|
cd "$LFS_NCURSES" &&
|
|
./configure --prefix=/usr \
|
|
--mandir=/usr/share/man \
|
|
--with-shared \
|
|
--without-debug \
|
|
--without-normal \
|
|
--with-cxx-shared \
|
|
--enable-pc-files \
|
|
--enable-widec \
|
|
--with-pkg-config-libdir=/usr/lib/pkgconfig &&
|
|
make &&
|
|
make DESTDIR=$PWD/dest install &&
|
|
install -vm755 dest/usr/lib/libncursesw.so.6.4 /usr/lib &&
|
|
rm -v dest/usr/lib/libncursesw.so.6.4 &&
|
|
cp -av dest/* / &&
|
|
for lib in ncurses form panel menu ; do
|
|
rm -vf /usr/lib/lib${lib}.so
|
|
echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
|
|
ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
|
|
done &&
|
|
rm -vf /usr/lib/libcursesw.so &&
|
|
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so &&
|
|
ln -sfv libncurses.so /usr/lib/libcurses.so &&
|
|
mkdir -pv /usr/share/doc/ncurses-6.4 &&
|
|
cp -v -R doc/* /usr/share/doc/ncurses-6.4 &&
|
|
cd .. &&
|
|
rm -rf "$LFS_NCURSES" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.28 ""$LFS_NCURSES""" >> build.log &&
|
|
echo "$LFS_NCURSES" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.29 ""$LFS_SED""" >> build.log
|
|
|
|
tar xf "$LFS_SED".tar.xz &&
|
|
cd "$LFS_SED" &&
|
|
./configure --prefix=/usr &&
|
|
make &&
|
|
make html &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
chown -Rv tester . &&
|
|
su tester -c "PATH=$PATH make check" | tee ../check-log_"$LFS_GCC".log;
|
|
fi
|
|
make install &&
|
|
install -d -m755 /usr/share/doc/sed-4.9 &&
|
|
install -m644 doc/sed.html /usr/share/doc/sed-4.9 &&
|
|
cd .. &&
|
|
rm -rf "$LFS_SED" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.29 ""$LFS_SED""" >> build.log &&
|
|
echo "$LFS_SED" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.30 ""$LFS_PSMISC""" >> build.log
|
|
|
|
tar xf "$LFS_PSMISC".tar.xz &&
|
|
cd "$LFS_PSMISC" &&
|
|
./configure --prefix=/usr &&
|
|
make &&
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_PSMISC" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.30 ""$LFS_PSMISC""" >> build.log &&
|
|
echo "$LFS_PSMISC" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.31 ""$LFS_GETTEXT""" >> build.log
|
|
|
|
tar xf "$LFS_GETTEXT".tar.xz &&
|
|
cd "$LFS_GETTEXT" &&
|
|
./configure --prefix=/usr \
|
|
--disable-static \
|
|
--docdir=/usr/share/doc/gettext-0.21.1 &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_GCC".log;
|
|
fi
|
|
make install &&
|
|
chmod -v 0755 /usr/lib/preloadable_libintl.so &&
|
|
cd .. &&
|
|
rm -rf "$LFS_GETTEXT" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.31 ""$LFS_GETTEXT""" >> build.log &&
|
|
echo "$LFS_GETTEXT" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.32 ""$LFS_BISON""" >> build.log
|
|
|
|
tar xf "$LFS_BISON".tar.xz &&
|
|
cd "$LFS_BISON" &&
|
|
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_BISON".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_BISON" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.32 ""$LFS_BISON""" >> build.log &&
|
|
echo "$LFS_BISON" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.33 ""$LFS_GREP""" >> build.log
|
|
|
|
tar xf "$LFS_GREP".tar.xz &&
|
|
cd "$LFS_GREP" &&
|
|
sed -i "s/echo/#echo/" src/egrep.sh &&
|
|
./configure --prefix=/usr &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
make check | tee ../check-log_"$LFS_GREP".log;
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_GREP" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.33 ""$LFS_GREP""" >> build.log &&
|
|
echo "$LFS_GREP" >> /installed.txt
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Starting 8.34 ""$LFS_BASH""" >> build.log
|
|
|
|
tar xf "$LFS_BASH".tar.gz &&
|
|
cd "$LFS_BASH" &&
|
|
./configure --prefix=/usr \
|
|
--without-bash-malloc \
|
|
--with-installed-readline \
|
|
--docdir=/usr/share/doc/bash-5.2.15 &&
|
|
make &&
|
|
if [ "$MAKECHECK" = TRUE ]; then
|
|
chown -Rv tester . &&
|
|
su -s /usr/bin/expect tester << EOF | tee ../check-log_"$LFS_BASH".log;
|
|
set timeout -1
|
|
spawn make tests
|
|
expect eof
|
|
lassign [wait] _ _ _ value
|
|
exit $value
|
|
EOF
|
|
fi
|
|
make install &&
|
|
cd .. &&
|
|
rm -rf "$LFS_BASH" &&
|
|
|
|
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
|
|
echo "$CURRENT_DATE_TIME" >> build.log
|
|
echo "Finished 8.34 ""$LFS_BASH""" >> build.log &&
|
|
echo "$LFS_BASH" >> /installed.txt
|
|
|
|
echo "Executing new bash, continue with chapter 8 p2:"
|
|
echo "bash chap8p2.sh"
|
|
exec /usr/bin/bash --login
|