major changes, use pkgutils as package manager

This commit is contained in:
emmett1 2019-09-28 00:17:56 +08:00
parent d05fc1288e
commit 5210822d9d
291 changed files with 13747 additions and 5766 deletions

3
.gitignore vendored
View file

@ -1,3 +1,2 @@
*.iso
toolchain/log
toolchain/src
sources

View file

@ -1,44 +1,126 @@
#!/bin/bash -e
#!/bin/bash
fetch() {
tarballname=$(echo $1 | rev | cut -d / -f 1 | rev)
WGETCMD="wget --passive-ftp --tries=3 --waitretry=3 --output-document=$2/$tarballname.partial"
WGETRESUME="-c"
if [ -f $2/$tarballname ]; then
echo "Source file $tarballname found."
return 0
else
if [ -f $2/$tarballname.partial ]; then
echo "Resuming $1"
$WGETCMD $WGETRESUME $1
else
mkdir -p "$2"
echo "Downloading $1"
$WGETCMD $1
fi
fi
if [ $? = 0 ]; then
mv $2/$tarballname.partial $2/$tarballname
fi
}
fetch_src() {
if [ "${#source[@]}" -gt 0 ]; then
for s in ${source[@]}; do
fetch $s $SRCDIR
done
fi
}
extract_src() {
[ "$name" ] && rm -fr $WORKDIR/$name
mkdir -p $WORKDIR/$name
if [ "${#source[@]}" -gt 0 ]; then
for s in ${source[@]}; do
filename=$(basename $s)
case $filename in
*.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
tar xvf $SRCDIR/$filename -C $WORKDIR/$name || exit 1;;
*)
cp -v $SRCDIR/$filename $WORKDIR/$name || exit 1;;
esac
done
fi
}
build_src() {
cd $WORKDIR/$name
if [ "$(type -t build)" = function ]; then
(set -e -x; build)
fi
if [ $? -ne 0 ]; then
echo "!!! build $name-$version failed !!!"
exit 1
else
echo "--- build $name-$version success ---"
fi
[ "$name" ] && rm -fr $WORKDIR/$name
register
}
register() {
echo $name-$version > $LFS/tools/$(basename $script)
}
checkdone() {
if [ -e $LFS/tools/$(basename $script) ]; then
echo "*** skip $(basename $script) ***"
return 1
fi
return 0
}
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
done
sudo chown -Rv 0:0 $LFS
}
if [ $(id -u) = 0 ]; then
echo "$0 script need to run as regular user!"
exit 1
fi
source $(dirname $0)/toolchain/functions
CWD=$PWD
if [ "$1" != "fetch" ]; then
if [ ! -d $LFS/tools ]; then
sudo mkdir -pv $LFS/tools
fi
source $CWD/config
if [ ! -w $LFS ]; then
sudo chown -Rv $USER:$USER $LFS
fi
PATH=/tools/bin:/bin:/usr/bin
if [ ! -L /tools ] || [ $(realpath /tools) != $LFS/tools ]; then
sudo ln -svf $LFS/tools /
fi
export LC_ALL=C PATH MAKEFLAGS LFS LFS_TGT
mkdir -p $TCDIR $SRCDIR $WORKDIR
if [ ! -d $LFS/tools ]; then
sudo mkdir -pv $LFS/tools
fi
for script in $(ls toolchain | grep ^[0-9]); do
if [ "$1" = "fetch" ]; then
$(dirname $0)/toolchain/$script "$1"
elif [ -f /tools/"$script" ]; then
echo "--- $script skipped ---"
else
echo "*** $script ***"
$(dirname $0)/toolchain/$script
echo; echo "*** $script done ***"; echo
[ "$1" = $(echo $script | cut -d - -f1) ] && exit
fi
done
if [ ! -w $LFS ]; then
sudo chown -Rv $USER:$USER $LFS
fi
[ "$1" = "fetch" ] && exit 0
if [ ! -L /tools ] || [ $(realpath /tools) != $LFS/tools ]; then
sudo ln -svf $LFS/tools /
fi
sudo chown -Rv 0:0 $LFS
main $@
echo
echo "**************************************************"
echo "********* Toolchain build complete *********"
echo "**************************************************"
exit 0

156
02-base Executable file
View file

@ -0,0 +1,156 @@
#!/bin/bash
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/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
ln -svf /tools/bin/{env,install,perl,printf} $LFS/usr/bin
ln -svf /tools/lib/libgcc_s.so{,.1} $LFS/usr/lib
ln -svf /tools/lib/libstdc++.{a,so{,.6}} $LFS/usr/lib
ln -svf bash $LFS/bin/sh
ln -svf /proc/self/mounts $LFS/etc/mtab
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"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
input:x:24:
mail:x:34:
kvm:x:61:
wheel:x:97:
nogroup:x:99:
users:x:999:
EOF
# pkgutils
mkdir -p $LFS/var/lib/pkg/{pkg,src,work}
touch $LFS/var/lib/pkg/db
}
mount_pseudo() {
mkdir -p $LFS/{dev,run,proc,sys}
mount --bind /dev $LFS/dev
mount -t devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -t proc proc $LFS/proc
mount -t sysfs sysfs $LFS/sys
mount -t tmpfs tmpfs $LFS/run
if [ -h $LFS/dev/shm ]; then
mkdir -p $LFS/$(readlink $LFS/dev/shm)
fi
}
umount_pseudo() {
mountpoint -q $LFS/dev/pts && umount $LFS/dev/pts
mountpoint -q $LFS/dev && umount $LFS/dev
mountpoint -q $LFS/run && umount $LFS/run
mountpoint -q $LFS/proc && umount $LFS/proc
mountpoint -q $LFS/sys && umount $LFS/sys
}
runinchroot() {
pushd $LFS &>/dev/null
mount_pseudo
cp -L /etc/resolv.conf $LFS/etc/
chroot "$LFS" $ENVLFS -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin $@
retval=$?
umount_pseudo
popd &>/dev/null
return $retval
}
interrupted() {
die "script $(basename $0) aborted!"
}
die() {
[ "$@" ] && printerror $@
umount_pseudo
exit 1
}
printerror() {
echo -e "ERROR: $@"
}
trap "interrupted" SIGHUP SIGINT SIGQUIT SIGTERM
CWD=$PWD
source $CWD/config
if [ $(id -u) != 0 ]; then
echo "$0 script need to run as root!"
exit 1
fi
if [ -x $LFS/usr/bin/env ]; then
ENVLFS=/usr/bin/env
else
ENVLFS=/tools/bin/env
fi
PKGS="filesystem linux-api-headers man-pages glibc tzdata zlib file readline m4 bc binutils gmp mpfr mpc shadow gcc bzip2
pkg-config ncurses attr acl libcap sed psmisc iana-etc bison flex grep bash libtool gdbm gperf expat inetutils
perl perl-xml-parser intltool autoconf automake xz kmod gettext elfutils libffi openssl python3 coreutils
diffutils gawk findutils groff fuse2 grub less gzip iproute2 kbd libpipeline make patch man-db tar texinfo vim procps-ng
util-linux e2fsprogs sysklogd sysvinit eudev lfs-bootscripts linux-firmware libarchive mkinitramfs linux libtasn1 p11-kit ca-certificates
wget pkgutils libnl dbus libxml2 dhcpcd wpa_supplicant"
if [ ! -f $LFS/var/lib/pkg/db ]; then
lfs_dirs
fi
mkdir -p $LFS/usr/ports/
echo "==> Copying ports"
cp -Ra ports/* $LFS/usr/ports/
if [ -d sources/ ]; then
echo "==> Copying sources"
cp -Ra sources/* $LFS/var/lib/pkg/src/
fi
if [ -d packages/ ]; then
echo "==> Copying packages"
cp -Ra packages/* $LFS/var/lib/pkg/pkg/
fi
for pkg in $PKGS; do
case $pkg in
filesystem|gcc|bash|perl|coreutils) runinchroot pkgin -i -ic $pkg || die;;
*) runinchroot pkgin -i $pkg || die;;
esac
done
exit 0

View file

@ -1,205 +0,0 @@
#!/bin/bash
if [ $(id -u) != 0 ]; then
echo "$0 script need to run as root!"
exit 1
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
mknod -m 666 $LFS/dev/null c 1 3
mkdir -pv $LFS/{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
mkdir -pv $LFS/{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 $LFS/root
install -dv -m 1777 $LFS/tmp $LFS/var/tmp
mkdir -pv $LFS/usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv $LFS/usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -v $LFS/usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -v $LFS/usr/libexec
mkdir -pv $LFS/usr/{,local/}share/man/man{1..8}
case $(uname -m) in
x86_64) mkdir -v $LFS/lib64 ;;
esac
mkdir -v $LFS/var/{log,mail,spool}
ln -sv /run $LFS/var/run
ln -sv /run/lock $LFS/var/lock
mkdir -pv $LFS/var/{opt,cache,lib/{color,misc,locate},local}
ln -sv /tools/bin/{bash,cat,dd,echo,ln,pwd,rm,stty} $LFS/bin
ln -sv /tools/bin/{env,install,perl} $LFS/usr/bin
ln -sv /tools/lib/libgcc_s.so{,.1} $LFS/usr/lib
ln -sv /tools/lib/libstdc++.{a,so{,.6}} $LFS/usr/lib
for lib in blkid lzma mount uuid
do
ln -sv /tools/lib/lib$lib.so* $LFS/usr/lib
done
ln -svf /tools/include/blkid $LFS/usr/include
ln -svf /tools/include/libmount $LFS/usr/include
ln -svf /tools/include/uuid $LFS/usr/include
install -vdm755 $LFS/usr/lib/pkgconfig
for pc in blkid mount uuid
do
sed 's@tools@usr@g' /tools/lib/pkgconfig/${pc}.pc \
> $LFS/usr/lib/pkgconfig/${pc}.pc
done
ln -sv bash $LFS/bin/sh
ln -sv /proc/self/mounts $LFS/etc/mtab
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"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
systemd-journal:x:23:
input:x:24:
mail:x:34:
nogroup:x:99:
users:x:999:
EOF
touch $LFS/var/log/{btmp,lastlog,faillog,wtmp}
chgrp -v utmp $LFS/var/log/lastlog
chmod -v 664 $LFS/var/log/lastlog
chmod -v 600 $LFS/var/log/btmp
mkdir -p $LFS/etc/pkg $LFS/var/lib/pkg $LFS/var/lib/pkg/sources $LFS/usr/pkgscripts
touch $LFS/var/lib/pkg/db
[ -d toolchain/src ] && cp -Rv toolchain/src/* $LFS/var/lib/pkg/sources
}
mount_pseudo() {
mount --bind /dev $LFS/dev
mount -t devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -t proc proc $LFS/proc
mount -t sysfs sysfs $LFS/sys
mount -t tmpfs tmpfs $LFS/run
if [ -h $LFS/dev/shm ]; then
mkdir -p $LFS/$(readlink $LFS/dev/shm)
fi
}
umount_pseudo() {
umount $LFS/dev/pts
umount $LFS/dev
umount $LFS/run
umount $LFS/proc
umount $LFS/sys
}
runchroot() {
pushd $LFS &>/dev/null
mount_pseudo
cp -L /etc/resolv.conf $LFS/etc/
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash $@
retval=$?
umount_pseudo
popd &>/dev/null
return $retval
}
runinchroot() {
pushd $LFS &>/dev/null
mount_pseudo
cp -L /etc/resolv.conf $LFS/etc/
chroot "$LFS" $ENVLFS -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin $@
retval=$?
umount_pseudo
popd &>/dev/null
return $retval
}
interrupted() {
die "Abort by user."
}
die() {
[ "$@" ] && printerror $@
umount_pseudo
exit 1
}
printerror() {
echo -e "ERROR: $@"
}
trap "interrupted" SIGHUP SIGINT SIGQUIT SIGTERM
PKGS="linux-api-headers man-pages glibc zlib file readline m4 bc binutils gmp mpfr mpc shadow gcc bzip2
pkg-config ncurses attr acl libcap sed psmisc iana-etc bison flex grep bash libtool gdbm gperf expat inetutils perl perl-xml-parser
intltool autoconf automake xz kmod gettext libelf libffi openssl python3 ninja meson procps-ng e2fsprogs coreutils check diffutils
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 links libpng pcre slang glib mc"
if [ ! -f $LFS/var/lib/pkg/db ]; then
lfs_dirs
fi
mkdir -p $LFS/usr/pkgscripts/
cp lfs/pkgscripts/* $LFS/usr/pkgscripts/
cp lfs/functions $LFS/var/lib/pkg/
cp lfs/pkg.conf $LFS/etc/pkg/
for i in $PKGS $EXTRA_PKGS; do
if [[ $(grep "^$i " $LFS/var/lib/pkg/db) ]]; then
echo "--- $i skipped ---"
else
echo "*** $i ***"
runinchroot bash /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

103
03-mkiso Executable file
View file

@ -0,0 +1,103 @@
#!/bin/bash -e
chroot_run() {
mount_pseudofs
cp -L /etc/resolv.conf $LFS/etc/
chroot $LFS $@
retval=$?
umount_pseudofs
return $retval
}
mount_pseudofs() {
mount --bind /dev $LFS/dev
mount -t devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -t proc proc $LFS/proc
mount -t sysfs sysfs $LFS/sys
mount -t tmpfs tmpfs $LFS/run
}
umount_pseudofs() {
umount $LFS/dev/pts &>/dev/null
umount $LFS/dev &>/dev/null
umount $LFS/run &>/dev/null
umount $LFS/proc &>/dev/null
umount $LFS/sys &>/dev/null
}
interrupted() {
die "Abort by user."
}
cleanup() {
#rm -fr $LFS
rm -fr $WDIR
}
die() {
[ "$@" ] && printerror $@
umount_pseudofs
cleanup
exit 1
}
printstep() {
echo -e "\e[0;36m::\e[0m $*"
}
printerror() {
echo -e "\e[0;31mERROR:\e[0m $*"
}
CWD=$PWD
source $CWD/config
isolinux_files="chain.c32 isolinux.bin ldlinux.c32 libutil.c32 reboot.c32 menu.c32 libcom32.c32 poweroff.c32"
rm -fr $WDIR
mkdir -p $WDIR
printstep "Preparing isolinux files..."
mkdir -p $WDIR/{lfs,isolinux,boot}
for file in $isolinux_files; do
cp /usr/share/syslinux/$file $WDIR/isolinux
done
#cp isolinux/splash.png $WDIR/isolinux
cp $FILEDIR/isolinux.cfg $WDIR/isolinux
[ -d rootfs ] && cp -Ra rootfs $WDIR
printstep "Make squash filesystem..."
mksquashfs $LFS $WDIR/lfs/root.sfs \
-b 1048576 -comp xz -Xdict-size 100% \
-e $LFS/var/lib/pkg/src/* \
-e $LFS/var/lib/pkg/pkg/* \
-e $LFS/var/lib/pkg/work/* \
-e $LFS/tools/ \
-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 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-lfs.img || die "failed create initramfs"
cp $LFS/boot/initrd-lfs.img $WDIR/boot/initrd || die "failed copying initrd"
printstep "Making the iso..."
rm -f $OUTPUT
xorriso -as mkisofs \
-isohybrid-mbr /usr/share/syslinux/isohdpfx.bin \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-no-emul-boot \
-isohybrid-gpt-basdat \
-volid $LABEL \
-o $OUTPUT $WDIR || die "failed create iso"
printstep "Cleaning up..."
cleanup
exit 0

View file

@ -1,59 +0,0 @@
#!/bin/bash
if [ $(id -u) != 0 ]; then
echo "$0 script need to run as root!"
exit 1
fi
trap "exit 1" SIGHUP SIGINT SIGQUIT SIGTERM
LFSVERSIOM=8.3
CWD=$PWD
WDIR=/tmp/lfsiso
ISOLINUXDIR=$CWD/livecd/isolinux
DISTRONAME="LFS"
LABEL=LfsLiveCD
LFS=/mnt/lfs
OUTPUT=lfs-$LFSVERSIOM-livecd.iso
isolinux_files="chain.c32 isolinux.bin ldlinux.c32 libutil.c32 reboot.c32 menu.c32
isohdpfx.bin isolinux.cfg libcom32.c32 poweroff.c32"
rm -fr $WDIR
mkdir -p $WDIR
# prepare isolinux in working dir
mkdir -p $WDIR/{filesystem,isolinux,boot}
for file in $isolinux_files; do
cp $ISOLINUXDIR/$file $WDIR/isolinux
done
echo "$DISTRONAME" > $WDIR/isolinux/venomlive
[ -d livecd/virootfs ] && cp -aR livecd/virootfs $WDIR
cp $LFS/boot/vmlinuz-*-lfs $WDIR/boot/vmlinuz
cp $LFS/boot/initrd-*-lfs.img $WDIR/boot/initrd
mksquashfs $LFS $WDIR/filesystem/root.sfs \
-b 1048576 -comp xz -Xdict-size 100% \
-e $LFS/tools/ \
-e $LFS/var/lib/pkg/sources/* \
-e $LFS/var/lib/pkg/work/* \
-e $LFS/tmp/*
rm -f $OUTPUT
xorriso -as mkisofs \
-r -J -joliet-long \
-l -cache-inodes \
-isohybrid-mbr $ISOLINUXDIR/isohdpfx.bin \
-partition_offset 16 \
-volid "$LABEL" \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-o $OUTPUT \
$WDIR
rm -fr $WDIR

16
config Executable file
View file

@ -0,0 +1,16 @@
MAKEFLAGS="-j$(nproc)"
LFS="/mnt/lfs"
LFS_TGT=$(uname -m)-lfs-linux-gnu
TCDIR=$CWD/toolchain
SRCDIR=$CWD/sources
PATCHDIR=$CWD/patches
FILEDIR=$CWD/files
WORKDIR=/tmp
LABEL=LFSLIVECD
OUTPUT=lfslivecd.iso
WDIR=/tmp/lfsiso
#MULTILIB=yes

View file

@ -7,7 +7,7 @@ MENU VSHIFT 3
#MENU ROWS 7
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU TITLE Linux From Scratch 8.3 LiveCD
MENU TITLE Linux From Scratch LiveCD
#MENU BACKGROUND splash.png
#MENU COLOR border 30;44 #40ffffff #a0000000 std
#MENU COLOR title 1;36;44 #9033ccff #a0000000 std
@ -20,15 +20,25 @@ MENU TITLE Linux From Scratch 8.3 LiveCD
#MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
LABEL silent
MENU LABEL Boot Linux From Scratch 8.3
MENU LABEL Boot Linux From Scratch
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd quiet
LABEL debug
MENU LABEL Linux From Scratch 8.3 (Debug)
MENU LABEL Linux From Scratch (Debug)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd verbose
LABEL silentram
MENU LABEL Boot Linux From Scratch [Ram]
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd quiet ram
LABEL debugram
MENU LABEL Linux From Scratch (Debug) [Ram]
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd verbose ram
LABEL existing
MENU LABEL Boot existing OS
COM32 chain.c32

90
files/livecd.hook Executable file
View file

@ -0,0 +1,90 @@
#!/bin/bash
build_hook() {
add_module cdrom
add_module loop
add_module overlay
add_file /lib/udev/rules.d/60-cdrom_id.rules
add_binary /lib/udev/cdrom_id
add_binary blockdev
add_binary losetup
}
run_earlyhook() {
local mod
for mod in cdrom loop overlay; do
modprobe $mod 2>/dev/null
done
if [ -z "$root" ]; then
mount_handler=mount_livecd
fi
}
mount_livecd() {
newroot=$1
MEDIA=/dev/disk/by-label/LFSLIVECD
MEDIUM=/run/initramfs/medium
SYSTEM=/run/initramfs/system
WRITEDIR=/run/initramfs/overlayfs/write
WORKDIR=/run/initramfs/overlayfs/work
sfsimg=/run/initramfs/medium/lfs/root.sfs
wait=${wait:-5}
count=0
if [ ! -e $MEDIA ]; then
msg "wait for media device..."
while [ ! -e $MEDIA ]; do
sleep 1
count=$((count+1))
if [ "$count" -ge "$wait" ]; then
msg "media is not appeared even after wait for $wait seconds..."
msg "try increase wait time by append 'wait=<seconds>' to boot cmdline"
sleep 9999
fi
done
fi
mkdir -p $MEDIUM $SYSTEM $WRITEDIR $WORKDIR
msg "mounting media to $MEDIUM..."
mount -o ro $MEDIA $MEDIUM || problem
if [ "$ram" = y ]; then
msg "mounting /run/initramfs/ram to ram..."
mkdir -p /run/initramfs/ram
mount -t tmpfs -o "size=75%",mode=0755 ram /run/initramfs/ram || problem
msg "copying squashfs img to /run/initramfs/ram..."
cp $sfsimg /run/initramfs/ram/ || problem
sfsimg=/run/initramfs/ram/root.sfs
fi
sfs_dev=$(losetup --find --show --read-only $sfsimg)
msg "mounting squashfs img to $SYSTEM..."
mount -o defaults -r $sfs_dev $SYSTEM || problem
# overlayfs mount
msg "mounting overlays to $newroot..."
mount -t overlay overlay -o upperdir=$WRITEDIR,lowerdir=$SYSTEM,workdir=$WORKDIR $newroot || problem
if [ -d $MEDIUM/rootfs/ ]; then
msg "copying custom files to $newroot..."
cp -aR $MEDIUM/rootfs/* $newroot/ || problem
fi
# Tell system to skip fsck during startup
> $newroot/fastboot
# Execute custom script before switch root
if [ -f $newroot/root/custom_script.sh ]; then
msg "running custom_script.sh script..."
chmod +x $newroot/root/custom_script.sh
chroot $newroot bash /root/custom_script.sh 2>/dev/null
fi
if [ "$ram" = y ]; then
umount $MEDIUM
fi
}

51
files/pkgin Executable file
View file

@ -0,0 +1,51 @@
#!/bin/bash
#
# - a simple wrapper script for pkgmk
# - will build, install, upgrade and other operation without 'cd' into each port directory
# - port will be search automatically follow REPO order, port found first will be selected
# - does not solve dependency
#
# usage:
# pkgin [port names] [pkgmk options]
#
trap "exit 1" SIGHUP SIGINT SIGQUIT SIGTERM
REPO="/usr/ports/core"
while [ $1 ]; do
case $1 in
-*) PKGMK_CMD+=($1);;
*) PKG+=($1);;
esac
shift
done
if [[ "${PKG[@]}" = "" ]]; then
echo "Please provide port name to install."
exit 1
fi
for p in ${PKG[@]}; do
if pkginfo -i | awk '{print $1}' | grep -xq $p; then
echo "Package '$p' is installed."
continue
fi
PKGFOUND=no
for r in $REPO; do
if [ -f $r/$p/Pkgfile ]; then
PKGFOUND=yes
cd $r/$p &>/dev/null
pkgmk ${PKGMK_CMD[@]} || exit $?
[ -x bootstrap-post-install ] && ./bootstrap-post-install
[ -x post-install ] && ./post-install
cd - &>/dev/null
fi
done
if [ "$PKGFOUND" = "no" ]; then
echo "Port '$p' not found."
exit 1
fi
done
exit 0

View file

@ -1,31 +0,0 @@
#!/bin/bash
mkdir -p $SOURCE_DIR $WORK_DIR $LOG_DIR
touch /var/lib/pkg/db
export CFLAGS CXXFLAGS MAKEFLAGS
fetch() {
filename=$(basename $1)
if [ -f $SOURCE_DIR/$filename ]; then
return 0
else
if [ -f $SOURCE_DIR/$filename.part ]; then
wget -c --output-document=$SOURCE_DIR/$filename.part $1
else
wget --output-document=$SOURCE_DIR/$filename.part $1
fi
if [ $? = 0 ]; then
mv $SOURCE_DIR/$filename.part $SOURCE_DIR/$filename
else
return 1
fi
fi
}
registerpkg() {
sed "/^$1 /d" -i /var/lib/pkg/db
echo "$1 $2" >> /var/lib/pkg/db
[ $(type -p ldconfig) ] && ldconfig
echo "::: $1 $2 installed :::"
}

View file

@ -1,7 +0,0 @@
CFLAGS="-O2 -march=x86-64 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEFLAGS="-j$(nproc)"
SOURCE_DIR="/var/lib/pkg/sources"
WORK_DIR="/var/lib/pkg/work"
LOG_DIR="/var/lib/pkg/log"

View file

@ -1,38 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.2.53
url=http://download.savannah.gnu.org/releases/acl/acl-$version.tar.gz
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 \
--bindir=/bin \
--disable-static \
--libexecdir=/usr/lib \
--docdir=/usr/share/doc/acl-$version
make
make install
mv -v /usr/lib/libacl.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.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

View file

@ -1,38 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.4.48
url=http://download.savannah.gnu.org/releases/attr/attr-$version.tar.gz
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 \
--bindir=/bin \
--disable-static \
--sysconfdir=/etc \
--docdir=/usr/share/doc/attr-$version
make
make install
mv -v /usr/lib/libattr.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.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

View file

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.69
url=http://ftp.gnu.org/gnu/autoconf/autoconf-$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
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.16.1
url=http://ftp.gnu.org/gnu/automake/automake-$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 --docdir=/usr/share/doc/automake-$version
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

@ -1,87 +0,0 @@
#!/tools/bin/bash -e
#. /etc/pkg/pkg.conf
#. /var/lib/pkg/functions
mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -v /usr/libexec
mkdir -pv /usr/{,local/}share/man/man{1..8}
case $(uname -m) in
x86_64) mkdir -v /lib64 ;;
esac
mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}
ln -sv /tools/bin/{bash,cat,dd,echo,ln,pwd,rm,stty} /bin
ln -sv /tools/bin/{env,install,perl} /usr/bin
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
ln -sv /tools/lib/libstdc++.{a,so{,.6}} /usr/lib
for lib in blkid lzma mount uuid
do
ln -sv /tools/lib/lib$lib.so* /usr/lib
done
ln -svf /tools/include/blkid /usr/include
ln -svf /tools/include/libmount /usr/include
ln -svf /tools/include/uuid /usr/include
install -vdm755 /usr/lib/pkgconfig
for pc in blkid mount uuid
do
sed 's@tools@usr@g' /tools/lib/pkgconfig/${pc}.pc \
> /usr/lib/pkgconfig/${pc}.pc
done
ln -sv bash /bin/sh
ln -sv /proc/self/mounts /etc/mtab
cat > /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 > /etc/group << "EOF"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
systemd-journal:x:23:
input:x:24:
mail:x:34:
nogroup:x:99:
users:x:999:
EOF
exec /tools/bin/bash --login +h
touch /var/log/{btmp,lastlog,faillog,wtmp}
chgrp -v utmp /var/log/lastlog
chmod -v 664 /var/log/lastlog
chmod -v 600 /var/log/btmp

View file

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.4.18
url=http://ftp.gnu.org/gnu/bash/bash-$version.tar.gz
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/bash-$version \
--without-bash-malloc \
--with-installed-readline
make
make install
mv -vf /usr/bin/bash /bin
}
} 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

@ -1,52 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.07.1
url=http://ftp.gnu.org/gnu/bc/bc-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
cat > bc/fix-libmath_h << "EOF"
#! /bin/bash
sed -e '1 s/^/{"/' \
-e 's/$/",/' \
-e '2,$ s/^/"/' \
-e '$ d' \
-i libmath.h
sed -e '$ s/$/0}/' \
-i libmath.h
EOF
ln -sv /tools/lib/libncursesw.so.6 /usr/lib/libncursesw.so.6
ln -sfv libncurses.so.6 /usr/lib/libncurses.so
sed -i -e '/flex/s/as_fn_error/: ;; # &/' configure
./configure --prefix=/usr \
--with-readline \
--mandir=/usr/share/man \
--infodir=/usr/share/info
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

@ -1,42 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.31.1
url=http://ftp.gnu.org/gnu/binutils/binutils-$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 \
{
mkdir -v 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 tooldir=/usr 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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.0.5
url=http://ftp.gnu.org/gnu/bison/bison-$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 --docdir=/usr/share/doc/bison-$version
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

@ -1,47 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.0.6
url=http://anduin.linuxfromscratch.org/LFS/bzip2-$version.tar.gz
fetch $url
fetch http://www.linuxfromscratch.org/patches/lfs/8.3/bzip2-$version-install_docs-1.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/bzip2-$version-install_docs-1.patch
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 -v bzip2-shared /bin/bzip2
cp -av libbz2.so* /lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
ln -sv bzip2 /bin/bunzip2
ln -sv bzip2 /bin/bzcat
}
} 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

@ -1,33 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.12.0
url=https://github.com/libcheck/check/releases/download/$version/check-$version.tar.gz
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
make
make install
sed -i '1 s/tools/usr/' /usr/bin/checkmk
}
} 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

@ -1,46 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=8.30
url=http://ftp.gnu.org/gnu/coreutils/coreutils-$version.tar.xz
fetch $url
fetch http://www.linuxfromscratch.org/patches/lfs/8.3/coreutils-$version-i18n-1.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/coreutils-8.30-i18n-1.patch
sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk
autoreconf -fiv
FORCE_UNSAFE_CONFIGURE=1 ./configure \
--prefix=/usr \
--enable-no-install-program=kill,uptime
FORCE_UNSAFE_CONFIGURE=1 make
make install
mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
mv -v /usr/bin/{false,ln,ls,mkdir,mknod,pwd,rm} /bin
mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
sed -i s/\"1\"/\"8\"/1 /usr/share/man/man8/chroot.8
mv -v /usr/bin/{head,sleep,nice,mv} /bin
}
} 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

@ -1,35 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.12
url=https://ftp.gnu.org/gnu/cpio/cpio-$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 \
--bindir=/bin \
--enable-mt \
--with-rmt=/usr/libexec/rmt
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

@ -1,37 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=7.0.7
url=http://roy.marples.name/downloads/dhcpcd/dhcpcd-$version.tar.xz
fetch $url
fetch http://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/blfs-bootscripts-20180105.tar.xz
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./configure --libexecdir=/lib/dhcpcd \
--dbdir=/var/lib/dhcpcd
make
make install
tar -xvf $SOURCE_DIR/blfs-bootscripts-20180105.tar.xz
cd blfs-bootscripts-20180105
make install-service-dhcpcd
}
} 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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.6
url=http://ftp.gnu.org/gnu/diffutils/diffutils-$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
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

@ -1,46 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.44.3
url=https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v$version/e2fsprogs-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
mkdir -v build
cd build
../configure --prefix=/usr \
--bindir=/bin \
--with-root-prefix="" \
--enable-elf-shlibs \
--disable-libblkid \
--disable-libuuid \
--disable-uuidd \
--disable-fsck
make
make install
make install-libs
chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
gunzip -v /usr/share/info/libext2fs.info.gz
install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
}
} 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

@ -1,56 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.2.5
url=https://dev.gentoo.org/~blueness/eudev/eudev-$version.tar.gz
fetch $url
fetch http://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.tar.bz2
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
cat > config.cache << "EOF"
HAVE_BLKID=1
BLKID_LIBS="-lblkid"
BLKID_CFLAGS="-I/tools/include"
EOF
./configure --prefix=/usr \
--bindir=/sbin \
--sbindir=/sbin \
--libdir=/usr/lib \
--sysconfdir=/etc \
--libexecdir=/lib \
--with-rootprefix= \
--with-rootlibdir=/lib \
--enable-manpages \
--disable-static \
--config-cache
LIBRARY_PATH=/tools/lib make
mkdir -pv /lib/udev/rules.d
mkdir -pv /etc/udev/rules.d
make LD_LIBRARY_PATH=/tools/lib install
tar -xvf $SOURCE_DIR/udev-lfs-20171102.tar.bz2
make -f udev-lfs-20171102/Makefile.lfs install
LD_LIBRARY_PATH=/tools/lib udevadm hwdb --update
}
} 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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.2.6
url=https://prdownloads.sourceforge.net/expat/expat-$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 \
{
sed -i 's|usr/bin/env |bin/|' run.sh.in
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/expat-$version
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=file
version=5.34
url=ftp://ftp.astron.com/pub/file/file-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$name-$version.tar.gz -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./configure --prefix=/usr
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

@ -1,39 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.6.0
url=http://ftp.gnu.org/gnu/findutils/findutils-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -i 's/test-lock..EXEEXT.//' tests/Makefile.in
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c
sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c
echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h
./configure --prefix=/usr --localstatedir=/var/lib/locate
make
make install
mv -v /usr/bin/find /bin
sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb
}
} 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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.6.4
url=https://github.com/westes/flex/releases/download/v$version/flex-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -i "/math.h/a #include <malloc.h>" src/flexdef.h
HELP2MAN=/tools/bin/true \
./configure --prefix=/usr --docdir=/usr/share/doc/flex-$version
make
make install
ln -sv flex /usr/bin/lex
}
} 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

@ -1,33 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.2.1
url=http://ftp.gnu.org/gnu/gawk/gawk-$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 \
{
sed -i 's/extras//' Makefile.in
./configure --prefix=/usr
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

@ -1,68 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=8.2.0
url=http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$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 \
{
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
rm -f /usr/lib/gcc
mkdir -v build
cd build
SED=sed \
../configure --prefix=/usr \
--enable-languages=c,c++ \
--disable-multilib \
--disable-bootstrap \
--disable-libmpx \
--with-system-zlib
make
make install
ln -svf ../usr/bin/cpp /lib
ln -svf gcc /usr/bin/cc
install -v -dm755 /usr/lib/bfd-plugins
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/8.2.0/liblto_plugin.so \
/usr/lib/bfd-plugins/
echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
grep -B4 '^ /usr/include' dummy.log
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
grep "/lib.*/libc.so.6 " dummy.log
grep found dummy.log
rm -v dummy.c a.out dummy.log
mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
}
} 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

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.17
url=http://ftp.gnu.org/gnu/gdbm/gdbm-$version.tar.gz
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 \
--disable-static \
--enable-libgdbm-compat
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

@ -1,41 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.19.8.1
url=http://ftp.gnu.org/gnu/gettext/gettext-$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 \
{
sed -i '/^TESTS =/d' gettext-runtime/tests/Makefile.in &&
sed -i 's/test-lock..EXEEXT.//' gettext-tools/gnulib-tests/Makefile.in
sed -e '/AppData/{N;N;p;s/\.appdata\./.metainfo./}' \
-i gettext-tools/its/appdata.loc
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/gettext-$version
make
make install
chmod -v 0755 /usr/lib/preloadable_libintl.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

View file

@ -1,38 +0,0 @@
#!/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

View file

@ -1,139 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=glibc
version=2.28
url=http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz
fetch $url
fetch http://www.linuxfromscratch.org/patches/lfs/8.3/glibc-$version-fhs-1.patch
fetch https://www.iana.org/time-zones/repository/releases/tzdata2018e.tar.gz
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$name-$version.tar.xz -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
patch -Np1 -i $SOURCE_DIR/glibc-$version-fhs-1.patch
ln -sfv /tools/lib/gcc /usr/lib
case $(uname -m) in
i?86) GCC_INCDIR=/usr/lib/gcc/$(uname -m)-pc-linux-gnu/8.2.0/include
ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3
;;
x86_64) GCC_INCDIR=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include
ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64
ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
;;
esac
rm -f /usr/include/limits.h
mkdir -v build
cd build
CC="gcc -isystem $GCC_INCDIR -isystem /usr/include" \
../configure --prefix=/usr \
--disable-werror \
--enable-kernel=3.2 \
--enable-stack-protector=strong \
libc_cv_slibdir=/lib
unset GCC_INCDIR
make
touch /etc/ld.so.conf
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
make install
cp -v ../nscd/nscd.conf /etc/nscd.conf
mkdir -pv /var/cache/nscd
mkdir -pv /usr/lib/locale
make localedata/install-locales
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 $SOURCE_DIR/tzdata2018e.tar.gz
ZONEINFO=/usr/share/zoneinfo
mkdir -pv $ZONEINFO/{posix,right}
for tz in etcetera southamerica northamerica europe africa antarctica \
asia australasia backward pacificnew systemv; do
zic -L /dev/null -d $ZONEINFO -y "sh yearistype.sh" ${tz}
zic -L /dev/null -d $ZONEINFO/posix -y "sh yearistype.sh" ${tz}
zic -L leapseconds -d $ZONEINFO/right -y "sh yearistype.sh" ${tz}
done
cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York
unset ZONEINFO
ln -svf /usr/share/zoneinfo/UTC /etc/localtime
cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib
EOF
cat >> /etc/ld.so.conf << "EOF"
# Add an include directory
include /etc/ld.so.conf.d/*.conf
EOF
mkdir -pv /etc/ld.so.conf.d
if [ ! -f /tools/bin/ld-old ]; then
mv -v /tools/bin/{ld,ld-old}
mv -v /tools/$(uname -m)-pc-linux-gnu/bin/{ld,ld-old}
mv -v /tools/bin/{ld-new,ld}
ln -sv /tools/bin/ld /tools/$(uname -m)-pc-linux-gnu/bin/ld
gcc -dumpspecs | sed -e 's@/tools@@g' \
-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
-e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
`dirname $(gcc --print-libgcc-file-name)`/specs
echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
grep -B1 '^ /usr/include' dummy.log
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
grep "/lib.*/libc.so.6 " dummy.log
grep found dummy.log
rm -v dummy.c a.out dummy.log
fi
}
} 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

@ -1,35 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=6.1.2
url=http://ftp.gnu.org/gnu/gmp/gmp-$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 \
--enable-cxx \
--disable-static \
--docdir=/usr/share/doc/gmp-$version
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.1
url=http://ftp.gnu.org/gnu/gperf/gperf-$version.tar.gz
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/gperf-$version
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.1
url=http://ftp.gnu.org/gnu/grep/grep-$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 --bindir=/bin
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.22.3
url=http://ftp.gnu.org/gnu/groff/groff-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
PAGE=A4 ./configure --prefix=/usr
make -j1
make -j1 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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.02
url=https://ftp.gnu.org/gnu/grub/grub-$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 \
--sbindir=/sbin \
--sysconfdir=/etc \
--disable-efiemu \
--disable-werror
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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.9
url=http://ftp.gnu.org/gnu/gzip/gzip-$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 \
{
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
./configure --prefix=/usr
make
make install
mv -v /usr/bin/gzip /bin
}
} 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

@ -1,31 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.30
url=http://anduin.linuxfromscratch.org/LFS/iana-etc-$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 \
{
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

@ -1,42 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.9.4
url=http://ftp.gnu.org/gnu/inetutils/inetutils-$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 \
--localstatedir=/var \
--disable-logger \
--disable-whois \
--disable-rcp \
--disable-rexec \
--disable-rlogin \
--disable-rsh \
--disable-servers
make
make install
mv -v /usr/bin/{hostname,ping,ping6,traceroute} /bin
mv -v /usr/bin/ifconfig /sbin
}
} 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

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.51.0
url=https://launchpad.net/intltool/trunk/$version/+download/intltool-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
./configure --prefix=/usr
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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.18.0
url=https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-$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 \
{
sed -i /ARPD/d Makefile
rm -fv man/man8/arpd.8
sed -i 's/.m_ipt.o//' tc/Makefile
make
make DOCDIR=/usr/share/doc/iproute2-$version 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

@ -1,38 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.0.4
url=https://www.kernel.org/pub/linux/utils/kbd/kbd-$version.tar.xz
fetch $url
fetch http://www.linuxfromscratch.org/patches/lfs/8.3/kbd-$version-backspace-1.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/kbd-2.0.4-backspace-1.patch
sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/g' configure
sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
PKG_CONFIG_PATH=/tools/lib/pkgconfig ./configure --prefix=/usr --disable-vlock
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

@ -1,41 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=25
url=https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-$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 \
--bindir=/bin \
--sysconfdir=/etc \
--with-rootlibdir=/lib \
--with-xz \
--with-zlib
make
make install
for target in depmod insmod lsmod modinfo modprobe rmmod; do
ln -sfv ../bin/kmod /sbin/$target
done
ln -sfv kmod /bin/lsmod
}
} 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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=530
url=http://www.greenwoodsoftware.com/less/less-$version.tar.gz
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
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

@ -1,30 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=20180820
url=http://www.linuxfromscratch.org/lfs/downloads/8.3/lfs-bootscripts-$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 \
{
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

@ -1,431 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=8.3
{ time \
{
echo "$version" > /etc/lfs-release
cat > /etc/lsb-release << "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="8.3"
DISTRIB_CODENAME="Emmett1"
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF
cat > /etc/inittab << "EOF"
# Begin /etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc S
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
# End /etc/inittab
EOF
cat > /etc/inputrc << "EOF"
# Begin /etc/inputrc
# Modified by Chris Lynn <roryo@roryo.dynup.net>
# Allow the command prompt to wrap to the next line
set horizontal-scroll-mode Off
# Enable 8bit input
set meta-flag On
set input-meta On
# Turns off 8th bit stripping
set convert-meta Off
# Keep the 8th bit for display
set output-meta On
# none, visible or audible
set bell-style none
# All of the following map the escape sequence of the value
# contained in the 1st argument to the readline specific functions
"\eOd": backward-word
"\eOc": forward-word
# for linux console
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
# for xterm
"\eOH": beginning-of-line
"\eOF": end-of-line
# for Konsole
"\e[H": beginning-of-line
"\e[F": end-of-line
# End /etc/inputrc
EOF
cat > /etc/shells << "EOF"
# Begin /etc/shells
/bin/sh
/bin/bash
# End /etc/shells
EOF
cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
#/dev/<xxx> / <fff> defaults 1 1
#/dev/<yyy> swap swap pri=1 0 0
proc /proc proc nosuid,noexec,nodev 0 0
sysfs /sys sysfs nosuid,noexec,nodev 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /run tmpfs defaults 0 0
devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
# End /etc/fstab
EOF
install -v -m755 -d /etc/modprobe.d
cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
# End /etc/modprobe.d/usb.conf
EOF
cat > /etc/sysconfig/ifconfig.wired << "EOF"
ONBOOT="no"
IFACE="eth0"
SERVICE="dhcpcd"
#DHCP_START="-b -q <insert appropriate start options here>"
#DHCP_STOP="-k <insert additional stop options here>"
EOF
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
# End /etc/resolv.conf
EOF
echo "lfs" > /etc/hostname
cat > /etc/hosts << "EOF"
# Begin /etc/hosts
127.0.0.1 localhost lfs
::1 localhost lfs
# End /etc/hosts
EOF
cat > /etc/profile << "EOF"
# Begin /etc/profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# modifications by Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
# System wide environment variables and startup programs.
# System wide aliases and functions should go in /etc/bashrc. Personal
# environment variables and startup programs should go into
# ~/.bash_profile. Personal aliases and functions should go into
# ~/.bashrc.
# Functions to help us manage paths. Second argument is the name of the
# path variable to be modified (default: PATH)
pathremove () {
local IFS=':'
local NEWPATH
local DIR
local PATHVARIABLE=${2:-PATH}
for DIR in ${!PATHVARIABLE} ; do
if [ "$DIR" != "$1" ] ; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
export $PATHVARIABLE="$NEWPATH"
}
pathprepend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
}
pathappend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}
export -f pathremove pathprepend pathappend
# Set the initial path
export PATH=/bin:/usr/bin
if [ $EUID -eq 0 ] ; then
pathappend /sbin:/usr/sbin
unset HISTFILE
fi
# Setup some environment variables.
export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"
# Set some defaults for graphical systems
export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share/}
export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg/}
export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER}
# Setup a red prompt for root and a green one for users.
NORMAL="\[\e[0m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [[ $EUID == 0 ]] ; then
PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi
for script in /etc/profile.d/*.sh ; do
if [ -r $script ] ; then
. $script
fi
done
unset script RED GREEN NORMAL
# End /etc/profile
EOF
install --directory --mode=0755 --owner=root --group=root /etc/profile.d
cat > /etc/profile.d/bash_completion.sh << "EOF"
# Begin /etc/profile.d/bash_completion.sh
# Import bash completion scripts
for script in /etc/bash_completion.d/*.sh ; do
if [ -r $script ] ; then
. $script
fi
done
# End /etc/profile.d/bash_completion.sh
EOF
install --directory --mode=0755 --owner=root --group=root /etc/bash_completion.d
cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
eval $(dircolors -b /etc/dircolors)
fi
if [ -f "$HOME/.dircolors" ] ; then
eval $(dircolors -b $HOME/.dircolors)
fi
alias ls='ls --color=auto'
alias grep='grep --color=auto'
EOF
cat > /etc/profile.d/extrapaths.sh << "EOF"
if [ -d /usr/local/lib/pkgconfig ] ; then
pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
fi
if [ -d /usr/local/bin ]; then
pathprepend /usr/local/bin
fi
if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
pathprepend /usr/local/sbin
fi
# Set some defaults before other applications add to these paths.
pathappend /usr/share/man MANPATH
pathappend /usr/share/info INFOPATH
EOF
cat > /etc/profile.d/readline.sh << "EOF"
# Setup the INPUTRC environment variable.
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
INPUTRC=/etc/inputrc
fi
export INPUTRC
EOF
cat > /etc/profile.d/umask.sh << "EOF"
# By default, the umask should be set.
if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then
umask 002
else
umask 022
fi
EOF
cat > /etc/profile.d/i18n.sh << "EOF"
# Set up i18n variables
export LANG=en_US.UTF-8
EOF
cat > /etc/bashrc << "EOF"
# Begin /etc/bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
# System wide aliases and functions.
# System wide environment variables and startup programs should go into
# /etc/profile. Personal environment variables and startup programs
# should go into ~/.bash_profile. Personal aliases and functions should
# go into ~/.bashrc
# Provides colored /bin/ls and /bin/grep commands. Used in conjunction
# with code in /etc/profile.
alias ls='ls --color=auto'
alias grep='grep --color=auto'
# Provides prompt for non-login shells, specifically shells started
# in the X environment. [Review the LFS archive thread titled
# PS1 Environment Variable for a great case study behind this script
# addendum.]
NORMAL="\[\e[0m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [[ $EUID == 0 ]] ; then
PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi
unset RED GREEN NORMAL
# End /etc/bashrc
EOF
cat > ~/.bash_profile << "EOF"
# Begin ~/.bash_profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
# Personal environment variables and startup programs.
# Personal aliases and functions should go in ~/.bashrc. System wide
# environment variables and startup programs are in /etc/profile.
# System wide aliases and functions are in /etc/bashrc.
if [ -f "$HOME/.bashrc" ] ; then
source $HOME/.bashrc
fi
if [ -d "$HOME/bin" ] ; then
pathprepend $HOME/bin
fi
# Having . in the PATH is dangerous
#if [ $EUID -gt 99 ]; then
# pathappend .
#fi
# End ~/.bash_profile
EOF
cat > ~/.profile << "EOF"
# Begin ~/.profile
# Personal environment variables and startup programs.
if [ -d "$HOME/bin" ] ; then
pathprepend $HOME/bin
fi
# Set up user specific i18n variables
#export LANG=<ll>_<CC>.<charmap><@modifiers>
# End ~/.profile
EOF
cat > ~/.bashrc << "EOF"
# Begin ~/.bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# Personal aliases and functions.
# Personal environment variables and startup programs should go in
# ~/.bash_profile. System wide environment variables and startup
# programs are in /etc/profile. System wide aliases and functions are
# in /etc/bashrc.
if [ -f "/etc/bashrc" ] ; then
source /etc/bashrc
fi
# Set up user specific i18n variables
#export LANG=<ll>_<CC>.<charmap><@modifiers>
# End ~/.bashrc
EOF
cat > ~/.bash_logout << "EOF"
# Begin ~/.bash_logout
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# Personal items to perform on logout.
# End ~/.bash_logout
EOF
dircolors -p > /etc/dircolors
}
} 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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.25
url=https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-$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 \
{
sed -i '/install.*STALIBNAME/d' libcap/Makefile
make
make RAISE_SETFCAP=no lib=lib prefix=/usr install
chmod -v 755 /usr/lib/libcap.so
mv -v /usr/lib/libcap.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libcap.so) /usr/lib/libcap.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

View file

@ -1,33 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=elfutils
version=0.173
url=https://sourceware.org/ftp/elfutils/$version/elfutils-$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
make
make -C libelf install
install -vm644 config/libelf.pc /usr/lib/pkgconfig
}
} 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

@ -1,39 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.2.1
url=ftp://sourceware.org/pub/libffi/libffi-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \
-i include/Makefile.in
sed -e '/^includedir/ s/=.*$/=@includedir@/' \
-e 's/^Cflags: -I${includedir}/Cflags:/' \
-i libffi.pc.in
./configure --prefix=/usr --disable-static --with-gcc-arch=native
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

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.4.0
url=https://github.com/thom311/libnl/releases/download/libnl${version//./_}/libnl-$version.tar.gz
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 \
--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

View file

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.5.0
url=http://download.savannah.gnu.org/releases/libpipeline/libpipeline-$version.tar.gz
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
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

@ -1,36 +0,0 @@
#!/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

View file

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.13
url=ftp://ftp.gnu.org/gnu/libtasn1/libtasn1-$version.tar.gz
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 --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

View file

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.4.6
url=http://ftp.gnu.org/gnu/libtool/libtool-$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
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

@ -1,32 +0,0 @@
#!/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

@ -1,46 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.19.12
url=https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz
fetch $url
fetch https://raw.githubusercontent.com/emmett1/ports/1.0/extra/linux/config-$version
rm -fr /usr/src/$name-$version-old
[ -d /usr/src/$name-$version ] && mv /usr/src/$name-$version /usr/src/$name-$version-old
tar -xvf $SOURCE_DIR/$(basename $url) -C /usr/src
#ln -svf /usr/src/$name-$version /usr/src/linux
cd /usr/src/$name-$version
{ time \
{
make mrproper
cp $SOURCE_DIR/config-$version .config
sed '/^CONFIG_LOCALVERSION=/d' -i .config
echo 'CONFIG_LOCALVERSION="-lfs"' >> .config
make
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-$version-lfs
if [ $(type -p mkinitramfs) ]; then
kernver=$(file /boot/vmlinuz-$version-lfs | cut -d ' ' -f9)
mkinitramfs -k $kernver -o /boot/initrd-$version-lfs.img
fi
}
} 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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=linux
version=4.19.12
fetch https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/linux-$version.tar.xz -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
make mrproper
make INSTALL_HDR_PATH=dest headers_install
find dest/include \( -name .install -o -name ..install.cmd \) -delete
cp -rv dest/include/* /usr/include
}
} 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

@ -1,35 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=m4
version=1.4.18
url=http://ftp.gnu.org/gnu/m4/m4-$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 \
{
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
./configure --prefix=/usr
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

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.2.1
url=http://ftp.gnu.org/gnu/make/make-$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 \
{
sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c
./configure --prefix=/usr
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

@ -1,43 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.9
url=https://github.com/djlucas/make-ca/archive/v$version/make-ca-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
install -vdm755 /etc/ssl/local
wget http://www.cacert.org/certs/root.crt
wget http://www.cacert.org/certs/class3.crt
openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> /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 \
> /etc/ssl/local/CAcert_Class_3_root.pem
make install
mkdir -pv /etc/pki/tls/certs
ln -svf /etc/ssl/ca-bundle.crt \
/etc/pki/tls/certs/ca-bundle.crt
/usr/sbin/make-ca -g
}
} 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

@ -1,40 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.8.4
url=http://download.savannah.gnu.org/releases/man-db/man-db-$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 \
--docdir=/usr/share/doc/man-db-$version \
--sysconfdir=/etc \
--disable-setuid \
--enable-cache-owner=bin \
--with-browser=/usr/bin/lynx \
--with-vgrind=/usr/bin/vgrind \
--with-grap=/usr/bin/grap \
--with-systemdtmpfilesdir=
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

@ -1,29 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=man-pages
version=4.16
fetch https://www.kernel.org/pub/linux/docs/man-pages/man-pages-$version.tar.xz
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$name-$version.tar.xz -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
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

@ -1,35 +0,0 @@
#!/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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.47.1
url=https://github.com/mesonbuild/meson/releases/download/$version/meson-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
python3 setup.py build
python3 setup.py install --root=dest
cp -rv dest/* /
}
} 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

@ -1,35 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=e6ffa3b73cbe126b2e2599805b1ee251b9b249a4
url=https://github.com/emmett1/mkinitramfs/archive/$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./INSTALL.sh
#if [ $(type -p mkinitramfs) ]; then
# kernver=$(file /boot/vmlinuz-4.19.2-lfs | cut -d ' ' -f9)
# mkinitramfs -k $kernver -o /boot/initrd-4.19.2-lfs.img
#fi
}
} 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

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.1.0
url=https://ftp.gnu.org/gnu/mpc/mpc-$version.tar.gz
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 \
--disable-static \
--docdir=/usr/share/doc/mpc-$version
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

@ -1,36 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.0.1
#url=http://www.mpfr.org/mpfr-$version/mpfr-$version.tar.xz
url=http://ftp.osuosl.org/pub/lfs/lfs-packages/8.3/mpfr-$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 \
--disable-static \
--enable-thread-safe \
--docdir=/usr/share/doc/mpfr-$version
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

@ -1,50 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=6.1
url=http://ftp.gnu.org/gnu/ncurses/ncurses-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in
./configure --prefix=/usr \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
--without-normal \
--enable-pc-files \
--enable-widec
make
make install
mv -v /usr/lib/libncursesw.so.6* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so
for lib in ncurses form panel menu ; do
rm -vf /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
done
rm -vf /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so /usr/lib/libcurses.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

View file

@ -1,41 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.8.2
url=https://github.com/ninja-build/ninja/archive/v$version/ninja-$version.tar.gz
fetch $url
fetch http://www.linuxfromscratch.org/patches/lfs/8.3/ninja-$version-add_NINJAJOBS_var-1.patch
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
export NINJAJOBS=4
patch -Np1 -i $SOURCE_DIR/ninja-$version-add_NINJAJOBS_var-1.patch
python3 configure.py --bootstrap
python3 configure.py
./ninja ninja_test
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
install -vm755 ninja /usr/bin/
install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja
}
} 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

@ -1,37 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.1.0j
url=https://openssl.org/source/openssl-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
./config --prefix=/usr \
--openssldir=/etc/ssl \
--libdir=lib \
shared \
zlib-dynamic
make
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
make MANSUFFIX=ssl 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

@ -1,42 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.23.14
url=https://github.com/p11-glue/p11-kit/releases/download/$version/p11-kit-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed '20,$ d' -i trust/trust-extract-compat.in &&
cat >> trust/trust-extract-compat.in << "EOF"
echo "Please create an OpenSSL Trusted Certificate with appropriate"
echo "trust arguments in /etc/ssl/local/ and run '/usr/sbin/make-ca -f'"
echo "as the root user."
exit 1
EOF
./configure --prefix=/usr \
--sysconfdir=/etc \
--with-trust-paths=/etc/pki/anchors
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.7.6
url=http://ftp.gnu.org/gnu/patch/patch-$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
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

@ -1,42 +0,0 @@
#!/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

View file

@ -1,44 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=5.28.0
url=https://www.cpan.org/src/5.0/perl-$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 \
{
echo "127.0.0.1 localhost lfs" > /etc/hosts
export BUILD_ZLIB=False
export BUILD_BZIP2=0
sh Configure -des -Dprefix=/usr \
-Dvendorprefix=/usr \
-Dman1dir=/usr/share/man/man1 \
-Dman3dir=/usr/share/man/man3 \
-Dpager="/usr/bin/less -isR" \
-Duseshrplib \
-Dusethreads
make
make install
unset BUILD_ZLIB BUILD_BZIP2
}
} 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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=XML-Parser
version=2.44
url=https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
perl Makefile.PL
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

@ -1,35 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=0.29.2
url=https://pkg-config.freedesktop.org/releases/pkg-config-$version.tar.gz
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 \
--with-internal-glib \
--disable-host-tool \
--docdir=/usr/share/doc/pkg-config-$version
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

@ -1,39 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=3.3.15
url=https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-$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 \
--exec-prefix= \
--libdir=/usr/lib \
--docdir=/usr/share/doc/procps-ng-3.3.15 \
--disable-static \
--disable-kill
make
make install
mv -v /usr/lib/libprocps.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libprocps.so) /usr/lib/libprocps.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

View file

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=23.1
url=https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-$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
make
make install
mv -v /usr/bin/fuser /bin
mv -v /usr/bin/killall /bin
}
} 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

@ -1,38 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=Python
version=3.7.0
url=https://www.python.org/ftp/python/$version/Python-$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 \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--with-ensurepip=yes
make
make install
chmod -v 755 /usr/lib/libpython3.7m.so
chmod -v 755 /usr/lib/libpython3.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

View file

@ -1,42 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=readline
version=7.0
url=http://ftp.gnu.org/gnu/readline/readline-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/readline-$version
make SHLIB_LIBS="-L/tools/lib -lncursesw"
make SHLIB_LIBS="-L/tools/lib -lncurses" install
mv -v /usr/lib/lib{readline,history}.so.* /lib
chmod -v u+w /lib/lib{readline,history}.so.*
ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so
ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.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

View file

@ -1,35 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.5
url=http://ftp.gnu.org/gnu/sed/sed-$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 \
{
sed -i 's/usr/tools/' build-aux/help2man
sed -i 's/testsuite.panic-tests.sh//' Makefile.in
./configure --prefix=/usr --bindir=/bin
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

@ -1,43 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=4.6
url=https://github.com/shadow-maint/shadow/releases/download/$version/shadow-$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 \
{
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/getspnam\.3 / /' {} \;
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;
sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \
-e 's@/var/spool/mail@/var/mail@' etc/login.defs
sed -i 's/1000/999/' etc/useradd
./configure --sysconfdir=/etc --with-group-name-max-length=32
make
make install
mv -v /usr/bin/passwd /bin
}
} 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

@ -1,39 +0,0 @@
#!/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

View file

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.5.1
url=http://www.infodrom.org/projects/sysklogd/download/sysklogd-$version.tar.gz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
sed -i 's/union wait/int/' syslogd.c
make
make BINDIR=/sbin 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

@ -1,33 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.90
url=http://download.savannah.gnu.org/releases/sysvinit/sysvinit-$version.tar.xz
fetch $url
fetch http://www.linuxfromscratch.org/patches/lfs/8.3/sysvinit-$version-consolidated-1.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/sysvinit-$version-consolidated-1.patch
make -C src
make -C src 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

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.30
url=http://ftp.gnu.org/gnu/tar/tar-$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 \
{
FORCE_UNSAFE_CONFIGURE=1 \
./configure --prefix=/usr \
--bindir=/bin
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

@ -1,32 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=
url=
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
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

@ -1,40 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=6.5
url=http://ftp.gnu.org/gnu/texinfo/texinfo-$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 \
{
sed -i '5481,5485 s/({/(\\{/' tp/Texinfo/Parser.pm
./configure --prefix=/usr --disable-static
make
make install
pushd /usr/share/info
rm -v dir
for f in *
do install-info $f dir 2>/dev/null
done
popd
}
} 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

@ -1,48 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.32.1
url=https://www.kernel.org/pub/linux/utils/util-linux/v${version::4}/util-linux-$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 \
{
mkdir -pv /var/lib/hwclock
rm -vf /usr/include/{blkid,libmount,uuid}
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-$version \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--without-python \
--without-systemd \
--without-systemdsystemunitdir
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

@ -1,57 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=8.1
url=ftp://ftp.vim.org/pub/vim/unix/vim-$version.tar.bz2
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/vim81
{ time \
{
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
./configure --prefix=/usr
make
make install
ln -svf vim /usr/bin/vi
for L in /usr/share/man/{,*/}man1/vim.1; do
ln -svf vim.1 $(dirname $L)/vi.1
done
ln -sfv ../vim/vim81/doc /usr/share/doc/vim-$version
cat > /etc/vimrc << "EOF"
" Begin /etc/vimrc
" Ensure defaults are set before customizing settings, not after
source $VIMRUNTIME/defaults.vim
let skip_defaults_vim=1
set nocompatible
set backspace=2
set mouse=
syntax on
if (&term == "xterm") || (&term == "putty")
set background=dark
endif
" End /etc/vimrc
EOF
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/vim81
registerpkg $(basename $0) $version
exit 0

View file

@ -1,34 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=1.19.5
url=https://ftp.gnu.org/gnu/wget/wget-$version.tar.gz
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-ssl=openssl
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

@ -1,81 +0,0 @@
#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=2.6
url=https://w1.fi/releases/wpa_supplicant-$version.tar.gz
fetch $url
fetch http://www.linuxfromscratch.org/patches/blfs/8.3/wpa_supplicant-$version-upstream_fixes-2.patch
fetch http://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/blfs-bootscripts-20180105.tar.xz
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF
patch -p1 -i $SOURCE_DIR/wpa_supplicant-$version-upstream_fixes-2.patch
cd wpa_supplicant
make BINDIR=/sbin LIBDIR=/lib
install -v -m755 wpa_{cli,passphrase,supplicant} /sbin/
install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/
install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/man8/
tar -xvf $SOURCE_DIR/blfs-bootscripts-20180105.tar.xz
cd blfs-bootscripts-20180105
make install-service-wpa
cat > /etc/sysconfig/ifconfig.wifi << "EOF"
ONBOOT="no"
IFACE="wlan0"
SERVICE="wpa"
# Additional arguments to wpa_supplicant
WPA_ARGS=""
WPA_SERVICE="dhcpcd"
#DHCP_START="-b -q <insert appropriate start options here>"
#DHCP_STOP="-k <insert additional stop options here>"
EOF
}
} 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

Some files were not shown because too many files have changed in this diff Show more