Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/index.php/Reporting_Bug_Guidelines

Do NOT report bugs when a package is just outdated, or it is in Unsupported. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#61261 - [fuse-common] 3.3.0-1 missing fuse3 dependency/split-package issue

Attached to Project: Arch Linux
Opened by Peter Uchno (puchno) - Thursday, 03 January 2019, 09:59 GMT
Last edited by Doug Newgard (Scimmia) - Wednesday, 20 February 2019, 18:05 GMT
Task Type Bug Report
Category Packages: Extra
Status Assigned
Assigned To Anatol Pomozov (anatolik)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 4
Private No

Details

Description:
Version 3.3.0-1 of fuse-common contains a mount.fuse binary that links against libfuse3.so.3, which is part of fuse3. However, fuse-common does not explicitly depend on fuse3, leading to a shared library error when trying to mount fuse2-based filesystems using mount.fuse via an fstab entry.

This is because fuse2 pulls fuse-common in as a dependency, but that does not pull fuse3.

I don't know whether it should pull in fuse3, as far as I know mount.fuse and mount.fuse3 should link against fuse2 and fuse3 respectively, but I'll leave that up to the maintainers.

Installing fuse3 manually works as a workaround and the newer mount.fuse operates on fuse2-based filesystems, as far as I could tell in my testing.

Additional info:
* package version(s)
fuse-common 3.3.0-1
fuse2 2.9.8-1

I also tested fuse-common 3.4.1-1 from testing, but that is a regular upgpkg and the changes there will not fix this.

* config and/or log files etc.
Output of 'ldd /usr/bin/mount.fuse':
linux-vdso.so.1 (0x00007ffcf0d39000)
libfuse3.so.3 => not found
libc.so.6 => /usr/lib/libc.so.6 (0x00007f02a7b7d000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f02a7d6c000)

Steps to reproduce:
Install fuse-common, attempt to run mount.fuse:
% mount.fuse
mount.fuse: error while loading shared libraries: libfuse3.so.3: cannot open shared object file: No such file or directory
This task depends upon

Comment by Guilherme (GUiHKX) - Monday, 14 January 2019, 09:57 GMT
I had to manually install fuse3 to fix this issue I was having with mounting shared folders in VMware.


$ journalctl -b -u mnt-hgfs.mount
-- Logs being at Sun 2018-04-22 00:57:23 -03, end at Mon 2019-01-14 07:43:40 -02. --
Jan 14 07:36:42 arch systemd[1]: mounting /mnt/hgfs...
Jan 14 07:36:42 arch mount[301]: /usr/bin/mount.fuse: error while loading shared libraries: libfuse3.so.3: cannot open shared object file: No such file or directory
Jan 14 07:36:42 arch systemd[1]: mnt-hgfs.mount: Mount process exited, code=exited, status=127/n/a
Jan 14 07:36:42 arch systemd[1]: mnt-hgfs.mount: Failed with result 'exit-code'.
Jan 14 07:36:42 arch systemd[1]: Failed to mount /mnt/hgfs.
Comment by Adam Nielsen (Malvineous) - Sunday, 24 February 2019, 09:01 GMT
Just upgraded my system and it wouldn't boot (dumping me in maintenance mode) because it was unable to mount my filesystems.

Problem turned out to be because mount.fuse couldn't run:

mount.fuse: error while loading shared libraries: libfuse3.so.3: cannot open shared object file: No such file or directory

I had upgraded to fuse-common 3.4.1-1 and it's still linking against libfuse3 which isn't installed as a dependency:

$ ldd /usr/bin/mount.fuse
linux-vdso.so.1 (0x00007ffff55e3000)
libfuse3.so.3 => not found
libc.so.6 => /usr/lib/libc.so.6 (0x00007f61a12df000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f61a14ce000)

After installing the "fuse3" package my system was able to boot again and the filesystems could all be mounted. Thanks @puchno for the workaround until this package gets fixed!
Comment by Anatol Pomozov (anatolik) - Sunday, 24 February 2019, 13:45 GMT
what filesystem type you are trying to mount?
Comment by Adam Nielsen (Malvineous) - Sunday, 24 February 2019, 14:32 GMT
I have a FUSE unionfs mount for my home directory, but the mount.fuse command fails when run with no arguments so this problem doesn't seem to depend on what the filesystem type is.
Comment by Anatol Pomozov (anatolik) - Sunday, 24 February 2019, 17:04 GMT
FYI: related discussion https://github.com/libfuse/sshfs/issues/92

fuse decision to move 'mount' binary (that suppose to work both with fuse2 and fuse3) into common package and make the binary depending to fuse3 is a bit weird. https://github.com/libfuse/libfuse/blob/fuse_3_0_bugfix/ChangeLog.rst

We can add fuse-common->fuse3 dependency but it will create a cyclic dependency which is not good.
Comment by Adam Nielsen (Malvineous) - Sunday, 24 February 2019, 22:30 GMT
Interesting, thanks for the links. The changelog says that mount.fuse is now mount.fuse3, so is it possible that the wrong mount.fuse version ended up in fuse-common? If mount.fuse requires fuse3 then it would seem to make some sense to call it mount.fuse3 and move it to the fuse3 package, but I'm not sure what dependency issues that would create.
Comment by DeLord (DeLord) - Wednesday, 10 July 2019, 14:02 GMT
Hoi, this issue is still existing. Is there any real solution available, or should we just stick to manually installing fuse3 when we encounter this problem?

Loading...