#!/bin/sh

pkg=$1
fromsuite=woody
tosuite=sarge

exec > upgrade-$fromsuite-$tosuite-$pkg.log 2>&1 < /dev/null

# Make sure no questions are asked during installation and upgrades
export DEBIAN_FRONTEND=noninteractive

set -e
set -x

mirror=http://ftp.skolelinux.no/debian

target=chroot-upgrade-$pkg

sourcelist="$target/etc/apt/sources.list"

# First, create the chroot, exclude some useless packages
if [ -d $target ] ; then
    echo "Removing existing $target/."
    rm -rf $target/
fi
exclude=mbr,syslinux,lilo,setserial,pcmcia-cs,sysklogd,klogd,ppp,pppoe,pppconfig,pppoeconf,discover,libdiscover1,discover-data,exim,at,cron,logrotate,mailx
nice debootstrap --exclude=$exclude $fromsuite $target $mirror


# This do not work on upgrades, when start-stop-daemon is replaced
# with a new version.
make_dummy_start_stop_daemon() {
    cat > $target/sbin/start-stop-daemon.dummy <<EOF
#!/bin/sh
echo 1>&2
echo 'Warning: Fake start-stop-daemon called, doing nothing.' 1>&2
exit 0
EOF
    chmod a+rx $target/sbin/start-stop-daemon.dummy
    chroot $target dpkg-divert --add --local --rename /sbin/start-stop-daemon
    ln -s start-stop-daemon.dummy $target/sbin/start-stop-daemon
}
make_dummy_start_stop_daemon

mount -t proc proc $target/proc

echo
echo "**********************************************************"
echo "***** Installing package $pkg"
echo "**********************************************************"
echo

# Next install the package using apt-get
(
    echo deb $mirror $fromsuite main contrib non-free
) > $sourcelist
nice chroot $target apt-get update
nice chroot $target apt-get -y install "$pkg"

echo
echo "**********************************************************"
echo "***** Upgrading package $pkg"
echo "**********************************************************"
echo

# Rewrite sources.list and try to upgrade
sed "s/$fromsuite/$tosuite/" < $sourcelist > $sourcelist.new &&
  mv $sourcelist.new $sourcelist
nice chroot $target apt-get update
nice chroot $target apt-get -y -u dist-upgrade

echo
echo "**********************************************************"
echo "***** Done upgrading package $pkg"
echo "**********************************************************"
echo

# Umount all submounts
for d in `grep $target /proc/mounts | awk '{print $2}'`; do
    echo "Umounting $d."
    umount $d;
done

# Remove chroot
#rm -rf $target/

