@ -33,7 +33,7 @@ export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C
export PATH = $PATH :/usr/sbin:/sbin
export PATH = $PATH :/usr/sbin:/sbin
if [ " $FAKEROOTKEY " = "" ] ; then
if [ " $FAKEROOTKEY " = "" ] ; then
echo "I: re-executing script inside fakeroot" >& 2
echo "I: re-executing script inside fakeroot"
fakeroot " $0 " " $@ " ;
fakeroot " $0 " " $@ " ;
exit
exit
fi
fi
@ -84,19 +84,19 @@ fi
# binutils must always be installed for objdump for fake ldd
# binutils must always be installed for objdump for fake ldd
PACKAGES = " $PACKAGES binutils "
PACKAGES = " $PACKAGES binutils "
echo "I: --------------------------" >& 2
echo "I: --------------------------"
echo " I: suite: $SUITE " >& 2
echo " I: suite: $SUITE "
echo " I: arch: $ARCH " >& 2
echo " I: arch: $ARCH "
echo " I: rootdir: $ROOTDIR " >& 2
echo " I: rootdir: $ROOTDIR "
echo " I: mirror: $MIRROR " >& 2
echo " I: mirror: $MIRROR "
echo " I: pkgs: $PACKAGES " >& 2
echo " I: pkgs: $PACKAGES "
echo "I: --------------------------" >& 2
echo "I: --------------------------"
[ -e " $ROOTDIR .tar " ] && { echo "tarball still exists" >& 2; exit 1; }
[ -e " $ROOTDIR .tar " ] && { echo "tarball still exists" >& 2; exit 1; }
[ -e " $ROOTDIR " ] && { echo "root directory still exists" >& 2; exit 1; }
[ -e " $ROOTDIR " ] && { echo "root directory still exists" >& 2; exit 1; }
# create multistrap.conf
# create multistrap.conf
echo "I: create multistrap.conf" >& 2
echo "I: create multistrap.conf"
MULTISTRAPCONF = ` tempfile -d . -p multistrap`
MULTISTRAPCONF = ` tempfile -d . -p multistrap`
echo -n > " $MULTISTRAPCONF "
echo -n > " $MULTISTRAPCONF "
while read line; do
while read line; do
@ -111,18 +111,18 @@ multistrap $MSTRAP_SIM -f "$MULTISTRAPCONF"
rm -f " $MULTISTRAPCONF "
rm -f " $MULTISTRAPCONF "
# backup ldconfig and ldd
# backup ldconfig and ldd
echo "I: backup ldconfig and ldd" >& 2
echo "I: backup ldconfig and ldd"
mv $ROOTDIR /sbin/ldconfig $ROOTDIR /sbin/ldconfig.REAL
mv $ROOTDIR /sbin/ldconfig $ROOTDIR /sbin/ldconfig.REAL
mv $ROOTDIR /usr/bin/ldd $ROOTDIR /usr/bin/ldd.REAL
mv $ROOTDIR /usr/bin/ldd $ROOTDIR /usr/bin/ldd.REAL
# copy initial directory tree - dereference symlinks
# copy initial directory tree - dereference symlinks
echo " I: copy initial directory root tree $PLATFORM /root/ to $ROOTDIR / " >& 2
echo " I: copy initial directory root tree $PLATFORM /root/ to $ROOTDIR / "
if [ -r " $PLATFORM /root " ] ; then
if [ -r " $PLATFORM /root " ] ; then
cp --recursive --dereference $PLATFORM /root/* $ROOTDIR /
cp --recursive --dereference $PLATFORM /root/* $ROOTDIR /
fi
fi
# preseed debconf
# preseed debconf
echo "I: preseed debconf" >& 2
echo "I: preseed debconf"
if [ -r " $PLATFORM /debconfseed.txt " ] ; then
if [ -r " $PLATFORM /debconfseed.txt " ] ; then
cp " $PLATFORM /debconfseed.txt " $ROOTDIR /tmp/
cp " $PLATFORM /debconfseed.txt " $ROOTDIR /tmp/
fakechroot chroot $ROOTDIR debconf-set-selections /tmp/debconfseed.txt
fakechroot chroot $ROOTDIR debconf-set-selections /tmp/debconfseed.txt
@ -132,24 +132,24 @@ fi
# run preinst scripts
# run preinst scripts
for script in $ROOTDIR /var/lib/dpkg/info/*.preinst; do
for script in $ROOTDIR /var/lib/dpkg/info/*.preinst; do
[ " $script " = " $ROOTDIR /var/lib/dpkg/info/bash.preinst " ] && continue
[ " $script " = " $ROOTDIR /var/lib/dpkg/info/bash.preinst " ] && continue
echo " I: run preinst script ${ script ## $ROOTDIR } " >& 2
echo " I: run preinst script ${ script ## $ROOTDIR } "
fakechroot chroot $ROOTDIR ${ script ## $ROOTDIR } install
fakechroot chroot $ROOTDIR ${ script ## $ROOTDIR } install
done
done
# run dpkg --configure -a twice because of errors during the first run
# run dpkg --configure -a twice because of errors during the first run
echo "I: configure packages" >& 2
echo "I: configure packages"
fakechroot chroot $ROOTDIR /usr/bin/dpkg --configure -a || fakechroot chroot $ROOTDIR /usr/bin/dpkg --configure -a
fakechroot chroot $ROOTDIR /usr/bin/dpkg --configure -a || fakechroot chroot $ROOTDIR /usr/bin/dpkg --configure -a
# source hooks
# source hooks
if [ -r " $PLATFORM /hooks " ] ; then
if [ -r " $PLATFORM /hooks " ] ; then
for f in $PLATFORM /hooks/*; do
for f in $PLATFORM /hooks/*; do
echo " I: run hook $f " >& 2
echo " I: run hook $f "
. $f
. $f
done
done
fi
fi
#cleanup
#cleanup
echo "I: cleanup" >& 2
echo "I: cleanup"
rm $ROOTDIR /sbin/ldconfig $ROOTDIR /usr/bin/ldd
rm $ROOTDIR /sbin/ldconfig $ROOTDIR /usr/bin/ldd
mv $ROOTDIR /sbin/ldconfig.REAL $ROOTDIR /sbin/ldconfig
mv $ROOTDIR /sbin/ldconfig.REAL $ROOTDIR /sbin/ldconfig
mv $ROOTDIR /usr/bin/ldd.REAL $ROOTDIR /usr/bin/ldd
mv $ROOTDIR /usr/bin/ldd.REAL $ROOTDIR /usr/bin/ldd
@ -157,6 +157,6 @@ rm $ROOTDIR/usr/sbin/policy-rc.d
# need to generate tar inside fakechroot so that absolute symlinks are correct
# need to generate tar inside fakechroot so that absolute symlinks are correct
# tar is clever enough to not try and put the archive inside itself
# tar is clever enough to not try and put the archive inside itself
echo " I: create tarball $ROOTDIR .tar " >& 2
echo " I: create tarball $ROOTDIR .tar "
fakechroot chroot $ROOTDIR tar -cf $ROOTDIR .tar -C / .
fakechroot chroot $ROOTDIR tar -cf $ROOTDIR .tar -C / .
mv $ROOTDIR /$ROOTDIR .tar .
mv $ROOTDIR /$ROOTDIR .tar .