1
0
mirror of https://github.com/krglaws/MyLFS.git synced 2025-08-01 23:54:52 +00:00

Working on stage 6

This commit is contained in:
Kyle Glaws
2022-03-13 13:47:22 -04:00
parent 6966e8f89c
commit 1630885cb3
24 changed files with 766 additions and 0 deletions

24
stage6/acl.sh Normal file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Acl Stage 6
# ~~~~~~~~~~
set -e
cd /sources
eval "$(grep ACL $PACKAGE_LIST)"
PKG_ACL=$(basename $PKG_ACL)
tar -xf $PKG_ACL
cd ${PKG_ACL%.tar*}
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/acl-2.3.1
make
make install
cd /sources
rm -rf ${PKG_ACL%.tar*}

26
stage6/attr.sh Normal file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Attr Stage 6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep ATTR $PACKAGE_LIST)"
PKG_ATTR=$(basename $PKG_ATTR)
tar -xf $PKG_ATTR
cd ${PKG_ATTR%.tar*}
./configure --prefix=/usr \
--disable-static \
--sysconfdir=/etc \
--docdir=/usr/share/doc/attr-2.5.1
make
make check
make install
cd /sources
rm -rf ${PKG_ATTR%.tar*}

24
stage6/bc.sh Normal file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Bc Stage 6
# ~~~~~~~~~~
set -e
cd /sources
eval "$(grep BC $PACKAGE_LIST)"
PKG_BC=$(basename $PKG_BC)
tar -xf $PKG_BC
cd ${PKG_BC%.tar*}
CC=gcc ./configure --prefix=/usr -G -O3
make
make test
make install
cd /sources
rm -rf ${PKG_BC%.tar*}

41
stage6/binutils.sh Normal file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env bash
# Binutils Stage 6
# ~~~~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep BINUTILS $PACKAGE_LIST)"
PKG_BINUTILS=$(basename $PKG_BINUTILS)
tar -xf $PKG_BINUTILS
cd ${PKG_BINUTILS%.tar*}
patch -Np1 -i ../binutils-2.38-lto_fix-1.patch
sed -e '/R_386_TLS_LE /i \ || (TYPE) == R_386_TLS_IE \\' \
-i ./bfd/elfxx-x86.h
make build
cd build
../configure --prefix=/usr \
--enable-gold \
--enable-ld=default \
--enable-plugins \
--enable-shared \
--disable-werror \
--enable-64-bit-bfd \
--with-system-zlib
make tooldir=/usr
make -k check
make tooldir=/usr install
rm -f /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
cd /sources
rm -rf ${PKG_BINUTILS%.tar*}

31
stage6/bzip2.sh Normal file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
# Bzip2 Stage 6
# ~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep BZIP2 $PACKAGE_LIST)"
PKG_BZIP2=$(basename $PKG_BZIP2)
tar -xf $PKG_BZIP2
cd ${PKG_BZIP2%.tar*}
patch -Np1 -i ../$PATCH_BZIP2
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 /sources
rm -rf ${PKG_BZIP2%.tar*}

25
stage6/chroot_main.sh Normal file
View File

@ -0,0 +1,25 @@
# This script will be loaded into the $LFS/sources directory
# where it will be executed by a chroot shell.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
set -e
echo "done."
# This is copied from config/user.sh since I'm too lazy to
# figure out a way to pass it into the chroot environment.
function build_package {
PACKAGE_NAME=$1
BUILD_SCRIPT=$2
BUILD_LOG=$3
echo -n "Building ${PACKAGE_NAME}... "
if ! { $BUILD_SCRIPT &> $BUILD_LOG && rm $BUILD_LOG && echo "done."; }
then
echo "failed. Check $BUILD_LOG for more information."
exit -1
fi
}
cd /sources/stage6
build_package "Man Pages" ./man.sh /sources/man_stage6.log

29
stage6/dejagnu.sh Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# DejaGNU Stage 6
# ~~~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep DEJAGNU $PACKAGE_LIST)"
PKG_DEJAGNU=$(basename $PKG_DEJAGNU)
tar -xf $PKG_DEJAGNU
cd ${PKG_DEJAGNU%.tar*}
mkdir 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
make check
cd /sources
rm -rf ${PKG_DEJAGNU%.tar*}

30
stage6/expect.sh Normal file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env bash
# Expect Stage 6
# ~~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep EXPECT $PACKAGE_LIST)"
PKG_EXPECT=$(basename $PKG_EXPECT)
tar -xf $PKG_EXPECT
cd ${PKG_EXPECT%.tar*}
./configure --prefix=/usr \
--with-tcl=/usr/lib \
--enable-shared \
--mandir=/usr/share/man \
--with-tclinclude=/usr/include
make
make test
make install
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
cd /sources
rm -rf ${PKG_EXPECT%.tar*}

22
stage6/file.sh Normal file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# File Stage 6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep FILE $PACKAGE_LIST)"
PKG_FILE=$(basename $PKG_FILE)
tar -xf $PKG_FILE
cd ${PKG_FILE%.tar*}
./configure --prefix=/usr
make
make check
make install
cd /sources
rm -rf ${PKG_FILE%.tar*}

28
stage6/flex.sh Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Flex Stage 6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep FLEX $PACKAGE_LIST)"
PKG_FLEX=$(basename $PKG_FLEX)
tar -xf $PKG_FLEX
cd ${PKG_FLEX%.tar*}
./configure --prefix=/usr \
--docdir=/usr/share/doc/flex-2.6.4 \
--disable-static
make
make check
make install
ln -sv flex /usr/bin/lex
cd /sources
rm -rf ${PKG_FLEX%.tar*}

120
stage6/glibc.sh Normal file
View File

@ -0,0 +1,120 @@
#!/usr/bin/env bash
# Glibc Stage6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep GLIBC $PACKAGE_LIST)"
PKG_GLIBC=$(basename $PKG_GLIBC)
tar -xf $PKG_GLIBC
cd ${PKG_GLIBC%.tar*}
patch -Np1 -i ../glibc-2.35-fhs-1.patch
mkdir 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
make check
touch /etc/ld.so.conf
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
make install
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
cp ../nscd/nscd.conf /etc/nscd.conf
mkdir -p /var/cache/nscd
mkdir -p /usr/lib/locale
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i de_DE -f UTF-8 de_DE.UTF-8
localedef -i el_GR -f ISO-8859-7 el_GR
localedef -i en_GB -f ISO-8859-1 en_GB
localedef -i en_GB -f UTF-8 en_GB.UTF-8
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i en_US -f UTF-8 en_US.UTF-8
localedef -i es_ES -f ISO-8859-15 es_ES@euro
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
localedef -i is_IS -f ISO-8859-1 is_IS
localedef -i is_IS -f UTF-8 is_IS.UTF-8
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i it_IT -f ISO-8859-15 it_IT@euro
localedef -i it_IT -f UTF-8 it_IT.UTF-8
localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
localedef -i se_NO -f UTF-8 se_NO.UTF-8
localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
localedef -i zh_CN -f GB18030 zh_CN.GB18030
localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
localedef -i zh_TW -f UTF-8 zh_TW.UTF-8
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 ../../tzdata2021e.tar.gz
ZONEINFO=/usr/share/zoneinfo
mkdir -p $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 zone.tab zone1970.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York
unset ZONEINFO
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib
EOF
cd /sources
rm -rf ${PKG_GLIBC%.tar*}

35
stage6/gmp.sh Normal file
View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
# GMP Stage 6
# ~~~~~~~~~~~
set -e
cd /sources
eval "$(grep GMP $PACKAGE_LIST)"
PKG_GMP=$(basename $PKG_GMP)
tar -xf $PKG_GMP
cd ${PKG_GMP%.tar*}
./configure --prefix=/usr \
--enable-cxx \
--disable-static \
--docdir=/usr/share/doc/gmp-6.2.1
make
make html
make check &> /sources/stage6/gmp_test.log
PASS_COUNT=$(awk '/# PASS:/{total+=$3} ; END{print total}' /sources/stage6/gmp_test.log)
if [ "$PASS_COUNT" != "" ];
then
echo "ERROR: GMP tests failed. Check /sources/stage6/gmp_test.log for more info."
exit -1
fi
make install
make install-html
cd /sources
rm -rf ${PKG_GMP%.tar*}

18
stage6/iana_etc.sh Normal file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Iana-Etc Stage 6
# ~~~~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep IANAETC $PACKAGE_LIST)"
PKG_IANAETC=$(basename $PKG_IANAETC)
tar -xf $PKG_IANAETC
cd ${PKG_IANAETC%.tar*}
cp services protocols /etc
cd /sources
rm -rf ${PKG_IANAETC%.tar*}

18
stage6/libcap.sh Normal file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Libcap Stage 6
# ~~~~~~~~~~
set -e
cd /sources
eval "$(grep LIBCAP $PACKAGE_LIST)"
PKG_LIBCAP=$(basename $PKG_LIBCAP)
tar -xf $PKG_LIBCAP
cd ${PKG_LIBCAP%.tar*}
cd /sources
rm -rf ${PKG_LIBCAP%.tar*}

22
stage6/m4.sh Normal file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# M4 Stage 6
# ~~~~~~~~~~
set -e
cd /sources
eval "$(grep M4 $PACKAGE_LIST)"
PKG_M4=$(basename $PKG_M4)
tar -xf $PKG_M4
cd ${PKG_M4%.tar*}
./configure --prefix=/usr
make
make check
make install
cd /sources
rm -rf ${PKG_M4%.tar*}

44
stage6/main.sh Normal file
View File

@ -0,0 +1,44 @@
#!/usr/bin/env bash
# Stage 6
# ~~~~~~~
# This stage covers chapter 8. This will build the final set of
# packages in LFS.
set -e
if [ "$UID" != "0" ]
then
echo "ERROR: $0 must be run as root."
exit -1
fi
if [ -z "$LFS" ]
then
echo "ERROR: $0: Missing config vars."
exit -1
fi
if [ -z "$(mount | grep $LFS)" ]
then
echo "ERROR: $LFS_IMG does not appear to be mounted on $LFS."
exit -1
fi
cd $(dirname $0)
BUILD_SCRIPTS=$(find . ! -name "main.sh" -a ! -name ".")
mkdir $LFS/sources/stage6
cp $BUILD_SCRIPTS $CONF_DIR/pkgs.sh $LFS/sources/stage6
chmod +x $LFS/sources/stage6/*.sh
echo -n "Entering chroot environment... "
chroot "$LFS" /usr/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
LFS_TGT=$LFS_TGT \
PACKAGE_LIST=/sources/stage6/pkgs.sh \
/bin/bash +h -c "/sources/stage6/chroot_main.sh"

18
stage6/man.sh Normal file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Man Pages Stage 6
# ~~~~~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep MAN $PACKAGE_LIST)"
PKG_MAN=$(basename $PKG_MAN)
tar -xf $PKG_MAN
cd ${PKG_MAN%.tar*}
make prefix=/usr install
cd /sources
rm -rf ${PKG_MAN%.tar*}

28
stage6/mpc.sh Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
# MPC Stage 6
# ~~~~~~~~~~~
set -e
cd /sources
eval "$(grep MPC $PACKAGE_LIST)"
PKG_MPC=$(basename $PKG_MPC)
tar -xf $PKG_MPC
cd ${PKG_MPC%.tar*}
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/mpc-1.2.1
make
make html
make check
make install
make install-html
cd /sources
rm -rf ${PKG_MPC%.tar*}

29
stage6/mpfr.sh Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# MPFR Stage 6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep MPFR $PACKAGE_LIST)"
PKG_MPFR=$(basename $PKG_MPFR)
tar -xf $PKG_MPFR
cd ${PKG_MPFR%.tar*}
./configure --prefix=/usr \
--disable-static \
--enable-thread-safe \
--docdir=/usr/share/doc/mpfr-4.1.0
make
make html
make check
make install
make install-html
cd /sources
rm -rf ${PKG_MPFR%.tar*}

29
stage6/readline.sh Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Readline Stage 6
# ~~~~~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep READLINE $PACKAGE_LIST)"
PKG_READLINE=$(basename $PKG_READLINE)
tar -xf $PKG_READLINE
cd ${PKG_READLINE%.tar*}
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install
./configure --prefix=/usr \
--disable-static \
--with-curses \
--docdir=/usr/share/doc/${PKG_READLINE%.tar*}
make SHLIB_LIBS="-lncursesw"
make SHLIB_LIBS="-lncursesw" install
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2
cd /sources
rm -rf ${PKG_READLINE%.tar*}

57
stage6/tcl.sh Normal file
View File

@ -0,0 +1,57 @@
#!/usr/bin/env bash
# Tcl Stage 6
# ~~~~~~~~~~~
set -e
cd /sources
eval "$(grep TCL $PACKAGE_LIST)"
PKG_TCL=$(basename $PKG_TCL)
tar -xf $PKG_TCL
cd ${PKG_TCL%.tar*}
tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1
SRCDIR=$(pwd)
cd unix
./configure --prefix=/usr \
--mandir=/usr/share/man \
$([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
make
sed -e "s|$SRCDIR/unix|/usr/lib|" \
-e "s|$SRCDIR|/usr/include|" \
-i tclConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|" \
-i pkgs/tdbc1.1.3/tdbcConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \
-e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|" \
-i pkgs/itcl4.2.2/itclConfig.sh
unset SRCDIR
make test
make install
chmod u+w /usr/lib/libtcl8.6.so
make install-private-headers
ln -sf tclsh8.6 /usr/bin/tclsh
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
mkdir -p /usr/share/doc/tcl-8.6.12
cp -r ../html/* /usr/share/doc/tcl-8.6.12
cd /sources
rm -rf ${PKG_TCL%.tar*}

24
stage6/xz.sh Normal file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Xz Stage 6
# ~~~~~~~~~~
set -e
cd /sources
eval "$(grep XZ $PACKAGE_LIST)"
PKG_XZ=$(basename $PKG_XZ)
tar -xf $PKG_XZ
cd ${PKG_XZ%.tar*}
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/${PKG_XZ%.tar*}
make
make check
make install
cd /sources
rm -rf ${PKG_XZ%.tar*}

23
stage6/zlib.sh Normal file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Zlib Stage 6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep ZLIB $PACKAGE_LIST)"
PKG_ZLIB=$(basename $PKG_ZLIB)
tar -xf $PKG_ZLIB
cd ${PKG_ZLIB%.tar*}
./configure --prefix=/usr
make
make check
make install
rm -f /usr/lib/libz.a
cd /sources
rm -rf ${PKG_ZLIB%.tar*}

21
stage6/zstd.sh Normal file
View File

@ -0,0 +1,21 @@
#!/usr/bin/env bash
# Zstd Stage 6
# ~~~~~~~~~~~~
set -e
cd /sources
eval "$(grep ZSTD $PACKAGE_LIST)"
PKG_ZSTD=$(basename $PKG_ZSTD)
tar -xf $PKG_ZSTD
cd ${PKG_ZSTD%.tar*}
make
make check
make PREFIX=/usr install
rm /usr/lib/libzstd.a
cd /sources
rm -rf ${PKG_ZSTD%.tar*}