version upgrade

This commit is contained in:
tux 2024-09-15 12:36:07 +02:00
parent 25dab41a41
commit a19c771df1
11 changed files with 734 additions and 538 deletions

View File

@ -36,6 +36,7 @@ edit **vars.sh** and change the options to suit the desired needs:
- PAPERSIZE: the default paper size used by the groff package - PAPERSIZE: the default paper size used by the groff package
- MAKECHECK: to run the checks for each package in addition to the build and - MAKECHECK: to run the checks for each package in addition to the build and
install process install process
- TMPASTMPFS: if the mountpoint for /tmp should be set up as tmpfs by systemd
start with the LFS chapters: start with the LFS chapters:
@ -65,7 +66,7 @@ environment
continue with the LFS chapters: continue with the LFS chapters:
- 10.2. Creating the /etc/fstab File - 10.2. Creating the /etc/fstab File
- 10.3. Linux-6.1.11 - 10.3. Linux
- 10.4. Using LFS_GRUB to Set Up the Boot Process - 10.4. Using LFS_GRUB to Set Up the Boot Process
- 11.1. The End - 11.1. The End

View File

@ -19,6 +19,24 @@ cat > /etc/profile << "EOF"
# ~/.bash_profile. Personal aliases and functions should go into # ~/.bash_profile. Personal aliases and functions should go into
# ~/.bashrc. # ~/.bashrc.
# LFS
for i in $(locale); do
unset ${i%=*}
done
if [[ "$TERM" = linux ]]; then
export LANG=C.UTF-8
else
source /etc/locale.conf
for i in $(locale); do
key=${i%=*}
if [[ -v $key ]]; then
export $key
fi
done
fi
# Functions to help us manage paths. Second argument is the name of the # Functions to help us manage paths. Second argument is the name of the
# path variable to be modified (default: PATH) # path variable to be modified (default: PATH)
pathremove () { pathremove () {

View File

@ -15,7 +15,9 @@ cd build &&
--target=$LFS_TGT \ --target=$LFS_TGT \
--disable-nls \ --disable-nls \
--enable-gprofng=no \ --enable-gprofng=no \
--disable-werror && --disable-werror \
--enable-new-dtags \
--enable-default-hash-style=gnu &&
make && make &&
make install && make install &&
cd ../.. && cd ../.. &&
@ -48,7 +50,7 @@ cd build &&
../configure \ ../configure \
--target=$LFS_TGT \ --target=$LFS_TGT \
--prefix=$LFS/tools \ --prefix=$LFS/tools \
--with-glibc-version=2.37 \ --with-glibc-version=2.40 \
--with-sysroot=$LFS \ --with-sysroot=$LFS \
--with-newlib \ --with-newlib \
--without-headers \ --without-headers \
@ -69,7 +71,7 @@ make &&
make install && make install &&
cd .. && cd .. &&
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h && $(dirname $($LFS_TGT-gcc -print-libgcc-file-name))/install-tools/include/limits.h &&
cd .. && cd .. &&
rm -rf "$LFS_GCC" && rm -rf "$LFS_GCC" &&
@ -115,8 +117,9 @@ echo "rootsbindir=/usr/sbin" > configparms &&
--prefix=/usr \ --prefix=/usr \
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(../scripts/config.guess) \ --build=$(../scripts/config.guess) \
--enable-kernel=3.2 \ --enable-kernel=4.19 \
--with-headers=$LFS/usr/include \ --with-headers=$LFS/usr/include \
--disable-nscd \
libc_cv_slibdir=/usr/lib && libc_cv_slibdir=/usr/lib &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
@ -127,7 +130,6 @@ readelf -l a.out | grep ld-linux
echo 'If everything is working correctly, there should be no errors, and the output of the last command will be of the form: [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]' echo 'If everything is working correctly, there should be no errors, and the output of the last command will be of the form: [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]'
sleep 10 sleep 10
rm -v a.out && rm -v a.out &&
$LFS/tools/libexec/gcc/$LFS_TGT/12.2.0/install-tools/mkheaders &&
cd ../.. && cd ../.. &&
rm -rf "$LFS_GLIBC" && rm -rf "$LFS_GLIBC" &&
@ -150,10 +152,10 @@ cd build &&
--disable-multilib \ --disable-multilib \
--disable-nls \ --disable-nls \
--disable-libstdcxx-pch \ --disable-libstdcxx-pch \
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/12.2.0 && --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/14.2.0 &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
rm -v $LFS/usr/lib/lib{stdc++,stdc++fs,supc++}.la && rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la &&
cd ../.. && cd ../.. &&
rm -rf "$LFS_GCC" && rm -rf "$LFS_GCC" &&
@ -202,12 +204,13 @@ popd
--with-cxx-shared \ --with-cxx-shared \
--without-debug \ --without-debug \
--without-ada \ --without-ada \
--disable-stripping \ --disable-stripping &&
--enable-widec &&
make && make &&
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install && make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install &&
echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so && ln -sv libncursesw.so $LFS/usr/lib/libncurses.so &&
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i $LFS/usr/include/curses.h &&
cd .. && cd .. &&
rm -rf "$LFS_NCURSES" && rm -rf "$LFS_NCURSES" &&
@ -224,7 +227,8 @@ cd "$LFS_BASH" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--build=$(sh support/config.guess) \ --build=$(sh support/config.guess) \
--host=$LFS_TGT \ --host=$LFS_TGT \
--without-bash-malloc && --without-bash-malloc \
bash_cv_strtold_broken=no &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
ln -sv bash $LFS/bin/sh && ln -sv bash $LFS/bin/sh &&
@ -265,7 +269,9 @@ echo "Starting 6.6. ""$LFS_DIFFUTILS""" >> build.log
tar xf "$LFS_DIFFUTILS".tar.xz && tar xf "$LFS_DIFFUTILS".tar.xz &&
cd "$LFS_DIFFUTILS" && cd "$LFS_DIFFUTILS" &&
./configure --prefix=/usr --host=$LFS_TGT && ./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(./build-aux/config.guess) &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
cd .. && cd .. &&
@ -286,7 +292,7 @@ pushd build
../configure --disable-bzlib \ ../configure --disable-bzlib \
--disable-libseccomp \ --disable-libseccomp \
--disable-xzlib \ --disable-xzlib \
--disable-zlib --disable-zlib &&
make make
popd popd
./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) && ./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) &&
@ -310,7 +316,6 @@ cd "$LFS_FINDUTILS" &&
--localstatedir=/var/lib/locate \ --localstatedir=/var/lib/locate \
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(build-aux/config.guess) && --build=$(build-aux/config.guess) &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
cd .. && cd .. &&
@ -330,7 +335,6 @@ sed -i 's/extras//' Makefile.in &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(build-aux/config.guess) && --build=$(build-aux/config.guess) &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
cd .. && cd .. &&
@ -347,7 +351,8 @@ echo "Starting 6.10. ""$LFS_GREP""" >> build.log
tar xf "$LFS_GREP".tar.xz && tar xf "$LFS_GREP".tar.xz &&
cd "$LFS_GREP" && cd "$LFS_GREP" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--host=$LFS_TGT && --host=$LFS_TGT \
--build=$(./build-aux/config.guess) &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
cd .. && cd .. &&
@ -379,9 +384,6 @@ echo "Starting 6.12. ""$LFS_MAKE""" >> build.log
tar xf "$LFS_MAKE".tar.gz && tar xf "$LFS_MAKE".tar.gz &&
cd "$LFS_MAKE" && cd "$LFS_MAKE" &&
sed -e '/ifdef SIGPIPE/,+2 d' \
-e '/undef FATAL_SIG/i FATAL_SIG (SIGPIPE);' \
-i src/main.c &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--without-guile \ --without-guile \
--host=$LFS_TGT \ --host=$LFS_TGT \
@ -420,7 +422,8 @@ echo "Starting 6.14. ""$LFS_SED""" >> build.log
tar xf "$LFS_SED".tar.xz && tar xf "$LFS_SED".tar.xz &&
cd "$LFS_SED" && cd "$LFS_SED" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--host=$LFS_TGT && --host=$LFS_TGT \
--build=$(./build-aux/config.guess) &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
cd .. && cd .. &&
@ -459,7 +462,7 @@ cd "$LFS_XZ" &&
--host=$LFS_TGT \ --host=$LFS_TGT \
--build=$(build-aux/config.guess) \ --build=$(build-aux/config.guess) \
--disable-static \ --disable-static \
--docdir=/usr/share/doc/"$LFS_XZ" && --docdir=/usr/share/doc/xz-5.6.2 &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
@ -488,10 +491,12 @@ cd build &&
--enable-shared \ --enable-shared \
--enable-gprofng=no \ --enable-gprofng=no \
--disable-werror \ --disable-werror \
--enable-64-bit-bfd && --enable-64-bit-bfd \
--enable-new-dtags \
--enable-default-hash-style=gnu &&
make && make &&
make DESTDIR=$LFS install && make DESTDIR=$LFS install &&
rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.{a,la} && rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la} &&
cd ../.. && cd ../.. &&
rm -rf "$LFS_BINUTILS" && rm -rf "$LFS_BINUTILS" &&
@ -534,6 +539,7 @@ cd build &&
--disable-libatomic \ --disable-libatomic \
--disable-libgomp \ --disable-libgomp \
--disable-libquadmath \ --disable-libquadmath \
--disable-libsanitizer \
--disable-libssp \ --disable-libssp \
--disable-libvtv \ --disable-libvtv \
--enable-languages=c,c++ && --enable-languages=c,c++ &&

View File

@ -7,6 +7,7 @@ mkdir -pv /etc/{opt,sysconfig} &&
mkdir -pv /lib/firmware && mkdir -pv /lib/firmware &&
mkdir -pv /media/{floppy,cdrom} && mkdir -pv /media/{floppy,cdrom} &&
mkdir -pv /usr/{,local/}{include,src} && mkdir -pv /usr/{,local/}{include,src} &&
mkdir -pv /usr/lib/locale &&
mkdir -pv /usr/local/{bin,lib,sbin} && mkdir -pv /usr/local/{bin,lib,sbin} &&
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} && mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} &&
mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} && mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} &&
@ -55,7 +56,6 @@ dialout:x:10:
audio:x:11: audio:x:11:
video:x:12: video:x:12:
utmp:x:13: utmp:x:13:
usb:x:14:
cdrom:x:15: cdrom:x:15:
adm:x:16: adm:x:16:
messagebus:x:18: messagebus:x:18:
@ -76,6 +76,7 @@ wheel:x:97:
users:x:999: users:x:999:
nogroup:x:65534: nogroup:x:65534:
EOF EOF
localedef -i C -f UTF-8 C.UTF-8 &&
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd && echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd &&
echo "tester:x:101:" >> /etc/group && echo "tester:x:101:" >> /etc/group &&
install -o tester -d /home/tester && install -o tester -d /home/tester &&

View File

@ -6,6 +6,7 @@ touch /var/log/{btmp,lastlog,faillog,wtmp} &&
chgrp -v utmp /var/log/lastlog && chgrp -v utmp /var/log/lastlog &&
chmod -v 664 /var/log/lastlog && chmod -v 664 /var/log/lastlog &&
chmod -v 600 /var/log/btmp && chmod -v 600 /var/log/btmp &&
cd /sources && cd /sources &&
chown root:root build.log && chown root:root build.log &&
@ -48,15 +49,16 @@ echo "Starting 7.9 ""$LFS_PERL""" >> build.log
tar xf "$LFS_PERL".tar.xz && tar xf "$LFS_PERL".tar.xz &&
cd "$LFS_PERL" && cd "$LFS_PERL" &&
sh Configure -des \ sh Configure -des \
-Dprefix=/usr \ -D prefix=/usr \
-Dvendorprefix=/usr \ -D vendorprefix=/usr \
-Dprivlib=/usr/lib/perl5/5.36/core_perl \ -D useshrplib \
-Darchlib=/usr/lib/perl5/5.36/core_perl \ -D privlib=/usr/lib/perl5/5.40/core_perl \
-Dsitelib=/usr/lib/perl5/5.36/site_perl \ -D archlib=/usr/lib/perl5/5.40/core_perl \
-Dsitearch=/usr/lib/perl5/5.36/site_perl \ -D sitelib=/usr/lib/perl5/5.40/site_perl \
-Dvendorlib=/usr/lib/perl5/5.36/vendor_perl \ -D sitearch=/usr/lib/perl5/5.40/site_perl \
-Dvendorarch=/usr/lib/perl5/5.36/vendor_perl && -D vendorlib=/usr/lib/perl5/5.40/vendor_perl \
-D vendorarch=/usr/lib/perl5/5.40/vendor_perl &&
make && make &&
make install && make install &&
cd .. && cd .. &&
@ -107,19 +109,20 @@ echo "Starting 7.12 ""$LFS_UTILLINUX""" >> build.log
tar xf "$LFS_UTILLINUX".tar.xz && tar xf "$LFS_UTILLINUX".tar.xz &&
cd "$LFS_UTILLINUX" && cd "$LFS_UTILLINUX" &&
mkdir -pv /var/lib/hwclock && mkdir -pv /var/lib/hwclock &&
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ ./configure --libdir=/usr/lib \
--libdir=/usr/lib \ --runstatedir=/run \
--docdir=/usr/share/doc/util-linux-2.38.1 \ --disable-chfn-chsh \
--disable-chfn-chsh \ --disable-login \
--disable-login \ --disable-nologin \
--disable-nologin \ --disable-su \
--disable-su \ --disable-setpriv \
--disable-setpriv \ --disable-runuser \
--disable-runuser \ --disable-pylibmount \
--disable-pylibmount \ --disable-static \
--disable-static \ --disable-liblastlog2 \
--without-python \ --without-python \
runstatedir=/run && ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-2.40.2 &&
make && make &&
make install && make install &&
cd .. && cd .. &&

View File

@ -8,6 +8,7 @@ echo "Starting 8.3 ""$LFS_MANPAGES""" >> build.log
tar xf "$LFS_MANPAGES".tar.xz && tar xf "$LFS_MANPAGES".tar.xz &&
cd "$LFS_MANPAGES" && cd "$LFS_MANPAGES" &&
rm -v man3/crypt* &&
make prefix=/usr install && make prefix=/usr install &&
cd .. && cd .. &&
rm -rf "$LFS_MANPAGES" && rm -rf "$LFS_MANPAGES" &&
@ -38,17 +39,15 @@ echo "Starting 8.5 ""$LFS_GLIBC""" >> build.log
tar xf "$LFS_GLIBC".tar.xz && tar xf "$LFS_GLIBC".tar.xz &&
cd "$LFS_GLIBC" && cd "$LFS_GLIBC" &&
patch -Np1 -i ../glibc-2.37-fhs-1.patch && patch -Np1 -i ../"$LFS_GLIBC"-fhs-1.patch &&
sed '/width -=/s/workend - string/number_length/' \
-i stdio-common/vfprintf-process-arg.c &&
mkdir -v build && mkdir -v build &&
cd build && cd build &&
echo "rootsbindir=/usr/sbin" > configparms && echo "rootsbindir=/usr/sbin" > configparms &&
../configure --prefix=/usr \ ../configure --prefix=/usr \
--disable-werror \ --disable-werror \
--enable-kernel=3.2 \ --enable-kernel=4.19 \
--enable-stack-protector=strong \ --enable-stack-protector=strong \
--with-headers=/usr/include \ --disable-nscd \
libc_cv_slibdir=/usr/lib && libc_cv_slibdir=/usr/lib &&
make && make &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
@ -58,21 +57,17 @@ touch /etc/ld.so.conf &&
sed '/test-installation/s@$(LFS_PERL)@echo not running@' -i ../Makefile && sed '/test-installation/s@$(LFS_PERL)@echo not running@' -i ../Makefile &&
make install && make install &&
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd && sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd &&
cp -v ../nscd/nscd.conf /etc/nscd.conf && make localedata/install-locales &&
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 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 localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
cat > /etc/nsswitch.conf << "EOF" cat > /etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf # Begin /etc/nsswitch.conf
passwd: files passwd: files systemd
group: files group: files systemd
shadow: files shadow: files systemd
hosts: files dns hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
networks: files networks: files
protocols: files protocols: files
@ -82,7 +77,7 @@ rpc: files
# End /etc/nsswitch.conf # End /etc/nsswitch.conf
EOF EOF
tar -xf ../../tzdata2022g.tar.gz && tar -xf ../../tzdata2024a.tar.gz &&
ZONEINFO=/usr/share/zoneinfo && ZONEINFO=/usr/share/zoneinfo &&
mkdir -pv $ZONEINFO/{posix,right} && mkdir -pv $ZONEINFO/{posix,right} &&
for tz in etcetera southamerica northamerica europe africa antarctica \ for tz in etcetera southamerica northamerica europe africa antarctica \
@ -94,8 +89,8 @@ done &&
cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO && cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO &&
zic -d $ZONEINFO -p America/New_York && zic -d $ZONEINFO -p America/New_York &&
unset ZONEINFO && unset ZONEINFO &&
ln -sfv /usr/share/zoneinfo/UTC /etc/localtime && ln -sfv /usr/share/zoneinfo/UTC /etc/localtime &&
cat > /etc/ld.so.conf << "EOF" cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf # Begin /etc/ld.so.conf
/usr/local/lib /usr/local/lib
/opt/lib /opt/lib
@ -172,7 +167,7 @@ tar xf "$LFS_XZ".tar.xz &&
cd "$LFS_XZ" && cd "$LFS_XZ" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--disable-static \ --disable-static \
--docdir=/usr/share/doc/xz-5.4.1 && --docdir=/usr/share/doc/xz-5.6.2 &&
make && make &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../check-log_"$LFS_XZ".log; make check | tee ../check-log_"$LFS_XZ".log;
@ -188,7 +183,26 @@ echo "$LFS_XZ" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.9 ""$LFS_ZSTD""" >> build.log echo "Starting 8.9 ""$LFS_LZ4""" >> build.log
tar xf "$LFS_LZ4".tar.gz &&
cd "$LFS_LZ4" &&
make BUILD_STATIC=no PREFIX=/usr &&
if [ "$MAKECHECK" = TRUE ]; then
make -j1 check | tee ../check-log_"$LFS_LZ4".log;
fi
make BUILD_STATIC=no PREFIX=/usr install &&
cd .. &&
rm -rf "$LFS_LZ4" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.9 ""$LFS_LZ4""" >> build.log &&
echo "$LFS_LZ4" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.10 ""$LFS_ZSTD""" >> build.log
tar xf "$LFS_ZSTD".tar.gz && tar xf "$LFS_ZSTD".tar.gz &&
cd "$LFS_ZSTD" && cd "$LFS_ZSTD" &&
@ -203,12 +217,12 @@ rm -rf "$LFS_ZSTD" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.9 ""$LFS_ZSTD""" >> build.log && echo "Finished 8.10 ""$LFS_ZSTD""" >> build.log &&
echo "$LFS_ZSTD" >> /installed.txt echo "$LFS_ZSTD" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.10 ""$LFS_FILE""" >> build.log echo "Starting 8.11 ""$LFS_FILE""" >> build.log
tar xf "$LFS_FILE".tar.gz && tar xf "$LFS_FILE".tar.gz &&
cd "$LFS_FILE" && cd "$LFS_FILE" &&
@ -223,36 +237,35 @@ rm -rf "$LFS_FILE" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.10 ""$LFS_FILE""" >> build.log && echo "Finished 8.11 ""$LFS_FILE""" >> build.log &&
echo "$LFS_FILE" >> /installed.txt echo "$LFS_FILE" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.11 ""$LFS_READLINE""" >> build.log echo "Starting 8.12 ""$LFS_READLINE""" >> build.log
tar xf "$LFS_READLINE".tar.gz && tar xf "$LFS_READLINE".tar.gz &&
cd "$LFS_READLINE" && cd "$LFS_READLINE" &&
sed -i '/MV.*old/d' Makefile.in && sed -i '/MV.*old/d' Makefile.in &&
sed -i '/{OLDSUFF}/c:' support/shlib-install && sed -i '/{OLDSUFF}/c:' support/shlib-install &&
patch -Np1 -i ../readline-8.2-upstream_fix-1.patch &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--disable-static \ --disable-static \
--with-curses \ --with-curses \
--docdir=/usr/share/doc/readline-8.2 && --docdir=/usr/share/doc/readline-8.2.13 &&
make SHLIB_LIBS="-lncursesw" && make SHLIB_LIBS="-lncursesw" &&
make SHLIB_LIBS="-lncursesw" install && make SHLIB_LIBS="-lncursesw" install &&
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2 && install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2.13 &&
cd .. && cd .. &&
rm -rf "$LFS_READLINE" && rm -rf "$LFS_READLINE" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.11 ""$LFS_READLINE""" >> build.log && echo "Finished 8.12 ""$LFS_READLINE""" >> build.log &&
echo "$LFS_READLINE" >> /installed.txt echo "$LFS_READLINE" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.12 ""$LFS_M4""" >> build.log echo "Starting 8.13 ""$LFS_M4""" >> build.log
tar xf "$LFS_M4".tar.xz && tar xf "$LFS_M4".tar.xz &&
cd "$LFS_M4" && cd "$LFS_M4" &&
@ -267,12 +280,12 @@ rm -rf "$LFS_M4" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.12 ""$LFS_M4""" >> build.log && echo "Finished 8.13 ""$LFS_M4""" >> build.log &&
echo "$LFS_M4" >> /installed.txt echo "$LFS_M4" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.13 ""$LFS_BC""" >> build.log echo "Starting 8.14 ""$LFS_BC""" >> build.log
tar xf "$LFS_BC".tar.xz && tar xf "$LFS_BC".tar.xz &&
cd "$LFS_BC" && cd "$LFS_BC" &&
@ -287,12 +300,12 @@ rm -rf "$LFS_BC" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.13 ""$LFS_BC""" >> build.log echo "Finished 8.14 ""$LFS_BC""" >> build.log
echo "$LFS_BC" >> /installed.txt echo "$LFS_BC" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.14 ""$LFS_FLEX""" >> build.log echo "Starting 8.15 ""$LFS_FLEX""" >> build.log
tar xf "$LFS_FLEX".tar.gz && tar xf "$LFS_FLEX".tar.gz &&
cd "$LFS_FLEX" && cd "$LFS_FLEX" &&
@ -304,38 +317,40 @@ if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../check-log_"$LFS_FLEX".log; make check | tee ../check-log_"$LFS_FLEX".log;
fi fi
make install && make install &&
ln -sv flex /usr/bin/lex && ln -sv flex /usr/bin/lex &&
ln -sv flex.1 /usr/share/man/man1/lex.1 &&
cd .. && cd .. &&
rm -rf "$LFS_FLEX" && rm -rf "$LFS_FLEX" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.14 ""$LFS_FLEX""" >> build.log && echo "Finished 8.15 ""$LFS_FLEX""" >> build.log &&
echo "$LFS_FLEX" >> /installed.txt echo "$LFS_FLEX" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.15 ""$LFS_TCL""" >> build.log echo "Starting 8.16 ""$LFS_TCL""" >> build.log
tar xf "$LFS_TCL"-src.tar.gz && tar xf "$LFS_TCL"-src.tar.gz &&
cd "$LFS_TCL" && cd "$LFS_TCL" &&
SRCDIR=$(pwd) && SRCDIR=$(pwd) &&
cd unix && cd unix &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--mandir=/usr/share/man && --mandir=/usr/share/man \
--disable-rpath &&
make && make &&
sed -e "s|$SRCDIR/unix|/usr/lib|" \ sed -e "s|$SRCDIR/unix|/usr/lib|" \
-e "s|$SRCDIR|/usr/include|" \ -e "s|$SRCDIR|/usr/include|" \
-i tclConfig.sh && -i tclConfig.sh &&
sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.5|/usr/lib/tdbc1.1.5|" \ sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.7|/usr/lib/tdbc1.1.7|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.5/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.7/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.5/library|/usr/lib/tcl8.6|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.7/library|/usr/lib/tcl8.6|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.5|/usr/include|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.7|/usr/include|" \
-i pkgs/tdbc1.1.5/tdbcConfig.sh && -i pkgs/tdbc1.1.7/tdbcConfig.sh &&
sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.3|/usr/lib/itcl4.2.3|" \ sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.4|/usr/lib/itcl4.2.4|" \
-e "s|$SRCDIR/pkgs/itcl4.2.3/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/itcl4.2.4/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/itcl4.2.3|/usr/include|" \ -e "s|$SRCDIR/pkgs/itcl4.2.4|/usr/include|" \
-i pkgs/itcl4.2.3/itclConfig.sh && -i pkgs/itcl4.2.4/itclConfig.sh &&
unset SRCDIR && unset SRCDIR &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
make test | tee ../../check-log_"$LFS_TCL".log; make test | tee ../../check-log_"$LFS_TCL".log;
@ -346,26 +361,28 @@ make install-private-headers &&
ln -sfv tclsh8.6 /usr/bin/tclsh && ln -sfv tclsh8.6 /usr/bin/tclsh &&
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 && mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 &&
cd .. && cd .. &&
tar -xf ../tcl8.6.13-html.tar.gz --strip-components=1 && tar -xf ../tcl8.6.14-html.tar.gz --strip-components=1 &&
mkdir -v -p /usr/share/doc/tcl-8.6.13 && mkdir -v -p /usr/share/doc/tcl-8.6.14 &&
cp -v -r ./html/* /usr/share/doc/tcl-8.6.13 && cp -v -r ./html/* /usr/share/doc/tcl-8.6.14 &&
cd .. && cd .. &&
rm -rf "$LFS_TCL" && rm -rf "$LFS_TCL" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.15 ""$LFS_TCL""" >> build.log && echo "Finished 8.16 ""$LFS_TCL""" >> build.log &&
echo "$LFS_TCL" >> /installed.txt echo "$LFS_TCL" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.16 ""$LFS_EXPECT""" >> build.log echo "Starting 8.17 ""$LFS_EXPECT""" >> build.log
tar xf "$LFS_EXPECT".tar.gz && tar xf "$LFS_EXPECT".tar.gz &&
cd "$LFS_EXPECT" && cd "$LFS_EXPECT" &&
patch -Np1 -i ../$LFS_EXPECT-gcc14-1.patch &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--with-tcl=/usr/lib \ --with-tcl=/usr/lib \
--enable-shared \ --enable-shared \
--disable-rpath \
--mandir=/usr/share/man \ --mandir=/usr/share/man \
--with-tclinclude=/usr/include && --with-tclinclude=/usr/include &&
make && make &&
@ -374,16 +391,17 @@ if [ "$MAKECHECK" = TRUE ]; then
fi fi
make install && make install &&
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib && ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib &&
cd .. && rm -rf "$LFS_EXPECT" && cd .. &&
rm -rf "$LFS_EXPECT" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.16 ""$LFS_EXPECT""" >> build.log && echo "Finished 8.17 ""$LFS_EXPECT""" >> build.log &&
echo "$LFS_EXPECT" >> /installed.txt echo "$LFS_EXPECT" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.17 ""$LFS_DEJAGNU""" >> build.log echo "Starting 8.18 ""$LFS_DEJAGNU""" >> build.log
tar xf "$LFS_DEJAGNU".tar.gz && tar xf "$LFS_DEJAGNU".tar.gz &&
cd "$LFS_DEJAGNU" && cd "$LFS_DEJAGNU" &&
@ -392,30 +410,47 @@ cd build &&
../configure --prefix=/usr && ../configure --prefix=/usr &&
makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi && makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi &&
makeinfo --plaintext -o doc/dejagnu.txt ../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 if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../../check-log_"$LFS_DEJAGNU".log; make check | tee ../../check-log_"$LFS_DEJAGNU".log;
fi fi
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 &&
cd ../.. && cd ../.. &&
rm -rf "$LFS_DEJAGNU" && rm -rf "$LFS_DEJAGNU" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.17 ""$LFS_DEJAGNU""" >> build.log && echo "Finished 8.18 ""$LFS_DEJAGNU""" >> build.log &&
echo "$LFS_DEJAGNU" >> /installed.txt echo "$LFS_DEJAGNU" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.18 ""$LFS_BINUTILS""" >> build.log echo "Starting 8.19 ""$LFS_PKGCONF""" >> build.log
tar xf "$LFS_PKGCONF".tar.xz &&
cd "$LFS_PKGCONF" &&
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/pkgconf-2.3.0 &&
make &&
make install &&
ln -sv pkgconf /usr/bin/pkg-config &&
ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1 &&
cd ../.. &&
rm -rf "$LFS_PKGCONF" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.19 ""$LFS_PKGCONF""" >> build.log &&
echo "$LFS_PKGCONF" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.20 ""$LFS_BINUTILS""" >> build.log
tar xf "$LFS_BINUTILS".tar.xz && tar xf "$LFS_BINUTILS".tar.xz &&
cd "$LFS_BINUTILS" && 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 && mkdir -v build &&
cd build && cd build &&
../configure --prefix=/usr \ ../configure --prefix=/usr \
@ -426,33 +461,34 @@ cd build &&
--enable-shared \ --enable-shared \
--disable-werror \ --disable-werror \
--enable-64-bit-bfd \ --enable-64-bit-bfd \
--with-system-zlib && --enable-new-dtags \
--with-system-zlib \
--enable-default-hash-style=gnu &&
make tooldir=/usr && make tooldir=/usr &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
make -k check | tee ../../check-log_"$LFS_BINUTILS".log; make -k check | tee ../../check-log_"$LFS_BINUTILS".log;
grep '^FAIL:' $(find -name '*.log') grep '^FAIL:' $(find -name '*.log')
fi fi
make tooldir=/usr install && make tooldir=/usr install &&
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,sframe,opcodes}.a && rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a &&
rm -fv /usr/share/man/man1/{gprofng,gp-*}.1 &&
cd ../.. && cd ../.. &&
rm -rf "$LFS_BINUTILS" && rm -rf "$LFS_BINUTILS" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.18 ""$LFS_BINUTILS""" >> build.log && echo "Finished 8.20 ""$LFS_BINUTILS""" >> build.log &&
echo "$LFS_BINUTILS" >> /installed.txt echo "$LFS_BINUTILS" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.19 ""$LFS_GMP""" >> build.log echo "Starting 8.21 ""$LFS_GMP""" >> build.log
tar xf "$LFS_GMP".tar.xz && tar xf "$LFS_GMP".tar.xz &&
cd "$LFS_GMP" && cd "$LFS_GMP" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--enable-cxx \ --enable-cxx \
--disable-static \ --disable-static \
--docdir=/usr/share/doc/gmp-6.2.1 && --docdir=/usr/share/doc/gmp-6.3.0 &&
make && make &&
make html && make html &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
@ -467,22 +503,19 @@ rm -rf "$LFS_GMP" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.19 ""$LFS_GMP""" >> build.log && echo "Finished 8.21 ""$LFS_GMP""" >> build.log &&
echo "$LFS_GMP" >> /installed.txt echo "$LFS_GMP" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.20 ""$LFS_MPFR""" >> build.log echo "Starting 8.22 ""$LFS_MPFR""" >> build.log
tar xf "$LFS_MPFR".tar.xz && tar xf "$LFS_MPFR".tar.xz &&
cd "$LFS_MPFR" && cd "$LFS_MPFR" &&
sed -e 's/+01,234,567/+1,234,567 /' \
-e 's/13.10Pd/13Pd/' \
-i tests/tsprintf.c &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--disable-static \ --disable-static \
--enable-thread-safe \ --enable-thread-safe \
--docdir=/usr/share/doc/mpfr-4.2.0 && --docdir=/usr/share/doc/mpfr-4.2.1 &&
make && make &&
make html && make html &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
@ -495,12 +528,12 @@ rm -rf "$LFS_MPFR" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.20 ""$LFS_MPFR""" >> build.log && echo "Finished 8.22 ""$LFS_MPFR""" >> build.log &&
echo "$LFS_MPFR" >> /installed.txt echo "$LFS_MPFR" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.21 ""$LFS_MPC""" >> build.log echo "Starting 8.23 ""$LFS_MPC""" >> build.log
tar xf "$LFS_MPC".tar.gz && tar xf "$LFS_MPC".tar.gz &&
cd "$LFS_MPC" && cd "$LFS_MPC" &&
@ -519,19 +552,19 @@ rm -rf "$LFS_MPC" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.21 ""$LFS_MPC""" >> build.log && echo "Finished 8.23 ""$LFS_MPC""" >> build.log &&
echo "$LFS_MPC" >> /installed.txt echo "$LFS_MPC" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.22 ""$LFS_ATTR""" >> build.log echo "Starting 8.24 ""$LFS_ATTR""" >> build.log
tar xf "$LFS_ATTR".tar.gz && tar xf "$LFS_ATTR".tar.gz &&
cd "$LFS_ATTR" && cd "$LFS_ATTR" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--disable-static \ --disable-static \
--sysconfdir=/etc \ --sysconfdir=/etc \
--docdir=/usr/share/doc/attr-2.5.1 && --docdir=/usr/share/doc/attr-2.5.2 &&
make && make &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../check-log_"$LFS_ATTR".log; make check | tee ../check-log_"$LFS_ATTR".log;
@ -542,18 +575,18 @@ rm -rf "$LFS_ATTR" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.22 ""$LFS_ATTR""" >> build.log && echo "Finished 8.24 ""$LFS_ATTR""" >> build.log &&
echo "$LFS_ATTR" >> /installed.txt echo "$LFS_ATTR" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.23 ""$LFS_ACL""" >> build.log echo "Starting 8.25 ""$LFS_ACL""" >> build.log
tar xf "$LFS_ACL".tar.xz && tar xf "$LFS_ACL".tar.xz &&
cd "$LFS_ACL" && cd "$LFS_ACL" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--disable-static \ --disable-static \
--docdir=/usr/share/doc/acl-2.3.1 && --docdir=/usr/share/doc/acl-2.3.2 &&
make && make &&
make install && make install &&
cd .. && cd .. &&
@ -561,12 +594,12 @@ rm -rf "$LFS_ACL" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.23 ""$LFS_ACL""" >> build.log && echo "Finished 8.25 ""$LFS_ACL""" >> build.log &&
echo "$LFS_ACL" >> /installed.txt echo "$LFS_ACL" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.24 ""$LFS_LIBCAP""" >> build.log echo "Starting 8.26 ""$LFS_LIBCAP""" >> build.log
tar xf "$LFS_LIBCAP".tar.xz && tar xf "$LFS_LIBCAP".tar.xz &&
cd "$LFS_LIBCAP" && cd "$LFS_LIBCAP" &&
@ -581,27 +614,52 @@ rm -rf "$LFS_LIBCAP" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.24 ""$LFS_LIBCAP""" >> build.log && echo "Finished 8.26 ""$LFS_LIBCAP""" >> build.log &&
echo "$LFS_LIBCAP" >> /installed.txt echo "$LFS_LIBCAP" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.25 ""$LFS_SHADOW""" >> build.log echo "Starting 8.27 ""$LFS_LIBXCRYPT""" >> build.log
tar xf "$LFS_LIBXCRYPT".tar.xz &&
cd "$LFS_LIBXCRYPT" &&
./configure --prefix=/usr \
--enable-hashes=strong,glibc \
--enable-obsolete-api=no \
--disable-static \
--disable-failure-tokens &&
make &&
if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../check-log_"$LFS_LIBXCRYPT".log;
fi
make install &&
cd .. &&
rm -rf "$LFS_LIBXCRYPT" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.27 ""$LFS_LIBXCRYPT""" >> build.log &&
echo "$LFS_LIBXCRYPT" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.28 ""$LFS_SHADOW""" >> build.log
tar xf "$LFS_SHADOW".tar.xz && tar xf "$LFS_SHADOW".tar.xz &&
cd "$LFS_SHADOW" && cd "$LFS_SHADOW" &&
sed -i 's/groups$(EXEEXT) //' src/Makefile.in && 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/groups\.1 / /' {} \;
find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \ sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD YESCRYPT:' \
-e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@' \ -e 's:/var/spool/mail:/var/mail:' \
-e 's:/var/spool/mail:/var/mail:' \ -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ -i etc/login.defs &&
-i etc/login.defs &&
touch /usr/bin/passwd && touch /usr/bin/passwd &&
./configure --sysconfdir=/etc \ ./configure --sysconfdir=/etc \
--disable-static \ --disable-static \
--with-{b,yes}crypt \
--without-libbsd \
--with-group-name-max-length=32 && --with-group-name-max-length=32 &&
make && make &&
make exec_prefix=/usr install && make exec_prefix=/usr install &&
@ -611,7 +669,7 @@ grpconv &&
mkdir -p /etc/default && mkdir -p /etc/default &&
useradd -D --gid 999 && useradd -D --gid 999 &&
# sed -i '/MAIL/s/yes/no/' /etc/default/useradd # sed -i '/MAIL/s/yes/no/' /etc/default/useradd
echo root:root | chpasswd #Set the root password echo root:root | chpasswd # Set the root password
echo "The password for the user root has been set to 'root'" echo "The password for the user root has been set to 'root'"
sleep 5 sleep 5
cd .. && cd .. &&
@ -619,12 +677,12 @@ rm -rf "$LFS_SHADOW" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.25 ""$LFS_SHADOW""" >> build.log && echo "Finished 8.28 ""$LFS_SHADOW""" >> build.log &&
echo "$LFS_SHADOW" >> /installed.txt echo "$LFS_SHADOW" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.26 ""$LFS_GCC""" >> build.log echo "Starting 8.29 ""$LFS_GCC""" >> build.log
tar xf "$LFS_GCC".tar.xz && tar xf "$LFS_GCC".tar.xz &&
cd "$LFS_GCC" && cd "$LFS_GCC" &&
@ -641,11 +699,18 @@ cd build &&
--enable-languages=c,c++ \ --enable-languages=c,c++ \
--enable-default-pie \ --enable-default-pie \
--enable-default-ssp \ --enable-default-ssp \
--enable-host-pie \
--disable-multilib \ --disable-multilib \
--disable-bootstrap \ --disable-bootstrap \
--disable-fixincludes \
--with-system-zlib && --with-system-zlib &&
make && make &&
ulimit -s 32768 && ulimit -s -H unlimited &&
sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp &&
sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c &&
sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c &&
sed -e 's/{ target nonpic } //' \
-e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
chown -Rv tester . && chown -Rv tester . &&
su tester -c "PATH=$PATH make -k -j""$JOBS"" check"; su tester -c "PATH=$PATH make -k -j""$JOBS"" check";
@ -654,9 +719,10 @@ if [ "$MAKECHECK" = TRUE ]; then
fi fi
make install && make install &&
chown -v -R root:root \ chown -v -R root:root \
/usr/lib/gcc/$(gcc -dumpmachine)/12.2.0/include{,-fixed} && /usr/lib/gcc/$(gcc -dumpmachine)/14.2.0/include{,-fixed} &&
ln -svr /usr/bin/cpp /usr/lib && ln -svr /usr/bin/cpp /usr/lib &&
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.2.0/liblto_plugin.so \ ln -sv gcc.1 /usr/share/man/man1/cc.1 &&
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/14.2.0/liblto_plugin.so \
/usr/lib/bfd-plugins/ && /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 "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 "There should be no errors, and the output of the last command will be (allowing for platform-specific differences in the dynamic linker name):"
@ -666,16 +732,16 @@ cc dummy.c -v -Wl,--verbose &> dummy.log &&
readelf -l a.out | grep ': /lib' readelf -l a.out | grep ': /lib'
echo "Now make sure that we're set up to use the correct start files" echo "Now make sure that we're set up to use the correct start files"
echo "The output should be:" 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/14.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/14.2.0/../../../../lib/crti.o succeeded"
echo "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o succeeded" echo "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.0/../../../../lib/crtn.o succeeded"
grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log
echo "Verify that the compiler is searching for the correct header files" echo "Verify that the compiler is searching for the correct header files"
echo "The output should be:" echo "The output should be:"
echo "#include <...> search starts here:" echo "#include <...> search starts here:"
echo" /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include" echo" /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.0/include"
echo" /usr/local/include" echo" /usr/local/include"
echo" /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed" echo" /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.0/include-fixed"
echo" /usr/include" echo" /usr/include"
grep -B4 '^ /usr/include' dummy.log grep -B4 '^ /usr/include' dummy.log
echo "Verify that the new linker is being used with the correct search paths" echo "Verify that the new linker is being used with the correct search paths"
@ -706,35 +772,16 @@ rm -rf "$LFS_GCC" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.26 ""$LFS_GCC""" >> build.log && echo "Finished 8.29 ""$LFS_GCC""" >> build.log &&
echo "$LFS_GCC" >> /installed.txt echo "$LFS_GCC" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.27 ""$LFS_PKGCONFIG""" >> 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") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.27 ""$LFS_PKGCONFIG""" >> build.log && echo "Starting 8.30 ""$LFS_NCURSES""" >> 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 && tar xf "$LFS_NCURSES".tar.gz &&
cd "$LFS_NCURSES" && cd "$LFS_NCURSES" &&
@ -745,34 +792,31 @@ cd "$LFS_NCURSES" &&
--without-normal \ --without-normal \
--with-cxx-shared \ --with-cxx-shared \
--enable-pc-files \ --enable-pc-files \
--enable-widec \
--with-pkg-config-libdir=/usr/lib/pkgconfig && --with-pkg-config-libdir=/usr/lib/pkgconfig &&
make && make &&
make DESTDIR=$PWD/dest install && make DESTDIR=$PWD/dest install &&
install -vm755 dest/usr/lib/libncursesw.so.6.4 /usr/lib && install -vm755 dest/usr/lib/libncursesw.so.6.5 /usr/lib &&
rm -v dest/usr/lib/libncursesw.so.6.4 && rm -v dest/usr/lib/libncursesw.so.6.5 &&
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i dest/usr/include/curses.h &&
cp -av dest/* / && cp -av dest/* / &&
for lib in ncurses form panel menu ; do for lib in ncurses form panel menu ; do
rm -vf /usr/lib/lib${lib}.so ln -sfv lib${lib}w.so /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
ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
done && done &&
rm -vf /usr/lib/libcursesw.so && ln -sfv libncursesw.so /usr/lib/libcurses.so &&
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so && cp -v -R doc -T /usr/share/doc/ncurses-6.5 &&
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 .. && cd .. &&
rm -rf "$LFS_NCURSES" && rm -rf "$LFS_NCURSES" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.28 ""$LFS_NCURSES""" >> build.log && echo "Finished 8.30 ""$LFS_NCURSES""" >> build.log &&
echo "$LFS_NCURSES" >> /installed.txt echo "$LFS_NCURSES" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.29 ""$LFS_SED""" >> build.log echo "Starting 8.31 ""$LFS_SED""" >> build.log
tar xf "$LFS_SED".tar.xz && tar xf "$LFS_SED".tar.xz &&
cd "$LFS_SED" && cd "$LFS_SED" &&
@ -781,7 +825,7 @@ make &&
make html && make html &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
chown -Rv tester . && chown -Rv tester . &&
su tester -c "PATH=$PATH make check" | tee ../check-log_"$LFS_GCC".log; su tester -c "PATH=$PATH make check" | tee ../check-log_"$LFS_SED".log;
fi fi
make install && make install &&
install -d -m755 /usr/share/doc/sed-4.9 && install -d -m755 /usr/share/doc/sed-4.9 &&
@ -791,38 +835,41 @@ rm -rf "$LFS_SED" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.29 ""$LFS_SED""" >> build.log && echo "Finished 8.31 ""$LFS_SED""" >> build.log &&
echo "$LFS_SED" >> /installed.txt echo "$LFS_SED" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.30 ""$LFS_PSMISC""" >> build.log echo "Starting 8.32 ""$LFS_PSMISC""" >> build.log
tar xf "$LFS_PSMISC".tar.xz && tar xf "$LFS_PSMISC".tar.xz &&
cd "$LFS_PSMISC" && cd "$LFS_PSMISC" &&
./configure --prefix=/usr && ./configure --prefix=/usr &&
make && make &&
if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../check-log_"$LFS_PSMISC".log;
fi
make install && make install &&
cd .. && cd .. &&
rm -rf "$LFS_PSMISC" && rm -rf "$LFS_PSMISC" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.30 ""$LFS_PSMISC""" >> build.log && echo "Finished 8.32 ""$LFS_PSMISC""" >> build.log &&
echo "$LFS_PSMISC" >> /installed.txt echo "$LFS_PSMISC" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.31 ""$LFS_GETTEXT""" >> build.log echo "Starting 8.33 ""$LFS_GETTEXT""" >> build.log
tar xf "$LFS_GETTEXT".tar.xz && tar xf "$LFS_GETTEXT".tar.xz &&
cd "$LFS_GETTEXT" && cd "$LFS_GETTEXT" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--disable-static \ --disable-static \
--docdir=/usr/share/doc/gettext-0.21.1 && --docdir=/usr/share/doc/gettext-0.22.5 &&
make && make &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
make check | tee ../check-log_"$LFS_GCC".log; make check | tee ../check-log_"$LFS_GETTEXT".log;
fi fi
make install && make install &&
chmod -v 0755 /usr/lib/preloadable_libintl.so && chmod -v 0755 /usr/lib/preloadable_libintl.so &&
@ -831,12 +878,12 @@ rm -rf "$LFS_GETTEXT" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.31 ""$LFS_GETTEXT""" >> build.log && echo "Finished 8.33 ""$LFS_GETTEXT""" >> build.log &&
echo "$LFS_GETTEXT" >> /installed.txt echo "$LFS_GETTEXT" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.32 ""$LFS_BISON""" >> build.log echo "Starting 8.34 ""$LFS_BISON""" >> build.log
tar xf "$LFS_BISON".tar.xz && tar xf "$LFS_BISON".tar.xz &&
cd "$LFS_BISON" && cd "$LFS_BISON" &&
@ -851,12 +898,12 @@ rm -rf "$LFS_BISON" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.32 ""$LFS_BISON""" >> build.log && echo "Finished 8.34 ""$LFS_BISON""" >> build.log &&
echo "$LFS_BISON" >> /installed.txt echo "$LFS_BISON" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.33 ""$LFS_GREP""" >> build.log echo "Starting 8.35 ""$LFS_GREP""" >> build.log
tar xf "$LFS_GREP".tar.xz && tar xf "$LFS_GREP".tar.xz &&
cd "$LFS_GREP" && cd "$LFS_GREP" &&
@ -872,19 +919,20 @@ rm -rf "$LFS_GREP" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.33 ""$LFS_GREP""" >> build.log && echo "Finished 8.35 ""$LFS_GREP""" >> build.log &&
echo "$LFS_GREP" >> /installed.txt echo "$LFS_GREP" >> /installed.txt
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Starting 8.34 ""$LFS_BASH""" >> build.log echo "Starting 8.36 ""$LFS_BASH""" >> build.log
tar xf "$LFS_BASH".tar.gz && tar xf "$LFS_BASH".tar.gz &&
cd "$LFS_BASH" && cd "$LFS_BASH" &&
./configure --prefix=/usr \ ./configure --prefix=/usr \
--without-bash-malloc \ --without-bash-malloc \
--with-installed-readline \ --with-installed-readline \
--docdir=/usr/share/doc/bash-5.2.15 && bash_cv_strtold_broken=no \
--docdir=/usr/share/doc/bash-5.2.32 &&
make && make &&
if [ "$MAKECHECK" = TRUE ]; then if [ "$MAKECHECK" = TRUE ]; then
chown -Rv tester . && chown -Rv tester . &&
@ -902,7 +950,7 @@ rm -rf "$LFS_BASH" &&
CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T") CURRENT_DATE_TIME=$(date +"%Y-%m-%d %T")
echo "$CURRENT_DATE_TIME" >> build.log echo "$CURRENT_DATE_TIME" >> build.log
echo "Finished 8.34 ""$LFS_BASH""" >> build.log && echo "Finished 8.36 ""$LFS_BASH""" >> build.log &&
echo "$LFS_BASH" >> /installed.txt echo "$LFS_BASH" >> /installed.txt
echo "Executing new bash, continue with chapter 8 p2:" echo "Executing new bash, continue with chapter 8 p2:"

File diff suppressed because it is too large Load Diff

View File

@ -2,20 +2,20 @@
source vars.sh source vars.sh
chown -R root:root "$LFS"/{usr,lib,var,etc,bin,sbin,tools} && chown --from lfs -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} &&
case $(uname -m) in case $(uname -m) in
x86_64) chown -R root:root "$LFS"/lib64 ;; x86_64) chown --from lfs -R root:root $LFS/lib64 ;;
esac && esac &&
mkdir -pv "$LFS"/{dev,proc,sys,run} && mkdir -pv $LFS/{dev,proc,sys,run} &&
mount -v --bind /dev "$LFS"/dev && mount -v --bind /dev $LFS/dev &&
mount -v --bind /dev/pts "$LFS"/dev/pts && mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts &&
mount -vt proc proc "$LFS"/proc && mount -vt proc proc $LFS/proc &&
mount -vt sysfs sysfs "$LFS"/sys && mount -vt sysfs sysfs $LFS/sys &&
mount -vt tmpfs tmpfs "$LFS"/run && mount -vt tmpfs tmpfs $LFS/run &&
if [ -h "$LFS"/dev/shm ]; then if [ -h $LFS/dev/shm ]; then
mkdir -pv "$LFS"/"$(readlink "$LFS"/dev/shm)" install -v -d -m 1777 $LFS$(realpath /dev/shm)
else else
mount -t tmpfs -o nosuid,nodev tmpfs "$LFS"/dev/shm mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi fi
echo "Entering now the chroot environment, continue with chapter 7 p1:" echo "Entering now the chroot environment, continue with chapter 7 p1:"
@ -26,4 +26,6 @@ chroot "$LFS" /usr/bin/env -i \
TERM="$TERM" \ TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \ PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \ PATH=/usr/bin:/usr/sbin \
MAKEFLAGS="-j$(nproc)" \
TESTSUITEFLAGS="-j$(nproc)" \
/bin/bash --login /bin/bash --login

View File

@ -2,15 +2,15 @@
source vars.sh source vars.sh
mount -v --bind /dev "$LFS"/dev && mount -v --bind /dev $LFS/dev&&
mount -v --bind /dev/pts "$LFS"/dev/pts && mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts &&
mount -vt proc proc "$LFS"/proc && mount -vt proc proc $LFS/proc &&
mount -vt sysfs sysfs "$LFS"/sys && mount -vt sysfs sysfs $LFS/sys &&
mount -vt tmpfs tmpfs "$LFS"/run && mount -vt tmpfs tmpfs $LFS/run &&
if [ -h "$LFS"/dev/shm ]; then if [ -h $LFS/dev/shm ]; then
mkdir -pv "$LFS"/"$(readlink "$LFS"/dev/shm)" install -v -d -m 1777 $LFS$(realpath /dev/shm)
else else
mount -t tmpfs -o nosuid,nodev tmpfs "$LFS"/dev/shm mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi fi
echo "Entering now the chroot environment" echo "Entering now the chroot environment"
@ -20,4 +20,6 @@ chroot "$LFS" /usr/bin/env -i \
TERM="$TERM" \ TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \ PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \ PATH=/usr/bin:/usr/sbin \
MAKEFLAGS="-j$(nproc)" \
TESTSUITEFLAGS="-j$(nproc)" \
/bin/bash --login /bin/bash --login

129
vars.sh
View File

@ -11,82 +11,87 @@ export KEYMAP="de-latin1" # default "en"
export LOCALE="en_US.utf8" export LOCALE="en_US.utf8"
export TELNETD=TRUE export TELNETD=TRUE
export MAKECHECK=FALSE export MAKECHECK=FALSE
export TMPASTMPFS=TRUE
export LFS="/mnt/lfs" export LFS="/mnt/lfs"
export LFS_BINUTILS="binutils-2.40" export LFS_BINUTILS="binutils-2.43.1"
export LFS_GCC="gcc-12.2.0" export LFS_GCC="gcc-14.2.0"
export LFS_LINUX="linux-6.1.11" export LFS_LINUX="linux-6.10.5"
export LFS_GLIBC="glibc-2.40"
export LFS_BASH="bash-5.2.32"
export LFS_M4="m4-1.4.19" export LFS_M4="m4-1.4.19"
export LFS_GLIBC="glibc-2.37" export LFS_COREUTILS="coreutils-9.5"
export LFS_BASH="bash-5.2.15" export LFS_DIFFUTILS="diffutils-3.10"
export LFS_COREUTILS="coreutils-9.1" export LFS_FILE="file-5.45"
export LFS_DIFFUTILS="diffutils-3.9" export LFS_FINDUTILS="findutils-4.10.0"
export LFS_FILE="file-5.44" export LFS_GAWK="gawk-5.3.0"
export LFS_FINDUTILS="findutils-4.9.0" export LFS_GREP="grep-3.11"
export LFS_GAWK="gawk-5.2.1" export LFS_GZIP="gzip-1.13"
export LFS_GREP="grep-3.8" export LFS_MAKE="make-4.4.1"
export LFS_GZIP="gzip-1.12"
export LFS_MAKE="make-4.4"
export LFS_PATCH="patch-2.7.6" export LFS_PATCH="patch-2.7.6"
export LFS_SED="sed-4.9" export LFS_SED="sed-4.9"
export LFS_TAR="tar-1.34" export LFS_TAR="tar-1.35"
export LFS_XZ="xz-5.4.1" export LFS_XZ="xz-5.6.2"
export LFS_GETTEXT="gettext-0.21.1" export LFS_GETTEXT="gettext-0.22.5"
export LFS_BISON="bison-3.8.2" export LFS_BISON="bison-3.8.2"
export LFS_PERL="perl-5.36.0" export LFS_PERL="perl-5.40.0"
export LFS_PYTHON="Python-3.11.2" export LFS_PYTHON="Python-3.12.5"
export LFS_TEXINFO="texinfo-7.0.2" export LFS_TEXINFO="texinfo-7.1"
export LFS_UTILLINUX="util-linux-2.38.1" export LFS_UTILLINUX="util-linux-2.40.2"
export LFS_MANPAGES="man-pages-6.03" export LFS_MANPAGES="man-pages-6.9.1"
export LFS_IANAETC="iana-etc-20230202" export LFS_IANAETC="iana-etc-20240806"
export LFS_ZLIB="zlib-1.2.13" export LFS_ZLIB="zlib-1.3.1"
export LFS_LZ4="lz4-1.10.0"
export LFS_BZIP2="bzip2-1.0.8" export LFS_BZIP2="bzip2-1.0.8"
export LFS_ZSTD="zstd-1.5.4" export LFS_ZSTD="zstd-1.5.6"
export LFS_READLINE="readline-8.2" export LFS_READLINE="readline-8.2.13"
export LFS_BC="bc-6.2.4" export LFS_BC="bc-6.7.6"
export LFS_FLEX="flex-2.6.4" export LFS_FLEX="flex-2.6.4"
export LFS_TCL="tcl8.6.13" export LFS_TCL="tcl8.6.14"
export LFS_EXPECT="expect5.45.4" export LFS_EXPECT="expect5.45.4"
export LFS_DEJAGNU="dejagnu-1.6.3" export LFS_DEJAGNU="dejagnu-1.6.3"
export LFS_MPFR="mpfr-4.2.0" export LFS_PKGCONF="pkgconf-2.3.0"
export LFS_GMP="gmp-6.2.1" export LFS_GMP="gmp-6.3.0"
export LFS_MPFR="mpfr-4.2.1"
export LFS_MPC="mpc-1.3.1" export LFS_MPC="mpc-1.3.1"
export LFS_ATTR="attr-2.5.1" export LFS_ATTR="attr-2.5.2"
export LFS_ACL="acl-2.3.1" export LFS_ACL="acl-2.3.2"
export LFS_LIBCAP="libcap-2.67" export LFS_LIBCAP="libcap-2.70"
export LFS_SHADOW="shadow-4.13" export LFS_LIBXCRYPT="libxcrypt-4.4.36"
export LFS_PKGCONFIG="pkg-config-0.29.2" export LFS_SHADOW="shadow-4.16.0"
export LFS_NCURSES="ncurses-6.4" export LFS_NCURSES="ncurses-6.5"
export LFS_PSMISC="psmisc-23.6" export LFS_PSMISC="psmisc-23.7"
export LFS_LIBTOOL="libtool-2.4.7" export LFS_LIBTOOL="libtool-2.4.7"
export LFS_GDBM="gdbm-1.23" export LFS_GDBM="gdbm-1.24"
export LFS_GPERF="gperf-3.1" export LFS_GPERF="gperf-3.1"
export LFS_EXPAT="expat-2.5.0" export LFS_EXPAT="expat-2.6.2"
export LFS_INETUTILS="inetutils-2.4" export LFS_INETUTILS="inetutils-2.5"
export LFS_LESS="less-608" export LFS_LESS="less-661"
export LFS_XMLPARSER="XML-Parser-2.46" export LFS_XMLPARSER="XML-Parser-2.47"
export LFS_INTLTOOL="intltool-0.51.0" export LFS_INTLTOOL="intltool-0.51.0"
export LFS_AUTOCONF="autoconf-2.71" export LFS_AUTOCONF="autoconf-2.72"
export LFS_AUTOMAKE="automake-1.16.5" export LFS_AUTOMAKE="automake-1.17"
export LFS_OPENSSL="openssl-3.0.8" export LFS_OPENSSL="openssl-3.3.1"
export LFS_KMOD="kmod-30" export LFS_KMOD="kmod-33"
export LFS_ELFUTILS="elfutils-0.188" export LFS_ELFUTILS="elfutils-0.191"
export LFS_LIBFFI="libffi-3.4.4" export LFS_LIBFFI="libffi-3.4.6"
export LFS_WHEEL="wheel-0.38.4" export LFS_FLITCORE="flit_core-3.9.0"
export LFS_NINJA="ninja-1.11.1" export LFS_WHEEL="wheel-0.44.0"
export LFS_MESON="meson-1.0.0" export LFS_SETUPTOOLS="setuptools-72.2.0"
export LFS_NINJA="ninja-1.12.1"
export LFS_MESON="meson-1.5.1"
export LFS_CHECK="check-0.15.2" export LFS_CHECK="check-0.15.2"
export LFS_GROFF="groff-1.22.4" export LFS_GROFF="groff-1.23.0"
export LFS_GRUB="grub-2.06" export LFS_GRUB="grub-2.12"
export LFS_IPROUTE2="iproute2-6.1.0" export LFS_IPROUTE2="iproute2-6.10.0"
export LFS_KBD="kbd-2.5.1" export LFS_KBD="kbd-2.6.4"
export LFS_LIBPIPELINE="libpipeline-1.5.7" export LFS_LIBPIPELINE="libpipeline-1.5.7"
export LFS_VIM="vim-9.0.1273" export LFS_VIM="vim-9.1.0660"
export LFS_MARKUPSAFE="MarkupSafe-2.1.2" export LFS_MARKUPSAFE="MarkupSafe-2.1.5"
export LFS_JINJA2="Jinja2-3.1.2" export LFS_JINJA2="Jinja2-3.1.4"
export LFS_SYSTEMD="systemd-252" export LFS_SYSTEMD="systemd-256.4"
export LFS_DBUS="dbus-1.14.6" export LFS_DBUS="dbus-1.14.10"
export LFS_MANDB="man-db-2.11.2" export LFS_MANDB="man-db-2.12.1"
export LFS_PROCPSNG="procps-ng-4.0.2" export LFS_PROCPSNG="procps-ng-4.0.4"
export LFS_E2FSPROGS="e2fsprogs-1.47.0" export LFS_E2FSPROGS="e2fsprogs-1.47.1"

View File

@ -1,53 +1,90 @@
#!/bin/bash #!/bin/bash
# Simple script to list version numbers of critical development tools # A script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo "$MYSH" | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
unset MYSH
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- # If you have tools installed in other directories, adjust PATH here AND
bison --version | head -n1 # in ~lfs/.bashrc (section 4.4) as well.
if [ -h /usr/bin/yacc ]; then LC_ALL=C
echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; PATH=/usr/bin:/bin
elif [ -x /usr/bin/yacc ]; then
echo yacc is `/usr/bin/yacc --version | head -n1` bail() { echo "FATAL: $1"; exit 1; }
grep --version > /dev/null 2> /dev/null || bail "grep does not work"
sed '' /dev/null || bail "sed does not work"
sort /dev/null || bail "sort does not work"
ver_check()
{
if ! type -p $2 &>/dev/null
then
echo "ERROR: Cannot find $2 ($1)"; return 1;
fi
v=$($2 --version 2>&1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1)
if printf '%s\n' $3 $v | sort --version-sort --check &>/dev/null
then
printf "OK: %-9s %-6s >= $3\n" "$1" "$v"; return 0;
else
printf "ERROR: %-9s is TOO OLD ($3 or later required)\n" "$1";
return 1;
fi
}
ver_kernel()
{
kver=$(uname -r | grep -E -o '^[0-9\.]+')
if printf '%s\n' $1 $kver | sort --version-sort --check &>/dev/null
then
printf "OK: Linux Kernel $kver >= $1\n"; return 0;
else
printf "ERROR: Linux Kernel ($kver) is TOO OLD ($1 or later required)\n" "$kver";
return 1;
fi
}
# Coreutils first because --version-sort needs Coreutils >= 7.0
ver_check Coreutils sort 8.1 || bail "Coreutils too old, stop"
ver_check Bash bash 3.2
ver_check Binutils ld 2.13.1
ver_check Bison bison 2.7
ver_check Diffutils diff 2.8.1
ver_check Findutils find 4.2.31
ver_check Gawk gawk 4.0.1
ver_check GCC gcc 5.2
ver_check "GCC (C++)" g++ 5.2
ver_check Grep grep 2.5.1a
ver_check Gzip gzip 1.3.12
ver_check M4 m4 1.4.10
ver_check Make make 4.0
ver_check Patch patch 2.5.4
ver_check Perl perl 5.8.8
ver_check Python python3 3.4
ver_check Sed sed 4.1.5
ver_check Tar tar 1.22
ver_check Texinfo texi2any 5.0
ver_check Xz xz 5.0.0
ver_kernel 4.19
if mount | grep -q 'devpts on /dev/pts' && [ -e /dev/ptmx ]
then echo "OK: Linux Kernel supports UNIX 98 PTY";
else echo "ERROR: Linux Kernel does NOT support UNIX 98 PTY"; fi
alias_check() {
if $1 --version 2>&1 | grep -qi $2
then printf "OK: %-4s is $2\n" "$1";
else printf "ERROR: %-4s is NOT $2\n" "$1"; fi
}
echo "Aliases:"
alias_check awk GNU
alias_check yacc Bison
alias_check sh Bash
echo "Compiler check:"
if printf "int main(){}" | g++ -x c++ -
then echo "OK: g++ works";
else echo "ERROR: g++ does NOT work"; fi
rm -f a.out
if [ "$(nproc)" = "" ]; then
echo "ERROR: nproc is not available or it produces empty output"
else else
echo "yacc not found" echo "OK: nproc reports $(nproc) logical cores are available"
fi fi
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -h /usr/bin/awk ]; then
echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
echo awk is `/usr/bin/awk --version | head -n1`
else
echo "awk not found"
fi
gcc --version | head -n1
g++ --version | head -n1
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
python3 --version
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1 # texinfo version
xz --version | head -n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
then echo "g++ compilation OK";
else echo "g++ compilation failed"; fi
rm -f dummy.c dummy