Subject: Re: libfuse 3 can't find fusermount

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 21 Jan 2022 08:55:23 +0100

Hi Leo,

Am Freitag, dem 21.01.2022 um 02:41 -0500 schrieb Leo Famulari:
> While testing a Borg update (patch attached), I noticed that the
> FUSERMOUNT_DIR hack in Fuse 3 doesn't seem to work like it does with
> Fuse 2.
> 
> The 1.2.0b3 beta of the upcoming Borg release can use either Fuse 2
> (with python-llfuse) or Fuse 3 (with python-pyfuse3).
> 
> The `borg mount` command works as expected with Fuse 2 / llfuse.
> 
> But, with Fuse 3 / pyfuse3, it fails with:
> 
> fuse: failed to exec fusermount3: No such file or directory
> 
> When I commented out the FUSERMOUNT_DIR [0] substitution in the fuse-
> 3 package and rebuilt Borg, `borg mount` instead gives us this, which
> is expected, because this system does not have a setuid fusermount3:
> 
> fusermount3: mount failed: Operation not permitted
> 
> So, the substitution doesn't seem to help with Fuse 3: it just breaks
> the lookup.
> 
> You can apply the patch and test it out. And you can also observe the
> optimal behaviour if you switch the borg package's fuse
> implementation from pyfuse3 to llfuse / Fuse 2.
> 
> Should we just remove the substitution in fuse-3?
What is the behaviour if you have fusermount3 setuid?  I know from gvfs
(which also depends on Fuse 3), that adding the setuid binary *does*
make gvfsd-fuse work again, so it'd be good to know if this works for
borg as well.  If not, we'd have to be careful not to introduce a
regression. 

Cheers