I also think it would be a useful addition to allow specification of the destination for a bind mount.

In my case, I'm working on a squeeze system and would like to build a package under pbuilder using a wheezy pbuilder chroot, but my unit tests require /dev/shm to be mounted. BINDMOUNTS='/dev/shm' will fail because of the move to /run/shm in wheezy. ie. pbuilder tries to mount the local /dev/shm to /dev/shm inside the chroot, which in wheezy has been replaced by a symlink. Instead, what works is to mount /dev/shm to /run/shm inside the chroot.

The patch below alters the format of BINDMOUNTS, allowing a colon separated <src>:<dest> bind mount specification. In the previous example this would be BINDMOUNTS="/dev/shm:/run/shm". This should be backwards compatible with existing BINDMOUNTS specifications.

This has been tested against pbuilder 0.199+nmu1squeeze1.

Austin


--- pbuilder-modules.orig    2013-07-04 15:04:06.000000000 +1000
+++ pbuilder-modules    2013-07-04 15:46:28.000000000 +1000
@@ -206,7 +206,7 @@
     reversed="$mnt $reversed"
     done
     for mnt in $reversed; do
-    umount_one "$mnt"
+    umount_one "${mnt#*:}"
     done
     if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
     umount_one "selinux"
@@ -259,11 +259,17 @@
     mounted[${#mounted[@]}]="$BUILDPLACE/selinux"
     fi
     for mnt in $BINDMOUNTS; do
-    log "I: Mounting $mnt"
-    if mkdir -p "$BUILDPLACE/$mnt" &&
-        mount -obind "$mnt" "$BUILDPLACE/$mnt"; then
+    mntpoint=${mnt#*:}
+    mnt=${mnt%%:*}
+    if [ "$mnt" = "$mntpoint" ]; then
+        log "I: Mounting $mnt"
+    else
+        log "I: Mounting $mnt to $mntpoint"
+    fi
+    if mkdir -p "$BUILDPLACE/$mntpoint" &&
+        mount -obind "$mnt" "$BUILDPLACE/$mntpoint"; then
         # successful.
-        mounted[${#mounted[@]}]="$mnt"
+        mounted[${#mounted[@]}]="$BUILDPLACE/$mntpoint"
     else
         # this part of code is the only part which is supposed to fail.
         # When unsuccessful, backtrack / umount and abort.


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to