[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Patch for polystrap



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


Reply to: