Revision
79852
Author
jmr@macports.org
Date
2011-06-27 22:21:20 -0700 (Mon, 27 Jun 2011)

Log Message

mpab: update mpsync.sh to allow chrootless operation

Modified Paths

Diff

Modified: contrib/mpab/mpsync.sh (79851 => 79852)


--- contrib/mpab/mpsync.sh	2011-06-28 05:06:22 UTC (rev 79851)
+++ contrib/mpab/mpsync.sh	2011-06-28 05:21:20 UTC (rev 79852)
@@ -10,25 +10,40 @@
 if [[ -n "$MPAB_DATA" ]]; then
    dataDir=$MPAB_DATA
 fi
+if [[ -z "$PREFIX" ]]; then
+   PREFIX=/opt/local
+fi
 if [[ -z "$SRC_PREFIX" ]]; then
    SRC_PREFIX=/opt/mports
 fi
 
 chrootPath="${dataDir}/${CHROOTSUBDIR}"
+OSMajor=`uname -r | sed 's/\..*//'`
+# xcodebuild breaks in chroots on 10.6
+if [[ $1 = "-n" || $OSMajor -ge 10 ]]; then
+    chrootPath=""
+    if [[ $1 = "-n" ]]; then
+        shift
+    fi
+fi
 
 # $1 - script to execute
 function chroot_exec () {
-    cp -p ${baseDir}/chroot-scripts/$1 ${chrootPath}/var/tmp/
-    # Set DYLD_NO_FIX_PREBINDING as otherwise, on 10.5, dyld will spew
-    # errors to syslog/console log like:
-    # com.apple.launchd[1] (com.apple.dyld): Throttling respawn: Will start in 10 seconds
-    env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin HOME=/var/root DYLD_NO_FIX_PREBINDING=1 /usr/sbin/chroot ${chrootPath} /bin/sh /var/tmp/$1
+    cp -p ${baseDir}/chroot-scripts/$1 ${chrootPath}/var/tmp
+    if [[ -n "$chrootPath" ]]; then
+        # Set DYLD_NO_FIX_PREBINDING as otherwise, on 10.5, dyld will spew
+        # errors to syslog/console log like:
+        # com.apple.launchd[1] (com.apple.dyld): Throttling respawn: Will start in 10 seconds
+        env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin HOME=/var/root DYLD_NO_FIX_PREBINDING=1 PREFIX=${PREFIX} SRC_PREFIX=${SRC_PREFIX} /usr/sbin/chroot ${chrootPath} /bin/sh /var/tmp/$1
+    else
+        env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin HOME=/var/root PREFIX=${PREFIX} SRC_PREFIX=${SRC_PREFIX} /bin/sh /var/tmp/$1
+    fi
     rm ${chrootPath}/var/tmp/$1
 }
 
 if [[ -d ${dataDir}/${exportDir} ]] ; then 
     svn update --non-interactive \
-	-r HEAD ${dataDir}/${exportDir} \
+	-r HEAD ${dataDir}/${exportDir}/* \
 	> /dev/null || exit 1
 else
     echo "Checking out macports from svn..."
@@ -37,7 +52,7 @@
 	${dataDir}/${exportDir} > /dev/null || exit 1
 fi
 
-if [[ ! -d ${chrootPath} ]] ; then
+if [[ -n "$chrootPath" && ! -d "$chrootPath" ]] ; then
     sudo ${baseDir}/mpab mount || exit 1
     umount=yes
 fi
@@ -46,7 +61,7 @@
     ${dataDir}/${exportDir}/dports \
     ${chrootPath}${SRC_PREFIX} || exit 1
 
-echo "Re-creating portindex in chroot"
+echo "Re-creating portindex"
 chroot_exec recreateportindex
 
 if [[ "${umount}" = yes ]] ; then