I've used non-empty mountpoints a few times, mostly when mounting a directory onto itself, but I have no idea how popular that use case really is. Mounting to a new empty location is probably always possible, but it's sometimes quite undesirable or inconvenient: - Sometimes I want to enforce certain rules on a directory and hide the original directory to prevent confusion and misuse. - Sometimes I want to quickly test something on an existing directory, and a program I want to use might be configured or even hard-coded to use that specific directory. So I think this is worth fixing.
Here's my current understanding (I was a bit confused in my initial response): - The scope: bindfs seems to work fine with libfuse2 and fuse3 EXCEPT for `nonempty`. The test suite, which tests most other features, passes on Debian 10 with fuse3 installed. - The bug: libfuse2 checks that the destination is empty or `nonempty` is given. Then it invokes fusermount (symlinked to fusermount3), which doesn't accept `nonempty`. - bindfs cannot be compiled against libfuse3. That would require significant code changes. So it seems backwards compatibility between fusermount3 and libfuse2 was intended, and this is a bug there. If so, here are the "easy" fixes I can think of: 1. patch fusermount3 to accept and ignore `nonempty` (perhaps only when invoked through a symlink named fusermount?) or 2. patch libfuse2 to stop requiring `nonempty` (or passing it to fusermount when it's symlinked to fusermount3?) or 3. instead of symlinking fusermount -> fusermount3, make it a wrapper script that drops `nonempty` from any option list like `-o option1,nonempty,option2,...` If someone who knows FUSE better can point out something simple I can do in bindfs code instead, I'd be happy to write a short patch. But there may be other FUSE 2 filesystems designed to "wrap" an existing directory that also have this bug, so I think fixing this at the FUSE layer is better. On Tue, 18 Feb 2020 at 15:12, Eugene V. Lyubimkin <jac...@debian.org> wrote: > Hello, > > Martin Pärtel kirjoitti 17.2.2020 klo 10.49: > > I'm unfortunately unlikely to have time to port bindfs to FUSE 3 in the > near future :( > > > > The easiest distro-level workaround in terms of "least code required" > would probably be to patch fuse3's fusermount to > > allow and ignore `nonempty` (and maybe print a deprecation warning). Or > some hacks could probably be invented to direct > > FUSE 2 filesystems to use FUSE 2 helpers. It's up to the Debian > maintainers whether they want the maintenance burder of > > either of these workarounds. > > CC'ing FUSE's maintainer for extra input if any. > > > From the discussion above I gather that bindfs is still (with limitations) > usable with fuse3. If true, then I wouldn't > like to block users of fuse3 from using bindfs via strict Depends. I could > add Suggests or Recommends on fuse2, > though. > > How common of a use case is to use bindfs with a non-empty mount point? I > never mounted filesystems like that myself, so > I don't know if it's a minor nuisance with an easy workaround, or a > significant limitation making some use case > unachievable. > > > Regards, > -- > Eugene V. Lyubimkin aka JackYF > C++ GNU/Linux userspace developer, Debian Developer > >