Hi, I've recently discovered the polystrap tool and I find it very useful. I've just had to patch it a bit (attached) to fix absolute path handling for symlinks inside the chroot. Thanks, _g.
From 2e74755698f4fbe60c5780f9c28c4188cb7be4fd Mon Sep 17 00:00:00 2001 From: Gilles Filippini <pini@debian.org> Date: Mon, 8 Oct 2012 10:07:32 +0200 Subject: [PATCH] Fix chroot internal symlinks path This patch makes sure ${ROOTDIR} is always an absolute path. This is requested for the absolute symlink conversion step to work properly. --- polystrap.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/polystrap.sh b/polystrap.sh index fe0a65a..2f1f091 100755 --- a/polystrap.sh +++ b/polystrap.sh @@ -73,7 +73,7 @@ BOARD="$1" # overwrite target options by commandline options SUITE=${_SUITE:-$SUITE} ARCH=${_ARCH:-$ARCH} -ROOTDIR=${_ROOTDIR:-$ROOTDIR} +ROOTDIR=$(readlink -m ${_ROOTDIR:-$ROOTDIR}) MIRROR=${_MIRROR:-$MIRROR} if [ "$_PACKAGES" = "" ] && [ -r "$BOARD/packages" ]; then @@ -130,7 +130,7 @@ for link in `find $ROOTDIR -type l`; do if [ "${target%%/*}" = "" ]; then # target begins with slash echo "I: convert symlink: ${link#$ROOTDIR} -> $target" rm $link - ln -s $ROOTDIR/$target $link + ln -s ${ROOTDIR}$target $link fi done @@ -175,6 +175,7 @@ rm $ROOTDIR/usr/sbin/policy-rc.d # 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 -echo "I: create tarball $ROOTDIR.tar" -fakechroot chroot $ROOTDIR tar -cf $ROOTDIR.tar -C / . -mv $ROOTDIR/$ROOTDIR.tar . +TARBALL=$(basename $ROOTDIR).tar +echo "I: create tarball $TARBALL" +fakechroot chroot $ROOTDIR tar -cf $TARBALL -C / . +mv $ROOTDIR/$TARBALL . -- 1.7.10.4
Attachment:
signature.asc
Description: OpenPGP digital signature