#!/bin/sh -e

rm -rf *

RELEASE=feisty

# create directories
mkdir -p bin fakelibs chroots

# we assume that we are in the unpacked apport source
D=$(readlink -f $(dirname $0)/../..)
test -e $D/bin/apport-chroot || {
    echo "This script must live in an unpacked apport source tree" >&2
    exit 1
}
cp -r $D apport
cp apport/backends/packaging-dpkg.py apport/apport/packaging_impl.py
ln -s ../apport/bin/apport-chroot bin/apport-chroot
ln -s ../apport/bin/launchpad-crash-digger bin/launchpad-crash-digger

# debootstrap
T=`mktemp -d`
wget -O - -q http://archive.ubuntu.com/ubuntu/dists/$RELEASE/main/binary-i386/Packages.gz | gunzip > $T/Packages
P=`grep '^Filename:.*debootstrap_.*deb' $T/Packages | cut -f 2 -d\ `
wget -q http://archive.ubuntu.com/ubuntu/$P
dpkg -x debootstrap_*.deb $T
rm debootstrap_*.deb
mv $T/usr/lib/debootstrap/ .
sed "1 s_\$_\\nDEBOOTSTRAP\_DIR=`pwd`/debootstrap_" $T/usr/sbin/debootstrap > bin/debootstrap
chmod 755 bin/debootstrap

# python-launchpad-bugs
dpkg -s python-launchpad-bugs >/dev/null 2>/dev/null || {
    P=`grep '^Filename:.*python-launchpad-bugs_.*deb' $T/Packages | cut -f 2 -d\ `
    wget -q http://archive.ubuntu.com/ubuntu/$P
    dpkg -x python-launchpad-bugs_*.deb $T
    rm python-launchpad-bugs_*.deb
    mv $T/usr/share/pycentral/python-launchpad-bugs/site-packages/launchpadBugs apport/
}
rm -rf $T

# fake{chroot,root} libraries
dpkg -s fakeroot >/dev/null 2>/dev/null || {
    wget -q http://archive.ubuntu.com/ubuntu/`apt-cache show fakeroot|grep ^Filename | cut -f 2 -d\ `
    ar p fakeroot_*.deb data.tar.gz | tar xzO ./usr/lib/libfakeroot-sysv.so > fakelibs/libfakeroot.so
    rm fakeroot_*.deb
}

wget -q http://archive.ubuntu.com/ubuntu/`apt-cache show fakechroot|grep ^Filename | cut -f 2 -d\ `
ar p fakechroot_*.deb data.tar.gz | tar xzO ./usr/lib/fakechroot/libfakechroot.so > fakelibs/libfakechroot.so
rm fakechroot_*.deb

# create file with environment variables
if dpkg -s fakeroot >/dev/null 2>/dev/null; then
    cat <<EOF > environ
PATH=`pwd`/bin:/usr/sbin:/sbin:\$PATH
PYTHONPATH=`pwd`/apport:\$PYTHONPATH
APPORT_LIBFAKECHROOT=`pwd`/fakelibs/libfakechroot.so

export PATH PYTHONPATH APPORT_LIBFAKECHROOT
EOF
else
    cat <<EOF > environ
PATH=`pwd`/bin:/usr/sbin:/sbin:\$PATH
PYTHONPATH=`pwd`/apport:\$PYTHONPATH
APPORT_LIBFAKEROOT=`pwd`/fakelibs/libfakeroot.so
APPORT_LIBFAKECHROOT=`pwd`/fakelibs/libfakechroot.so

export PATH PYTHONPATH APPORT_LIBFAKEROOT APPORT_LIBFAKECHROOT
EOF
fi

. environ

# create chroots
if [ "`uname -m`" = i686 ]; then
    apport-chroot -t -a 'deb http://people.ubuntu.com/~pitti/ddebs feisty main restricted universe multiverse' -a 'deb http://archive.ubuntu.com/ubuntu feisty restricted universe multiverse' -p libc6-i686 -p libc6-i686-dbgsym create feisty chroots/feisty.tar.gz
else
    apport-chroot -t -a 'deb http://people.ubuntu.com/~pitti/ddebs feisty main restricted universe multiverse' -a 'deb http://archive.ubuntu.com/ubuntu feisty restricted universe multiverse' create feisty chroots/feisty.tar.gz
fi
chmod -R g+w chroots/

# chroot map
cat <<EOF >> chrootmap
{
    'Ubuntu 7.04': 'chroots/feisty.tar.gz',
}
EOF
