diff --git a/02-lfs-base b/02-lfs-base index d85169c..ffbb697 100755 --- a/02-lfs-base +++ b/02-lfs-base @@ -7,6 +7,12 @@ fi LFS=/mnt/lfs +if [ -x $LFS/usr/bin/env ]; then + ENVLFS=/usr/bin/env +else + ENVLFS=/tools/bin/env +fi + lfs_dirs() { mkdir -pv $LFS/{dev,proc,sys,run} mknod -m 600 $LFS/dev/console c 5 1 @@ -134,12 +140,11 @@ runinchroot() { pushd $LFS &>/dev/null mount_pseudo cp -L /etc/resolv.conf $LFS/etc/ - chroot "$LFS" /tools/bin/env -i \ + chroot "$LFS" $ENVLFS -i \ HOME=/root \ TERM="$TERM" \ PS1='(lfs chroot) \u:\w\$ ' \ - PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ - bash $@ + PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin $@ retval=$? umount_pseudo 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 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 lfs_dirs @@ -179,22 +184,22 @@ cp lfs/pkgscripts/* $LFS/usr/pkgscripts/ cp lfs/functions $LFS/var/lib/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 echo "--- $i skipped ---" else echo "*** $i ***" - runinchroot /usr/pkgscripts/$i || die "$i build error!" + runinchroot bash /usr/pkgscripts/$i || die "$i build error!" fi done -for i in $EXTRA_PKGS; do - if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then - echo "--- $i skipped ---" - else - echo "*** $i ***" - runchroot /usr/pkgscripts/$i || die "$i build error!" - fi -done +#for i in ; do + #if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then + #echo "--- $i skipped ---" + #else + #echo "*** $i ***" + #runchroot /usr/pkgscripts/$i || die "$i build error!" + #fi +#done exit 0 diff --git a/lfs/functions b/lfs/functions index df4bae9..9e3ab6d 100755 --- a/lfs/functions +++ b/lfs/functions @@ -26,6 +26,6 @@ fetch() { registerpkg() { sed "/^$1 /d" -i /var/lib/pkg/db echo "$1 $2" >> /var/lib/pkg/db - ldconfig + [ $(type -p ldconfig) ] && ldconfig echo "::: $1 $2 installed :::" } diff --git a/lfs/pkgscripts/glib b/lfs/pkgscripts/glib new file mode 100755 index 0000000..abffc66 --- /dev/null +++ b/lfs/pkgscripts/glib @@ -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 diff --git a/lfs/pkgscripts/libpng b/lfs/pkgscripts/libpng new file mode 100755 index 0000000..2ae713e --- /dev/null +++ b/lfs/pkgscripts/libpng @@ -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 diff --git a/lfs/pkgscripts/links b/lfs/pkgscripts/links new file mode 100755 index 0000000..e062ff7 --- /dev/null +++ b/lfs/pkgscripts/links @@ -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 diff --git a/lfs/pkgscripts/linux b/lfs/pkgscripts/linux index 2c7917d..34e524a 100755 --- a/lfs/pkgscripts/linux +++ b/lfs/pkgscripts/linux @@ -6,7 +6,7 @@ set -e . /var/lib/pkg/functions 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 fetch $url diff --git a/lfs/pkgscripts/linux-api-headers b/lfs/pkgscripts/linux-api-headers index e9d05db..1e015c3 100755 --- a/lfs/pkgscripts/linux-api-headers +++ b/lfs/pkgscripts/linux-api-headers @@ -6,7 +6,7 @@ set -e . /var/lib/pkg/functions name=linux -version=4.19.2 +version=4.19.12 fetch https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz diff --git a/lfs/pkgscripts/mc b/lfs/pkgscripts/mc new file mode 100755 index 0000000..b327415 --- /dev/null +++ b/lfs/pkgscripts/mc @@ -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 diff --git a/lfs/pkgscripts/mkinitramfs b/lfs/pkgscripts/mkinitramfs index fb9b51d..f3e234f 100755 --- a/lfs/pkgscripts/mkinitramfs +++ b/lfs/pkgscripts/mkinitramfs @@ -6,7 +6,7 @@ set -e . /var/lib/pkg/functions name=$(basename $0) -version=72992208c32e3aac22a086659b00c034960992cd +version=e6ffa3b73cbe126b2e2599805b1ee251b9b249a4 url=https://github.com/emmett1/mkinitramfs/archive/$version.tar.gz fetch $url diff --git a/lfs/pkgscripts/openssl b/lfs/pkgscripts/openssl index 4903e45..f752c89 100755 --- a/lfs/pkgscripts/openssl +++ b/lfs/pkgscripts/openssl @@ -6,7 +6,7 @@ set -e . /var/lib/pkg/functions name=$(basename $0) -version=1.1.0i +version=1.1.0j url=https://openssl.org/source/openssl-$version.tar.gz fetch $url diff --git a/lfs/pkgscripts/pcre b/lfs/pkgscripts/pcre new file mode 100755 index 0000000..f24f747 --- /dev/null +++ b/lfs/pkgscripts/pcre @@ -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 diff --git a/lfs/pkgscripts/slang b/lfs/pkgscripts/slang new file mode 100755 index 0000000..e902aaf --- /dev/null +++ b/lfs/pkgscripts/slang @@ -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