This commit is contained in:
emmett1 2021-04-18 08:19:42 +08:00
parent 05f3eed94a
commit 539509b005
97 changed files with 11921 additions and 378 deletions

6
.gitignore vendored
View file

@ -2,3 +2,9 @@
*.tar.xz
*.img
config
*.qcow2
ports/error
ports/outdate
src/
pkg/
lfs-rootfs/

View file

@ -1,4 +1,36 @@
#!/bin/bash -e
#!/bin/sh -e
fetch() {
for s in $source; do
filename=${s##*/}
if [ "$s" != "$filename" ]; then
if [ ! -f $SRCDIR/$filename ]; then
echo "fetching $s"
curl -C - -L --fail --ftp-pasv --retry 999 --retry-delay 3 -o $SRCDIR/$filename.part $s && \
mv $SRCDIR/$filename.part $SRCDIR/$filename || {
echo "failed fetch $s"
exit 1
}
fi
fi
done
}
unpack() {
rm -fr "$WORKDIR/$pkg"
mkdir -p "$WORKDIR/$pkg"
for src in $source; do
filename=${src##*/}
case $src in
*.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip)
echo "extracting $filename..."
tar -xf "$SRCDIR/$filename" -C "$WORKDIR/$pkg" || {
echo "failed extracting $filename"
exit 1
};;
esac
done
}
if type -p "sudo" &>/dev/null; then
PRIV="sudo"
@ -9,7 +41,7 @@ else
exit 1
fi
fetch() {
fetch2() {
tarballname=$(echo $1 | rev | cut -d / -f 1 | rev)
WGETCMD="wget --passive-ftp --tries=3 --waitretry=3 --output-document=$2/$tarballname.partial"
WGETRESUME="-c"
@ -36,7 +68,7 @@ fetch() {
fi
}
fetch_src() {
fetch_src2() {
if [ "${#source[@]}" -gt 0 ]; then
for s in ${source[@]}; do
fetch $s $SRCDIR
@ -44,7 +76,7 @@ fetch_src() {
fi
}
extract_src() {
extract_src2() {
[ "$name" ] && rm -fr $WORKDIR/$name
mkdir -p $WORKDIR/$name
if [ "${#source[@]}" -gt 0 ]; then
@ -60,7 +92,7 @@ extract_src() {
fi
}
build_src() {
buildtc() {
cd $WORKDIR/$name
if [ "$(type -t build)" = function ]; then
(set -e -x; build)
@ -72,10 +104,6 @@ build_src() {
echo "--- build $name-$version success ---"
fi
[ "$name" ] && rm -fr $WORKDIR/$name
register
}
register() {
echo $name-$version > $LFS/tools/$(basename $script)
}
@ -89,21 +117,18 @@ checkdone() {
fi
}
build_stage1() {
cd $CWD
source $1 || exit 1
fetch_src
extract_src
build_src
unset source name version build
}
main() {
for script in $TCDIR/[0-9][0-9]-*; do
checkdone || continue
build_stage1 $script
cd $CWD
. $script
pkg=$name
fetch
unpack
buildtc
unset source name version build
#build_stage1 $script
done
$PRIV chown -Rv 0:0 $LFS
}
if [ $(id -u) = 0 ]; then
@ -127,10 +152,10 @@ LFS_TGT=x86_64-lfs-linux-gnu
LFS_TGT32=i686-lfs-linux-gnu
MAKEFLAGS="${MAKEFLAGS:--j$(nproc)}"
LFS="${LFS:-/mnt/lfs}"
LFS="${LFS:-$CWD/lfs-rootfs}"
PKGDIR="${PKGDIR:-$CWD/pkg}"
SRCDIR="${SRCDIR:-$CWD/src}"
WORKDIR="${WORKDIR:-/tmp}"
WORKDIR="${WORKDIR:-$CWD/work}"
CFLAGS="${CFLAGS:--O2 -march=x86-64 -pipe}"
export LC_ALL=C PATH MAKEFLAGS LFS LFS_TGT LFS_TGT32
@ -138,15 +163,18 @@ export LC_ALL=C PATH MAKEFLAGS LFS LFS_TGT LFS_TGT32
mkdir -p $SRCDIR $PKGDIR $WORKDIR
if [ ! -d $LFS/tools ]; then
$PRIV mkdir -pv $LFS/tools
mkdir -pv $LFS/tools
fi
if [ ! -w $LFS ]; then
$PRIV chown -Rv $USER:$USER $LFS
echo "'$LFS' directory has no right access"
echo "please run 'chown -Rv $USER:$USER $LFS' as root"
exit 1
fi
if [ ! -L /tools ] || [ $(realpath /tools) != $LFS/tools ]; then
$PRIV ln -svf $LFS/tools /
echo "please create required '/tools' symlink by running 'ln -svf \$PWD/$LFS/tools' as root"
exit 1
fi
main $@

17
02-base
View file

@ -1,9 +1,9 @@
#!/bin/bash
#!/bin/sh
lfs_dirs() {
mkdir -pv $LFS/dev
mknod -m 600 $LFS/dev/console c 5 1 || true
mknod -m 666 $LFS/dev/null c 1 3 || true
#mkdir -pv $LFS/dev
#mknod -m 600 $LFS/dev/console c 5 1 || true
#mknod -m 666 $LFS/dev/null c 1 3 || true
mkdir -pv $LFS/bin $LFS/usr/{lib,bin} $LFS/etc || true
ln -svf /tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} $LFS/bin
@ -17,10 +17,6 @@ lfs_dirs() {
cat > $LFS/etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
daemon:x:6:6:Daemon User:/dev/null:/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
EOF
cat > $LFS/etc/group << "EOF"
@ -138,10 +134,11 @@ if [ -f $CWD/config ]; then
fi
MAKEFLAGS="${MAKEFLAGS:--j$(nproc)}"
LFS="${LFS:-/mnt/lfs}"
LFS="${LFS:-$CWD/lfs-rootfs}"
PKGDIR="${PKGDIR:-$CWD/pkg}"
SRCDIR="${SRCDIR:-$CWD/src}"
WORKDIR="${WORKDIR:-/tmp}"
WORKDIR="${WORKDIR:-$CWD/work}"
CFLAGS="${CFLAGS:--O2 -march=x86-64 -pipe}"
if [ -x $LFS/usr/bin/env ]; then
ENVLFS=/usr/bin/env

View file

@ -37,7 +37,7 @@ interrupted() {
}
cleanup() {
rm -fr $WDIR
rm -fr $ISODIR
}
die() {
@ -55,39 +55,43 @@ printerror() {
echo -e "\e[0;31mERROR:\e[0m $*"
}
if [ $(id -u) != 0 ]; then
echo "$0 script need to run as root!"
exit 1
fi
CWD=$PWD
if [ -f $CWD/config ]; then
source $CWD/config
fi
WDIR="$WORKDIR/iso"
ISODIR="$CWD/iso"
LABEL="LFSLIVECD"
OUTPUT="lfs-livecd-$(date +"%Y%m%d").iso"
FILEDIR="$CWD/files"
MAKEFLAGS="${MAKEFLAGS:--j$(nproc)}"
LFS="${LFS:-/mnt/lfs}"
LFS="${LFS:-$CWD/lfs-rootfs}"
PKGDIR="${PKGDIR:-$CWD/pkg}"
SRCDIR="${SRCDIR:-$CWD/src}"
WORKDIR="${WORKDIR:-/tmp}"
WORKDIR="${WORKDIR:-$CWD/work}"
isolinux_files="chain.c32 isolinux.bin ldlinux.c32 libutil.c32 reboot.c32 menu.c32 libcom32.c32 poweroff.c32"
rm -fr $WDIR
mkdir -p $WDIR
rm -fr $ISODIR
mkdir -p $ISODIR
printstep "Preparing isolinux files..."
mkdir -p $WDIR/{lfs,isolinux,boot}
mkdir -p $ISODIR/{lfs,isolinux,boot}
for file in $isolinux_files; do
cp $LFS/usr/share/syslinux/$file $WDIR/isolinux || die "failed copying '$file'"
cp $LFS/usr/share/syslinux/$file $ISODIR/isolinux || die "failed copying '$file'"
done
#cp isolinux/splash.png $WDIR/isolinux
cp $FILEDIR/isolinux.cfg $WDIR/isolinux
[ -d rootfs ] && cp -Ra rootfs $WDIR
#cp isolinux/splash.png $ISODIR/isolinux
cp $FILEDIR/isolinux.cfg $ISODIR/isolinux
[ -d rootfs ] && cp -Ra rootfs $ISODIR
printstep "Make squash filesystem..."
mksquashfs $LFS $WDIR/lfs/root.sfs \
mksquashfs $LFS $ISODIR/lfs/root.sfs \
-b 1048576 -comp xz -Xdict-size 100% \
-e $LFS/var/lib/pkg/src/* \
-e $LFS/var/lib/pkg/pkg/* \
@ -96,34 +100,34 @@ mksquashfs $LFS $WDIR/lfs/root.sfs \
-e $LFS/tmp/* 2>/dev/null || die "failed create squashed filesystem"
printstep "Preparing kernel and initramfs..."
cp $LFS/boot/vmlinuz-lfs $WDIR/boot/vmlinuz || die "failed copying kernel"
cp $LFS/boot/vmlinuz-lfs $ISODIR/boot/vmlinuz || die "failed copying kernel"
cp files/livecd.hook $LFS/etc/mkinitramfs.d
kernver=$(file $LFS/boot/vmlinuz-lfs | cut -d ' ' -f9)
chroot_run mkinitramfs -k $kernver -a livecd -o /boot/initrd-live.img || die "failed create initramfs"
mv $LFS/boot/initrd-live.img $WDIR/boot/initrd || die "failed copying initrd"
mv $LFS/boot/initrd-live.img $ISODIR/boot/initrd || die "failed copying initrd"
printstep "Setup UEFI mode..."
mkdir -p $WDIR/boot/{grub/{fonts,x86_64-efi},EFI}
mkdir -p $ISODIR/boot/{grub/{fonts,x86_64-efi},EFI}
if [ -f $LFS/usr/share/grub/unicode.pf2 ];then
cp $LFS/usr/share/grub/unicode.pf2 $WDIR/boot/grub/fonts
cp $LFS/usr/share/grub/unicode.pf2 $ISODIR/boot/grub/fonts
fi
if [ -f $WDIR/isolinux/splash.png ]; then
cp $WDIR/isolinux/splash.png $WDIR/boot/grub/
if [ -f $ISODIR/isolinux/splash.png ]; then
cp $ISODIR/isolinux/splash.png $ISODIR/boot/grub/
fi
echo "set prefix=/boot/grub" > $WDIR/boot/grub-early.cfg
cp -a $LFS/usr/lib/grub/x86_64-efi/*.{mod,lst} $WDIR/boot/grub/x86_64-efi || die "Failed copying efi files"
cp $FILEDIR/grub.cfg $WDIR/boot/grub/
echo "set prefix=/boot/grub" > $ISODIR/boot/grub-early.cfg
cp -a $LFS/usr/lib/grub/x86_64-efi/*.{mod,lst} $ISODIR/boot/grub/x86_64-efi || die "Failed copying efi files"
cp $FILEDIR/grub.cfg $ISODIR/boot/grub/
grub-mkimage -c $WDIR/boot/grub-early.cfg -o $WDIR/boot/EFI/bootx64.efi -O x86_64-efi -p "" iso9660 normal search search_fs_file
grub-mkimage -c $ISODIR/boot/grub-early.cfg -o $ISODIR/boot/EFI/bootx64.efi -O x86_64-efi -p "" iso9660 normal search search_fs_file
modprobe loop
dd if=/dev/zero of=$WDIR/boot/efiboot.img count=4096
mkdosfs -n LFSLIVECD-UEFI $WDIR/boot/efiboot.img || die "Failed mkdosfs"
mkdir -p $WDIR/boot/efiboot
mount -o loop $WDIR/boot/efiboot.img $WDIR/boot/efiboot || die "Failed mount efiboot.img"
mkdir -p $WDIR/boot/efiboot/EFI/boot
cp $WDIR/boot/EFI/bootx64.efi $WDIR/boot/efiboot/EFI/boot
umount $WDIR/boot/efiboot
rm -fr $WDIR/boot/efiboot
dd if=/dev/zero of=$ISODIR/boot/efiboot.img count=4096
mkdosfs -n LFS-UEFI $ISODIR/boot/efiboot.img || die "Failed mkdosfs"
mkdir -p $ISODIR/boot/efiboot
mount -o loop $ISODIR/boot/efiboot.img $ISODIR/boot/efiboot || die "Failed mount efiboot.img"
mkdir -p $ISODIR/boot/efiboot/EFI/boot
cp $ISODIR/boot/EFI/bootx64.efi $ISODIR/boot/efiboot/EFI/boot
umount $ISODIR/boot/efiboot
rm -fr $ISODIR/boot/efiboot
printstep "Making the iso..."
rm -f $OUTPUT
@ -139,7 +143,7 @@ xorriso -as mkisofs \
-no-emul-boot \
-isohybrid-gpt-basdat \
-volid $LABEL \
-o $OUTPUT $WDIR || die "failed create iso"
-o $OUTPUT $ISODIR || die "failed create iso"
printstep "Cleaning up..."
cleanup

View file

@ -2,9 +2,9 @@
# modify according your needs
# save to 'config'
#MAKEFLAGS="-j$(nproc)"
#LFS="/mnt/lfs"
#LFS="$CWD/lfs-rootfs"
#PKGDIR="$CWD/pkg"
#SRCDIR="$CWD/src"
#WORKDIR="/tmp"
#CFLAGS="-O2 -march=x86-64 -pipe"
#WORKDIR="$CWD/work"
#MAKEFLAGS="-j$(nproc)"
#CFLAGS="-O2 -march=x86-64 -pipe"

25
ports/applyupdate Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh
[ -f ./outdate ] || {
echo "please check update first"
}
while read -r port oldver a newver; do
p=${port##*/}
case $p in
python3) p=python;;
gcc) p="$p-pass1 $p-pass2 libstdc++";;
binutils) p="$p-pass1 $p-pass2";;
ca-certificates) p=certs;;
esac
echo -n "Update $port to $newver"
sed "s/^version=.*/version=$newver/" -i $port/Pkgfile
[ $? = 0 ] && echo " OK" || echo " failed"
for i in $p; do
[ -f ../toolchain/*-$i ] && {
echo -n "Update $i (toolchain) to $newver"
sed "s/^version=.*/version=$newver/" -i ../toolchain/*-$i
[ $? = 0 ] && echo " OK" || echo " failed"
}
done
done < outdate

View file

@ -93,18 +93,21 @@ run_check() {
upver=${upver:-404}
[ "$OUT" = 1 ] && {
sed "\,^$ppath ,d" -i error
sed "\,^$ppath ,d" -i outdate
}
if [ "$upver" = "404" ]; then
echo -e " $ppath: $version => ${RED}404${CRESET}"
[ "$OUT" = 1 ] && echo "$ppath $version => 404" >> error
[ "$OUT" = 1 ] && {
echo "$ppath $version => 404" >> error
}
elif [ "$version" != "$upver" ]; then
echo -e " $ppath: $version => ${YELLOW}$upver${CRESET}"
[ "$OUT" = 1 ] && echo "$ppath $version => $upver" >> outdate
if [ "$UPDATE" = 1 ]; then
sed "s/^version=.*/version=$upver/" -i $ppath/Pkgfile
pushd $ppath
fakeroot pkgbuild -m && sudo pkgbuild -u
popd
fi
[ "$OUT" = 1 ] && {
echo "$ppath $version => $upver" >> outdate
}
fi
}
@ -185,16 +188,8 @@ check() {
parseopt() {
while [ $1 ]; do
case $1 in
-r) while [ $2 ]; do
case $2 in
-*) break;;
*) REPO+=($2)
esac
shift
done;;
-o) OUT=1;;
-v) VERBOSE=1;;
-u) UPDATE=1;;
*) PKG+=($1);;
esac
shift
@ -204,19 +199,9 @@ parseopt() {
main() {
parseopt $@
[ "$OUT" = 1 ] && rm -f outdate error
if [ "$REPO" ]; then
for r in ${REPO[@]}; do
if [ -d "$r" ]; then
for d in $r/*/Pkgfile; do
check $(dirname $d)
done
fi
done
elif [ ${#PKG[@]} -gt 0 ]; then
if [ ${#PKG[@]} -gt 0 ]; then
for p in ${PKG[@]}; do
check $(find . -maxdepth 2 -mindepth 2 -name $p -printf "%P\n" | head -n1)
check $p
done
else
for d in */*/Pkgfile; do

View file

@ -4,7 +4,7 @@
# Depends on:
name=acl
version=2.2.53
version=2.3.1
release=1
source=(https://download.savannah.gnu.org/releases/$name/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=attr
version=2.4.48
version=2.5.1
release=1
source=(https://download.savannah.gnu.org/releases/$name/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=autoconf
version=2.69
version=2.71
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=automake
version=1.16.2
version=1.16.3
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=bash
version=5.0
version=5.1
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=bc
version=3.1.6
version=4.0.0
release=1
source=(https://github.com/gavinhoward/bc/archive/$version/bc-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=binutils
version=2.35.1
version=2.36.1
release=1
source=(https://ftp.gnu.org/gnu/binutils/$name-$version.tar.xz)
@ -26,5 +26,5 @@ build() {
--enable-multilib \
--with-lib-path=/usr/lib:/lib:/usr/lib32
make tooldir=/usr
make tooldir=/usr DESTDIR=$PKG install
make tooldir=/usr DESTDIR=$PKG install -j1
}

View file

@ -4,7 +4,7 @@
# Depends on:
name=bison
version=3.7.3
version=3.7.6
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz)

View file

@ -4,27 +4,11 @@
# Depends on: p11-kit openssl
name=ca-certificates
version=20170514
version=20210119
_version=${version:0:4}-${version:4:2}-${version:6:2}
release=1
source=(http://anduin.linuxfromscratch.org/BLFS/other/make-ca.sh-$version
https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
http://www.cacert.org/certs/root.crt
http://www.cacert.org/certs/class3.crt)
source=(https://curl.se/ca/cacert-$_version.pem)
build() {
install -d $PKG/{usr/sbin,etc/ssl/local}
cp certdata.txt $PKG/etc/ssl/
openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> $PKG/etc/ssl/local/CAcert_Class_1_root.pem
openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> $PKG/etc/ssl/local/CAcert_Class_3_root.pem
cp certdata.txt $PKG/etc/ssl
install -vm755 make-ca.sh-$version $PKG/usr/sbin/make-ca
$PKG/usr/sbin/make-ca -D $PKG
ln -sv /etc/ssl/ca-bundle.crt $PKG/etc/ssl/certs/ca-certificates.crt
install -Dm644 $SRC/cacert-$_version.pem $PKG/etc/ssl/cert.pem
}

View file

@ -4,7 +4,7 @@
# Depends on: ca-certificates openssl
name=curl
version=7.73.0
version=7.76.1
release=1
source=(https://curl.haxx.se/download/$name-$version.tar.xz)
@ -14,7 +14,7 @@ build() {
./configure --prefix=/usr \
--disable-static \
--enable-threaded-resolver \
--with-ca-path=/etc/ssl/certs
--with-ca-bundle=/etc/ssl/cert.pem
make
make DESTDIR=$PKG install
}

View file

@ -4,8 +4,8 @@
# Depends on:
name=dhcpcd
version=9.3.2
bootscriptsversion=20201002
version=9.4.0
bootscriptsversion=20210110
release=1
source=(https://roy.marples.name/downloads/dhcpcd/dhcpcd-$version.tar.xz
http://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/blfs-bootscripts-$bootscriptsversion.tar.xz)

View file

@ -4,9 +4,9 @@
# Depends on:
name=dosfstools
version=4.1
version=4.2
release=1
source=(https://github.com/dosfstools/dosfstools/releases/download/v$version/dosfstools-$version.tar.xz)
source=(https://github.com/dosfstools/dosfstools/releases/download/v$version/dosfstools-$version.tar.gz)
build() {
cd $name-$version

View file

@ -4,7 +4,7 @@
# Depends on:
name=eudev
version=3.2.9
version=3.2.10
release=1
source=(https://dev.gentoo.org/~blueness/$name/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=expat
version=2.2.10
version=2.3.0
release=1
source=(https://sourceforge.net/projects/expat/files/expat/$version/expat-$version.tar.bz2)

View file

@ -4,7 +4,7 @@
# Depends on:
name=file
version=5.39
version=5.40
release=1
source=(ftp://ftp.astron.com/pub/$name/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on: bash
name=findutils
version=4.7.0
version=4.8.0
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz)

View file

@ -4,16 +4,13 @@
# Depends on:
name=gdbm
version=1.18.1
version=1.19
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.gz
fix-build-with-gcc10.patch)
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.gz)
build() {
cd $name-$version
patch -Np1 -i ../fix-build-with-gcc10.patch
./configure --prefix=/usr \
--disable-static \
--enable-libgdbm-compat

View file

@ -1,13 +0,0 @@
--- a/src/parseopt.c
+++ b/src/parseopt.c
@@ -255,8 +255,8 @@
}
char *parseopt_program_name;
-char *parseopt_program_doc;
-char *parseopt_program_args;
+extern char *parseopt_program_doc;
+extern char *parseopt_program_args;
const char *program_bug_address = "<" PACKAGE_BUGREPORT ">";
void (*parseopt_help_hook) (FILE *stream);

View file

@ -4,7 +4,7 @@
# Depends on:
name=glibc
version=2.32
version=2.33
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz
$name-fhs-1.patch)

View file

@ -4,7 +4,7 @@
# Depends on:
name=gmp
version=6.2.0
version=6.2.1
release=1
source=(https://ftp.gnu.org/gnu/gmp/$name-$version.tar.xz)

View file

@ -5,7 +5,7 @@
name=gpm
version=1.20.7
bootscriptsversion=20201002
bootscriptsversion=20210110
release=1
source=(https://www.nico.schottelius.org/software/gpm/archives/$name-$version.tar.bz2
gpm-1.20.7-consolidated-1.patch

View file

@ -4,12 +4,12 @@
# Depends on:
name=iana-etc
version=2.30
version=20210222
release=1
source=(http://anduin.linuxfromscratch.org/LFS/$name-$version.tar.bz2)
source=(services protocols)
build() {
cd $name-$version
make
make DESTDIR=$PKG install
install -d -m 755 $PKG/etc
install -m 644 services $PKG/etc
install -m 644 protocols $PKG/etc
}

View file

@ -0,0 +1,137 @@
# /etc/protocols, created 2021-02-22T22:50:58+0800
# Source: https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
hopopt 0 HOPOPT
icmp 1 ICMP
igmp 2 IGMP
ggp 3 GGP
ipv4 4 IPv4
st 5 ST
tcp 6 TCP
cbt 7 CBT
egp 8 EGP
igp 9 IGP
bbn-rcc-mon 10 BBN-RCC-MON
nvp-ii 11 NVP-II
pup 12 PUP
emcon 14 EMCON
xnet 15 XNET
chaos 16 CHAOS
udp 17 UDP
mux 18 MUX
dcn-meas 19 DCN-MEAS
hmp 20 HMP
prm 21 PRM
xns-idp 22 XNS-IDP
trunk-1 23 TRUNK-1
trunk-2 24 TRUNK-2
leaf-1 25 LEAF-1
leaf-2 26 LEAF-2
rdp 27 RDP
irtp 28 IRTP
iso-tp4 29 ISO-TP4
netblt 30 NETBLT
mfe-nsp 31 MFE-NSP
merit-inp 32 MERIT-INP
dccp 33 DCCP
3pc 34 3PC
idpr 35 IDPR
xtp 36 XTP
ddp 37 DDP
idpr-cmtp 38 IDPR-CMTP
tp++ 39 TP++
il 40 IL
ipv6 41 IPv6
sdrp 42 SDRP
ipv6-route 43 IPv6-Route
ipv6-frag 44 IPv6-Frag
idrp 45 IDRP
rsvp 46 RSVP
gre 47 GRE
dsr 48 DSR
bna 49 BNA
esp 50 ESP
ah 51 AH
i-nlsp 52 I-NLSP
narp 54 NARP
mobile 55 MOBILE
tlsp 56 TLSP
skip 57 SKIP
ipv6-icmp 58 IPv6-ICMP
ipv6-nonxt 59 IPv6-NoNxt
ipv6-opts 60 IPv6-Opts
cftp 62 CFTP
sat-expak 64 SAT-EXPAK
kryptolan 65 KRYPTOLAN
rvd 66 RVD
ippc 67 IPPC
sat-mon 69 SAT-MON
visa 70 VISA
ipcv 71 IPCV
cpnx 72 CPNX
cphb 73 CPHB
wsn 74 WSN
pvp 75 PVP
br-sat-mon 76 BR-SAT-MON
sun-nd 77 SUN-ND
wb-mon 78 WB-MON
wb-expak 79 WB-EXPAK
iso-ip 80 ISO-IP
vmtp 81 VMTP
secure-vmtp 82 SECURE-VMTP
vines 83 VINES
ttp 84 TTP
iptm 84 IPTM
nsfnet-igp 85 NSFNET-IGP
dgp 86 DGP
tcf 87 TCF
eigrp 88 EIGRP
ospfigp 89 OSPFIGP
sprite-rpc 90 Sprite-RPC
larp 91 LARP
mtp 92 MTP
ax.25 93 AX.25
ipip 94 IPIP
scc-sp 96 SCC-SP
etherip 97 ETHERIP
encap 98 ENCAP
gmtp 100 GMTP
ifmp 101 IFMP
pnni 102 PNNI
pim 103 PIM
aris 104 ARIS
scps 105 SCPS
qnx 106 QNX
a/n 107 A/N
ipcomp 108 IPComp
snp 109 SNP
compaq-peer 110 Compaq-Peer
ipx-in-ip 111 IPX-in-IP
vrrp 112 VRRP
pgm 113 PGM
l2tp 115 L2TP
ddx 116 DDX
iatp 117 IATP
stp 118 STP
srp 119 SRP
uti 120 UTI
smp 121 SMP
ptp 123 PTP
fire 125 FIRE
crtp 126 CRTP
crudp 127 CRUDP
sscopmce 128 SSCOPMCE
iplt 129 IPLT
sps 130 SPS
pipe 131 PIPE
sctp 132 SCTP
fc 133 FC
rsvp-e2e-ignore 134 RSVP-E2E-IGNORE
udplite 136 UDPLite
mpls-in-ip 137 MPLS-in-IP
manet 138 manet
hip 139 HIP
shim6 140 Shim6
wesp 141 WESP
rohc 142 ROHC
ethernet 143 Ethernet
reserved 255 Reserved

11447
ports/core/iana-etc/services Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,66 @@
#!/bin/sh -
#@ Update protocols and services from IANA.
#@ Taken from ArchLinux script written by Gaetan Bisson. Adjusted for CRUX.
awk=awk
curl=curl
url_pn='https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml'
url_snpn="https://www.iana.org/assignments/service-names-port-numbers/\
service-names-port-numbers.xml"
download() {
datetime=`date +'%FT%T%z'`
echo 'Downloading protocols'
${curl} -o protocols.xml ${url_pn}
[ ${?} -eq 0 ] || exit 20
echo 'Downloading services'
${curl} -o services.xml ${url_snpn}
[ ${?} -eq 0 ] || exit 21
}
process() {
echo 'Processing protocols'
${awk} -F "[<>]" -v URL="${url_pn}" -v DT="${datetime}" '
BEGIN{
print "# /etc/protocols, created " DT
print "# Source: " URL
}
/<record/ {v = n = ""}
/<value/ {v = $3}
/<name/ && $3!~/ / {n = $3}
/<\/record/ && n && v != ""{
printf "%-12s %3i %s\n", tolower(n), v, n
}
' < protocols.xml > protocols.new
[ ${?} -eq 0 ] || exit 30
echo 'Processing services'
${awk} -F "[<>]" -v URL="${url_snpn}" -v DT="${datetime}" '
BEGIN{
print "# /etc/services, created " DT
print "# Source: " URL
}
/<record/ {n = u = p = c = ""}
/<name/ && !/\(/ {n = $3}
/<number/ {u = $3}
/<protocol/ {p = $3}
/Unassigned/ || /Reserved/ || /historic/ {c = 1}
/<\/record/ && n && u && p && !c{
printf "%-15s %5i/%s\n", n, u, p
}
' < services.xml > services.new
[ ${?} -eq 0 ] || exit 31
}
update() {
mv protocols.new protocols
[ ${?} -eq 0 ] || exit 40
mv services.new services
[ ${?} -eq 0 ] || exit 41
rm -f protocols.xml services.xml
[ ${?} -eq 0 ] || exit 42
}
download
process
update

View file

@ -4,7 +4,7 @@
# Depends on:
name=inetutils
version=1.9.4
version=2.0
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=iproute2
version=5.9.0
version=5.11.0
release=1
source=(https://www.kernel.org/pub/linux/utils/net/$name/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=kmod
version=27
version=28
release=1
source=(https://www.kernel.org/pub/linux/utils/kernel/$name/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on: ncurses
name=less
version=563
version=581
release=1
source=(http://www.greenwoodsoftware.com/$name/$name-$version.tar.gz)

View file

@ -4,9 +4,9 @@
# Depends on:
name=libarchive
version=3.4.3
version=3.5.1
release=1
source=(https://github.com/libarchive/libarchive/releases/download/v$version/libarchive-$version.tar.gz)
source=(https://github.com/libarchive/libarchive/releases/download/$version/libarchive-$version.tar.xz)
build() {
cd $name-$version

View file

@ -4,7 +4,7 @@
# Depends on:
name=libcap
version=2.45
version=2.49
release=1
source=(https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on: openssl libevent
name=links
version=2.21
version=2.22
release=1
source=(http://links.twibright.com/download/$name-$version.tar.bz2)

View file

@ -4,7 +4,7 @@
# Depends on:
name=linux-api-headers
version=5.4.74
version=5.11.15
release=1
source=(https://www.kernel.org/pub/linux/kernel/v5.x/linux-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=linux-firmware
version=20201022
version=20210315
release=1
source=(https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-$version.tar.gz)

View file

@ -4,9 +4,9 @@
# Depends on: elfutils mkinitramfs openssl linux-firmware
name=linux
version=5.4.74
version=5.11.15
release=1
source=(https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$version.tar.xz
source=(https://www.kernel.org/pub/linux/kernel/v5.x/linux-$version.tar.xz
config)
build() {

View file

@ -4,7 +4,7 @@
# Depends on:
name=lz4
version=1.9.2
version=1.9.3
release=1
source=(https://github.com/lz4/lz4/archive/v$version/lz4-v$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on: bash gdbm groff less libpipeline zlib
name=man-db
version=2.9.3
version=2.9.4
release=1
source=(https://savannah.nongnu.org/download/man-db/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=man-pages
version=5.09
version=5.11
release=1
source=(https://www.kernel.org/pub/linux/docs/$name/$name-$version.tar.xz)

View file

@ -3,7 +3,7 @@
# Maintainer: Emmett1, emmett1 dot 2miligrams at gmail dot com
name=mtools
version=4.0.25
version=4.0.26
release=1
source=(ftp://ftp.gnu.org/gnu/mtools/$name-$version.tar.bz2)

View file

@ -4,7 +4,7 @@
# Depends on:
name=openssl
version=1.1.1h
version=1.1.1k
release=1
source=(https://openssl.org/source/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=p11-kit
version=0.23.21
version=0.23.22
release=1
source=(https://github.com/p11-glue/p11-kit/releases/download/$version/p11-kit-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=perl
version=5.32.0
version=5.32.1
release=1
source=(https://www.cpan.org/src/5.0/$name-$version.tar.xz)

View file

@ -4,12 +4,12 @@
# Depends on: ncurses
name=procps-ng
version=3.3.16
version=3.3.17
release=1
source=(https://sourceforge.net/projects/procps-ng/files/Production/$name-$version.tar.xz)
build() {
cd $name-$version
cd procps-$version
./configure --prefix=/usr \
--exec-prefix= \

View file

@ -4,7 +4,7 @@
# Depends on:
name=psmisc
version=23.3
version=23.4
release=1
source=(https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on: libffi
name=python3
version=3.9.0
version=3.9.4
release=1
source=(https://www.python.org/ftp/python/$version/Python-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=readline
version=8.0
version=8.1
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=sysvinit
version=2.97
version=2.99
release=1
source=(http://download.savannah.gnu.org/releases/sysvinit/sysvinit-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on: acl attr
name=tar
version=1.32
version=1.34
release=1
source=(https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=tzdata
version=2020d
version=2021a
release=1
source=(https://www.iana.org/time-zones/repository/releases/${name}${version}.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on: acl gawk
name=vim
version=8.2.1978
version=8.2.2771
release=1
source=(https://github.com/vim/vim/archive/v$version.tar.gz)

View file

@ -4,7 +4,7 @@
# Depends on:
name=wget
version=1.20.3
version=1.21.1
release=1
source=(https://ftp.gnu.org/gnu/wget/wget-$version.tar.gz)

View file

@ -5,7 +5,7 @@
name=wpa_supplicant
version=2.9
bootscriptsversion=20201002
bootscriptsversion=20210110
release=1
source=(https://w1.fi/releases/wpa_supplicant-$version.tar.gz
http://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/blfs-bootscripts-$bootscriptsversion.tar.xz

View file

View file

View file

View file

@ -1,18 +1,20 @@
#!/bin/sh
[ -f venom-vm.img ] || {
qemu-img create -f qcow2 venom-vm.img 50G
[ -f lfs-scripts.qcow2 ] || {
qemu-img create -f qcow2 lfs-scripts.qcow2 50G
}
exec qemu-system-x86_64 -enable-kvm \
-cpu host \
-drive file=venom-vm.img,if=virtio \
-netdev user,id=vmnic,hostname=Venom \
-drive file=lfs-scripts.qcow2,if=virtio \
-netdev user,id=vmnic,hostname=LFS \
-device virtio-net,netdev=vmnic \
-device virtio-rng-pci \
-m 2G \
-smp 4 \
-monitor stdio \
-name "VenomLinux VM" \
-name "LFS VM" \
-boot d \
-cdrom $@
rm -f lfs-scripts.qcow2

View file

@ -1,6 +1,6 @@
name=binutils
version=2.35.1
source=(http://ftp.gnu.org/gnu/binutils/binutils-$version.tar.xz)
version=2.36.1
source="http://ftp.gnu.org/gnu/binutils/binutils-$version.tar.xz"
build() {
cd $name-$version

View file

@ -3,10 +3,10 @@ version=10.2.0
gmp_version=6.2.0
mpc_version=1.2.1
mpfr_version=4.1.0
source=(http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz
source="http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz
http://ftp.gnu.org/gnu/gmp/gmp-$gmp_version.tar.xz
https://ftp.gnu.org/gnu/mpc/mpc-$mpc_version.tar.gz
http://www.mpfr.org/mpfr-$mpfr_version/mpfr-$mpfr_version.tar.xz)
http://www.mpfr.org/mpfr-$mpfr_version/mpfr-$mpfr_version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=linux
version=5.4.74
source=(https://www.kernel.org/pub/linux/kernel/v5.x/linux-$version.tar.xz)
version=5.11.15
source="https://www.kernel.org/pub/linux/kernel/v5.x/linux-$version.tar.xz"
build() {
cd linux-$version

View file

@ -1,6 +1,6 @@
name=glibc
version=2.32
source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz)
version=2.33
source="http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=gcc
version=10.2.0
source=(http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz)
source="http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=binutils
version=2.35.1
source=(http://ftp.gnu.org/gnu/binutils/binutils-$version.tar.xz)
version=2.36.1
source="http://ftp.gnu.org/gnu/binutils/binutils-$version.tar.xz"
build() {
cd $name-$version

View file

@ -3,10 +3,10 @@ version=10.2.0
gmp_version=6.2.0
mpc_version=1.2.1
mpfr_version=4.1.0
source=(http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz
source="http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz
http://ftp.gnu.org/gnu/gmp/gmp-$gmp_version.tar.xz
https://ftp.gnu.org/gnu/mpc/mpc-$mpc_version.tar.gz
http://www.mpfr.org/mpfr-$mpfr_version/mpfr-$mpfr_version.tar.xz)
http://www.mpfr.org/mpfr-$mpfr_version/mpfr-$mpfr_version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=m4
version=1.4.18
source=(http://ftp.gnu.org/gnu/m4/m4-$version.tar.xz)
source="http://ftp.gnu.org/gnu/m4/m4-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=ncurses
version=6.2
source=(http://ftp.gnu.org/gnu/ncurses/ncurses-$version.tar.gz)
source="http://ftp.gnu.org/gnu/ncurses/ncurses-$version.tar.gz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=bash
version=5.0
source=(http://ftp.gnu.org/gnu/bash/bash-$version.tar.gz)
version=5.1
source="http://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=bison
version=3.7.3
source=(http://ftp.gnu.org/gnu/bison/bison-$version.tar.xz)
version=3.7.6
source="http://ftp.gnu.org/gnu/bison/bison-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=bzip2
version=1.0.8
source=(https://www.sourceware.org/pub/bzip2/$name-$version.tar.gz)
source="https://www.sourceware.org/pub/bzip2/$name-$version.tar.gz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=coreutils
version=8.32
source=(http://ftp.gnu.org/gnu/coreutils/coreutils-$version.tar.xz)
source="http://ftp.gnu.org/gnu/coreutils/coreutils-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=diffutils
version=3.7
source=(http://ftp.gnu.org/gnu/diffutils/diffutils-$version.tar.xz)
source="http://ftp.gnu.org/gnu/diffutils/diffutils-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=file
version=5.39
source=(ftp://ftp.astron.com/pub/file/file-$version.tar.gz)
version=5.40
source="ftp://ftp.astron.com/pub/file/file-$version.tar.gz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=findutils
version=4.7.0
source=(http://ftp.gnu.org/gnu/findutils/findutils-$version.tar.xz)
version=4.8.0
source="http://ftp.gnu.org/gnu/findutils/findutils-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=gawk
version=5.1.0
source=(http://ftp.gnu.org/gnu/gawk/gawk-$version.tar.xz)
source="http://ftp.gnu.org/gnu/gawk/gawk-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=gettext
version=0.21
source=(http://ftp.gnu.org/gnu/gettext/gettext-$version.tar.xz)
source="http://ftp.gnu.org/gnu/gettext/gettext-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=grep
version=3.6
source=(http://ftp.gnu.org/gnu/grep/grep-$version.tar.xz)
source="http://ftp.gnu.org/gnu/grep/grep-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=gzip
version=1.10
source=(http://ftp.gnu.org/gnu/gzip/gzip-$version.tar.xz)
source="http://ftp.gnu.org/gnu/gzip/gzip-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=make
version=4.3
source=(http://ftp.gnu.org/gnu/make/make-$version.tar.gz)
source="http://ftp.gnu.org/gnu/make/make-$version.tar.gz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=patch
version=2.7.6
source=(http://ftp.gnu.org/gnu/patch/patch-$version.tar.xz)
source="http://ftp.gnu.org/gnu/patch/patch-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=perl
version=5.32.0
source=(https://www.cpan.org/src/5.0/perl-$version.tar.xz)
version=5.32.1
source="https://www.cpan.org/src/5.0/perl-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=python
version=3.9.0
source=(https://www.python.org/ftp/python/$version/Python-$version.tar.xz)
version=3.9.4
source="https://www.python.org/ftp/python/$version/Python-$version.tar.xz"
build() {
cd Python-$version

View file

@ -1,6 +1,6 @@
name=sed
version=4.8
source=(http://ftp.gnu.org/gnu/sed/sed-$version.tar.xz)
source="http://ftp.gnu.org/gnu/sed/sed-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=tar
version=1.32
source=(http://ftp.gnu.org/gnu/tar/tar-$version.tar.xz)
version=1.34
source="http://ftp.gnu.org/gnu/tar/tar-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=texinfo
version=6.7
source=(http://ftp.gnu.org/gnu/texinfo/texinfo-$version.tar.xz)
source="http://ftp.gnu.org/gnu/texinfo/texinfo-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=xz
version=5.2.5
source=(https://tukaani.org/xz/xz-$version.tar.xz)
source="https://tukaani.org/xz/xz-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=openssl
version=1.1.1h
source=(https://openssl.org/source/openssl-$version.tar.gz)
version=1.1.1k
source="https://openssl.org/source/openssl-$version.tar.gz"
build() {
cd $name-$version

View file

@ -1,131 +1,9 @@
name=certs
source=(http://anduin.linuxfromscratch.org/BLFS/other/certdata.txt)
name=ca-certificates
version=20210119
_version=${version:0:4}-${version:4:2}-${version:6:2}
release=1
source="https://curl.se/ca/cacert-$_version.pem"
build() {
cat > make-cert.pl << "EOF"
#!/usr/bin/perl -w
# Used to generate PEM encoded files from Mozilla certdata.txt.
# Run as ./make-cert.pl > certificate.crt
#
# Parts of this script courtesy of RedHat (mkcabundle.pl)
#
# This script modified for use with single file data (tempfile.cer) extracted
# from certdata.txt, taken from the latest version in the Mozilla NSS source.
# mozilla/security/nss/lib/ckfw/builtins/certdata.txt
#
# Authors: DJ Lucas
# Bruce Dubbs
#
# Version 20120211
my $certdata = './tempfile.cer';
open( IN, "cat $certdata|" )
|| die "could not open $certdata";
my $incert = 0;
while ( <IN> )
{
if ( /^CKA_VALUE MULTILINE_OCTAL/ )
{
$incert = 1;
open( OUT, "|openssl x509 -text -inform DER -fingerprint" )
|| die "could not pipe to openssl x509";
}
elsif ( /^END/ && $incert )
{
close( OUT );
$incert = 0;
print "\n\n";
}
elsif ($incert)
{
my @bs = split( /\\/ );
foreach my $b (@bs)
{
chomp $b;
printf( OUT "%c", oct($b) ) unless $b eq '';
}
}
}
EOF
chmod +x make-cert.pl
cat > make-ca.sh << "EOF"
#!/bin/sh
# Begin make-ca.sh
# Script to populate OpenSSL's CApath from a bundle of PEM formatted CAs
#
# The file certdata.txt must exist in the local directory
# Version number is obtained from the version of the data.
#
# Authors: DJ Lucas
# Bruce Dubbs
#
# Version 20120211
certdata="certdata.txt"
if [ ! -r $certdata ]; then
echo "$certdata must be in the local directory"
exit 1
fi
REVISION=$(grep CVS_ID $certdata | cut -f4 -d'$')
if [ -z "${REVISION}" ]; then
echo "$certfile has no 'Revision' in CVS_ID"
exit 1
fi
VERSION=$(echo $REVISION | cut -f2 -d" ")
TEMPDIR=$(mktemp -d)
TRUSTATTRIBUTES="CKA_TRUST_SERVER_AUTH"
BUNDLE="BLFS-ca-bundle.crt"
CONVERTSCRIPT="${PWD}/make-cert.pl"
SSLDIR="/tools/etc/ssl"
mkdir "${TEMPDIR}/certs"
# Get a list of starting lines for each cert
CERTBEGINLIST=$(grep -n "^# Certificate" "${certdata}" | cut -d ":" -f1)
# Get a list of ending lines for each cert
CERTENDLIST=`grep -n "^CKA_TRUST_STEP_UP_APPROVED" "${certdata}" | cut -d ":" -f 1`
# Start a loop
for certbegin in ${CERTBEGINLIST}; do
for certend in ${CERTENDLIST}; do
if test "${certend}" -gt "${certbegin}"; then
break
fi
done
# Dump to a temp file with the name of the file as the beginning line number
sed -n "${certbegin},${certend}p" "${certdata}" > "${TEMPDIR}/certs/${certbegin}.tmp"
done
unset CERTBEGINLIST CERTDATA CERTENDLIST certbegin certend
mkdir -p certs
rm -f certs/* # Make sure the directory is clean
for tempfile in ${TEMPDIR}/certs/*.tmp; do
# Make sure that the cert is trusted...
grep "CKA_TRUST_SERVER_AUTH" "${tempfile}" | \
egrep "TRUST_UNKNOWN|NOT_TRUSTED" > /dev/null
if test "${?}" = "0"; then
# Throw a meaningful error and remove the file
cp "${tempfile}" tempfile.cer
perl ${CONVERTSCRIPT} > tempfile.crt
keyhash=$(openssl x509 -noout -in tempfile.crt -hash)
echo "Certificate ${keyhash} is not trusted! Removing..."
rm -f tempfile.cer tempfile.crt "${tempfile}"
continue
fi
# If execution made it to here in the loop, the temp cert is trusted
# Find the cert data and generate a cert file for it
cp "${tempfile}" tempfile.cer
perl ${CONVERTSCRIPT} > tempfile.crt
keyhash=$(openssl x509 -noout -in tempfile.crt -hash)
mv tempfile.crt "certs/${keyhash}.pem"
rm -f tempfile.cer "${tempfile}"
echo "Created ${keyhash}.pem"
done
# Remove blacklisted files
# MD5 Collision Proof of Concept CA
if test -f certs/8f111d69.pem; then
echo "Certificate 8f111d69 is not trusted! Removing..."
rm -f certs/8f111d69.pem
fi
# Finally, generate the bundle and clean up.
cat certs/*.pem > ${BUNDLE}
rm -r "${TEMPDIR}"
EOF
chmod +x make-ca.sh
./make-ca.sh
install -v -m644 BLFS-ca-bundle.crt /tools/etc/ssl/certs/ca-certificates.crt
install -Dm644 $SRCDIR/cacert-$_version.pem /tools/etc/ssl/cert.pem
}

View file

@ -1,13 +1,13 @@
name=curl
version=7.73.0
source=(https://curl.haxx.se/download/$name-$version.tar.xz)
version=7.76.1
source="https://curl.haxx.se/download/$name-$version.tar.xz"
build() {
cd $name-$version
./configure --prefix=/tools \
--disable-static \
--enable-threaded-resolver \
--with-ca-bundle=/tools/etc/ssl/certs/ca-certificates.crt
--with-ca-bundle=/tools/etc/ssl/cert.pem
make
make DESTDIR=$PKG install
make install
}

View file

@ -1,6 +1,6 @@
name=libarchive
version=3.4.3
source=(https://github.com/libarchive/libarchive/releases/download/v$version/libarchive-$version.tar.gz)
version=3.5.1
source="https://github.com/libarchive/libarchive/releases/download/$version/libarchive-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=pkgutils
version=5.40.7
source=(http://crux.nu/files/$name-$version.tar.xz)
source="http://crux.nu/files/$name-$version.tar.xz"
build() {
cd $name-$version

View file

@ -1,6 +1,6 @@
name=
version=
source=()
source=""
build() {
cd $name-$version