This commit is contained in:
emmett1 2019-01-09 17:39:16 +08:00
parent c50d4162e3
commit eb9422b994
12 changed files with 246 additions and 19 deletions

View file

@ -7,6 +7,12 @@ fi
LFS=/mnt/lfs LFS=/mnt/lfs
if [ -x $LFS/usr/bin/env ]; then
ENVLFS=/usr/bin/env
else
ENVLFS=/tools/bin/env
fi
lfs_dirs() { lfs_dirs() {
mkdir -pv $LFS/{dev,proc,sys,run} mkdir -pv $LFS/{dev,proc,sys,run}
mknod -m 600 $LFS/dev/console c 5 1 mknod -m 600 $LFS/dev/console c 5 1
@ -134,12 +140,11 @@ runinchroot() {
pushd $LFS &>/dev/null pushd $LFS &>/dev/null
mount_pseudo mount_pseudo
cp -L /etc/resolv.conf $LFS/etc/ cp -L /etc/resolv.conf $LFS/etc/
chroot "$LFS" /tools/bin/env -i \ chroot "$LFS" $ENVLFS -i \
HOME=/root \ HOME=/root \
TERM="$TERM" \ TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \ PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin $@
bash $@
retval=$? retval=$?
umount_pseudo umount_pseudo
popd &>/dev/null popd &>/dev/null
@ -168,7 +173,7 @@ intltool autoconf automake xz kmod gettext libelf libffi openssl python3 ninja m
gawk findutils groff grub less gzip iproute2 kbd libpipeline make patch sysklogd sysvinit eudev util-linux man-db tar texinfo vim gawk findutils groff grub less gzip iproute2 kbd libpipeline make patch sysklogd sysvinit eudev util-linux man-db tar texinfo vim
cpio mkinitramfs linux lfs-bootscripts lfs-files libtasn1 p11-kit make-ca wget" cpio mkinitramfs linux lfs-bootscripts lfs-files libtasn1 p11-kit make-ca wget"
EXTRA_PKGS="dhcpcd libnl wpa_supplicant" EXTRA_PKGS="dhcpcd libnl wpa_supplicant links libpng pcre slang glib mc"
if [ ! -f $LFS/var/lib/pkg/db ]; then if [ ! -f $LFS/var/lib/pkg/db ]; then
lfs_dirs lfs_dirs
@ -179,22 +184,22 @@ cp lfs/pkgscripts/* $LFS/usr/pkgscripts/
cp lfs/functions $LFS/var/lib/pkg/ cp lfs/functions $LFS/var/lib/pkg/
cp lfs/pkg.conf $LFS/etc/pkg/ cp lfs/pkg.conf $LFS/etc/pkg/
for i in $PKGS; do for i in $PKGS $EXTRA_PKGS; do
if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then
echo "--- $i skipped ---" echo "--- $i skipped ---"
else else
echo "*** $i ***" echo "*** $i ***"
runinchroot /usr/pkgscripts/$i || die "$i build error!" runinchroot bash /usr/pkgscripts/$i || die "$i build error!"
fi fi
done done
for i in $EXTRA_PKGS; do #for i in ; do
if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then #if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then
echo "--- $i skipped ---" #echo "--- $i skipped ---"
else #else
echo "*** $i ***" #echo "*** $i ***"
runchroot /usr/pkgscripts/$i || die "$i build error!" #runchroot /usr/pkgscripts/$i || die "$i build error!"
fi #fi
done #done
exit 0 exit 0

View file

@ -26,6 +26,6 @@ fetch() {
registerpkg() { registerpkg() {
sed "/^$1 /d" -i /var/lib/pkg/db sed "/^$1 /d" -i /var/lib/pkg/db
echo "$1 $2" >> /var/lib/pkg/db echo "$1 $2" >> /var/lib/pkg/db
ldconfig [ $(type -p ldconfig) ] && ldconfig
echo "::: $1 $2 installed :::" echo "::: $1 $2 installed :::"
} }

38
lfs/pkgscripts/glib Executable file
View file

@ -0,0 +1,38 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.56.1
url=http://ftp.gnome.org/pub/gnome/sources/glib/${version::4}/glib-$version.tar.xz
patch=http://www.linuxfromscratch.org/patches/blfs/8.3/glib-$version-skip_warnings-1.patch
fetch $url
fetch $patch
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
patch -Np1 -i $SOURCE_DIR/glib-$version-skip_warnings-1.patch
./configure --prefix=/usr \
--with-pcre=system \
--with-python=/usr/bin/python3
make
make install
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0

36
lfs/pkgscripts/libpng Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.6.35
url=https://downloads.sourceforge.net/libpng/libpng-$version.tar.xz
patch=https://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-$version-apng.patch.gz
fetch $url
fetch $patch
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
gzip -cd $SOURCE_DIR/libpng-$version-apng.patch.gz | patch -p1
LIBS=-lpthread ./configure --prefix=/usr --disable-static
make
make install
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0

32
lfs/pkgscripts/links Executable file
View file

@ -0,0 +1,32 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.16
url=http://links.twibright.com/download/links-$version.tar.bz2
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./configure --prefix=/usr --mandir=/usr/share/man
make
make install
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0

View file

@ -6,7 +6,7 @@ set -e
. /var/lib/pkg/functions . /var/lib/pkg/functions
name=$(basename $0) name=$(basename $0)
version=4.19.2 version=4.19.12
url=https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz url=https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz
fetch $url fetch $url

View file

@ -6,7 +6,7 @@ set -e
. /var/lib/pkg/functions . /var/lib/pkg/functions
name=linux name=linux
version=4.19.2 version=4.19.12
fetch https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz fetch https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz

35
lfs/pkgscripts/mc Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.8.21
url=http://ftp.midnight-commander.org/mc-$version.tar.xz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./configure --prefix=/usr \
--sysconfdir=/etc \
--enable-charset
make
make install
#cp -v doc/keybind-migration.txt /usr/share/mc
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0

View file

@ -6,7 +6,7 @@ set -e
. /var/lib/pkg/functions . /var/lib/pkg/functions
name=$(basename $0) name=$(basename $0)
version=72992208c32e3aac22a086659b00c034960992cd version=e6ffa3b73cbe126b2e2599805b1ee251b9b249a4
url=https://github.com/emmett1/mkinitramfs/archive/$version.tar.gz url=https://github.com/emmett1/mkinitramfs/archive/$version.tar.gz
fetch $url fetch $url

View file

@ -6,7 +6,7 @@ set -e
. /var/lib/pkg/functions . /var/lib/pkg/functions
name=$(basename $0) name=$(basename $0)
version=1.1.0i version=1.1.0j
url=https://openssl.org/source/openssl-$version.tar.gz url=https://openssl.org/source/openssl-$version.tar.gz
fetch $url fetch $url

42
lfs/pkgscripts/pcre Executable file
View file

@ -0,0 +1,42 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=8.42
url=https://ftp.pcre.org/pub/pcre/pcre-$version.tar.bz2
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./configure --prefix=/usr \
--docdir=/usr/share/doc/pcre-$version \
--enable-unicode-properties \
--enable-pcre16 \
--enable-pcre32 \
--enable-pcregrep-libz \
--enable-pcregrep-libbz2 \
--enable-pcretest-libreadline \
--disable-static
make
make install
mv -v /usr/lib/libpcre.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libpcre.so) /usr/lib/libpcre.so
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0

39
lfs/pkgscripts/slang Executable file
View file

@ -0,0 +1,39 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.3.2
url=http://www.jedsoft.org/releases/slang/slang-$version.tar.bz2
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./configure --prefix=/usr \
--sysconfdir=/etc \
--with-readline=gnu
make -j1
make -j1 install_doc_dir=/usr/share/doc/slang-$version \
SLSH_DOC_DIR=/usr/share/doc/slang-$version/slsh \
install-all
chmod -v 755 /usr/lib/libslang.so.2.3.2 \
/usr/lib/slang/v2/modules/*.so
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0