slackbuilds_ponce/network/netqmail/tests/makechroot

75 lines
2 KiB
Text
Raw Normal View History

#!/bin/sh
#set -x
# A function to make a file local (not hard-linked to the real file)
# One should run this on any file that the test might modify
make_local()
{
while [ $# -gt 0 ]
do
cp -a $CHROOT/$1 $CHROOT/$1.new
mv $CHROOT/$1.new $CHROOT/$1
shift
done
}
CHROOT=${CHROOT:-/tmp/t5}
VERBOSE_ADDCHROOT=${VERBOSE_ADDCHROOT:-true}
export VERBOSE_ADDCHROOT
PKGDIR=${PKGDIR:-/usr/packages}
[ -n "$MKCHROOT_IGNORE_LN_ERRORS" ] && LNE='2>/dev/null' || LNE=
# These are options
INSTALL_DAEMONTOOLS=${INSTALL_DAEMONTOOLS:-no}
STRIP_INITTAB_SV=${STRIP_INITTAB_SV:-yes}
STRIP_QMAIL_USERS_GROUPS=${STRIP_QMAIL_USERS_GROUPS:-yes}
[ ! -d $CHROOT/proc/1 ] || umount $CHROOT/proc
rm -rf $CHROOT
mkchroot $CHROOT
addchroot $CHROOT tar pkgtools
mkdir -p $CHROOT$PKGDIR
eval ln $PKGDIR/netqmail* $PKGDIR/daemontools* $CHROOT$PKGDIR $LNE \|\| \
cp -a $PKGDIR/netqmail* $PKGDIR/daemontools* $CHROOT$PKGDIR
addchroot $CHROOT ucspi-tcp mkchroot
# Set up Slackware install DB for mkchroot
for i in packages scripts
do
mkdir $CHROOT/var/log/$i
(cd /var/log/$i; ls -1 | while read j; do [ -d $j ] ||
eval ln $j $CHROOT/var/log/$i $LNE \|\| cp -a $j $CHROOT/var/log/$i; done)
done
addchroot $CHROOT etc
make_local etc/{group,gshadow,passwd,shadow}
addchroot $CHROOT sysvinit
addchroot $CHROOT sysvinit-scripts
make_local etc/inittab
[ $STRIP_INITTAB_SV != yes ] ||
{
cat $CHROOT/etc/inittab | grep -E -v '^SV:' >$CHROOT/etc/inittab.new
mv $CHROOT/etc/inittab.new $CHROOT/etc/inittab
}
addchroot $CHROOT sed util-linux gzip network-scripts shadow ncurses
mkdir $CHROOT/root $CHROOT/proc
[ $INSTALL_DAEMONTOOLS = no ] || addchroot $CHROOT daemontools
[ $STRIP_QMAIL_USERS_GROUPS != yes ] ||
{
mount -tproc proc $CHROOT/proc
for i in alias qmail{d,l,p,q,r,s}
do
grep -q ^$i: $CHROOT/etc/passwd && chroot $CHROOT userdel $i
done
for i in nofiles qmail
do
grep -q ^$i: $CHROOT/etc/group && chroot $CHROOT groupdel $i
done
umount $CHROOT/proc
}
# inst_check needs these
addchroot $CHROOT procps-ng gawk net-tools