#! /bin/sh

# XXX - this needs to run under fakeroot...

exec 3>&1 1>&2

real_dpkg_checkbuilddeps () {
  SBOX_REDIRECT_IGNORE=/usr/bin/perl /usr/bin/perl /usr/bin/dpkg-checkbuilddeps "$@"
}

finish () {
  if ! real_dpkg_checkbuilddeps; then
    echo "This package does not use any devkits."
    echo "Please install all build dependencies as real packages."
    echo >&3 FAIL
  fi
  exit 0
}

# The stamp file can not be in the source tree because then it would
# end up in the source package, which is not what we want.  We put it
# into /var/tmp so that it gets deleted when a new rootstrap is
# extracted.

STAMP=/var/tmp/SANITIZED.$(head debian/changelog | md5sum | cut -d' ' -f1)

if [ -e $STAMP ]; then
  exit 0;
fi

# Only do permanent changes if this is BIFH

echo "$USER" | grep -q 'bifh[0-9]' || finish

# prevent bash from killing the system
rm -f /var/lib/bash/provide-sh

# clean ~/.texmf-var to avoid trouble with stale things hiding there.
rm -rf ~/.texmf-var/

pfx="dpkg-checkbuilddeps: Unmet build dependencies:"
deps=`real_dpkg_checkbuilddeps 2>&1 | grep "^$pfx" | \
      sed -e "s/$pfx//" -e s'/([^)]*)//g' -e 's/|//'`
deps="$deps build-essential automake autoconf libtool ed gawk diff dpkg-dev"
for d in $deps; do
  echo apt-get "$@" install $d
  apt-get -o DPkg::Options::=--force-confold -q --force-yes --yes install $d
done
apt-get -o DPkg::Options::=--force-confold -q --force-yes --yes dist-upgrade

# Make sure we get a fresh fakeroot installation

# We can't seem to control the value of LD_PRELOAD well enough, so we
# just copy the good version of libfakeroot over the bad one that
# Scratchbox uses.  This will result in a good version of libfakeroot
# talking to a bad version of faked, but that seems to work well
# enough.  The protocol between the two is really simple and unlikely
# to change even when new syscalls are wrapped.  And this is a
# desperate hack anyway, so it's OK if there is blood all over the
# floor from time to time.
#
# After we have overwritten libfakeroot, it no longer works with any
# host binaries, such as the ones in /scratchbox/compilers/bin or
# /scratchbox/tools/bin.  Thus, we must avoid running those when
# fakerooted.
#
# We use "cp -l" here to avoid overwriting a library that is in use.
#
if [ "$(fakeroot -v)" = "fakeroot version 1.4.2" ]; then
  apt-get -q --force-yes --yes --reinstall install fakeroot
  cp -fl /usr/lib/libfakeroot/libfakeroot-sysv.so /usr/lib/libfakeroot-sysv/libfakeroot.so.0
  cp -fl /usr/lib/libfakeroot/libfakeroot-tcp.so /usr/lib/libfakeroot-tcp/libfakeroot.so.0
else
  echo "We have $(fakeroot -v), hurray!"
fi

touch $STAMP

finish
