Thanks Roger!

I will test this come back to you soon with complete patches (they would be simple or very similar to what you suggest) addressing this issue. In the meantime, I have also contacted[1] the developer of unionfs-fuse about this issue. I requested him to adjust his program/package to adhere to standard mount/fstab syntax. Once I get some response (or after it times out), I hope to get back to you with a complete set of changes for your review and inclusion.

[1] http://groups.google.com/group/unionfs-fuse/browse_thread/thread/8ccadc6679d19caf

Regards,
Shanto

On 10/31/2011 05:39 AM, Roger Leigh wrote:
On Mon, Oct 31, 2011 at 05:04:02AM +0600, Shanto wrote:
Has there been any progress on this? How could I help?

mount -t fuse -o cow,suid,dev,allow_other "unionfs-fuse#d1=RW:d2=RO"

While the above command should work in theory, schroot itself
doesn't allow any value for union-type other than aufs and unionfs:

E: /etc/schroot/chroot.d/abf.conf: line 8 [abf32] union-type:
Unknown filesystem union type ‘fuse’
E: /etc/schroot/chroot.d/abf.conf: line 8 [abf32] union-type:
Unknown filesystem union type ‘unionfs-fuse’

I think, we need schroot program to allow either of fuse or
unions-fuse. Once schroot accepts those union-types, it would be
only a matter of passing proper configuration directives to have
unionfs-fuse and/or other fuse implementations.
This would be a simple change to sbuild/sbuild-chroot-facet-union.cc:

diff --git a/sbuild/sbuild-chroot-facet-union.cc b/sbuild/sbuild-chroot-facet-un
index 8120024..a397f47 100644
--- a/sbuild/sbuild-chroot-facet-union.cc
+++ b/sbuild/sbuild-chroot-facet-union.cc
@@ -151,6 +151,7 @@ chroot_facet_union::set_union_type (std::string const&  
type)
  {
    if (type == "aufs" ||
        type == "unionfs" ||
+      type == "unionfs-fuse" ||
        type == "none")
      this->union_type = type;
    else

This simply permits "union-type=unionfs-fuse" in the configuration
file.  Would any other support be required in addition, e.g. in the
setup scripts?  You would definitely need to add support to
etc/setup.d/10mount, even if it's as simple as

diff --git a/etc/setup.d/10mount b/etc/setup.d/10mount
index 29636d1..78cdbad 100755
--- a/etc/setup.d/10mount
+++ b/etc/setup.d/10mount
@@ -86,7 +86,7 @@ do_mount_fs_union()
      # Prepare mount options (branch config) for union type
      if [ -z "$CHROOT_UNION_MOUNT_OPTIONS" ]; then
         case $CHROOT_UNION_TYPE in
-           unionfs)
+           unionfs|unionfs-fuse)
                 
CHROOT_UNION_MOUNT_OPTIONS="dirs=${CHROOT_UNION_OVERLAY_DIRECTOR
                 ;;
             aufs)

But if you needed any additional special mount options, you could add
them here.  If those options require additional keys in schroot.conf,
they would need adding to sbuild-chroot-facet-union.(cc|h).

I'm afraid I don't use the union functionality myself, which makes
validation and testing of this feature difficult.  I'll be happy to
review any changes, but you might also want to run them by Jan-Marek
Glogowski (CCd) who authored the unionfs support and should be a bit
more familiar with it than myself.


Regards,
Roger




--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to