Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure that this works with fusermount, fusermount3, ... fusermountN #10

Closed
probonopd opened this issue Jun 26, 2023 · 6 comments · Fixed by #11
Closed

Ensure that this works with fusermount, fusermount3, ... fusermountN #10

probonopd opened this issue Jun 26, 2023 · 6 comments · Fixed by #11

Comments

@probonopd
Copy link
Member

probonopd commented Jun 26, 2023

Currently on a system without FUSE, we get:

./appimagetool-x86_64.AppImage 
fuse: failed to exec fusermount3: No such file or directory

We need to check to ensure that this works with FUSE2 and FUSE3 (and future) versions of fusermount (to be more specific, that at least it attempts to).

E.g.,

  1. Check whether fusermount3 is available; if yes, use that
  2. Check whether fusermount is available; if yes, use that (so that AppImages continue to work on pre-libfuse3 systems)
  3. Check whether fusermount4 is available; if yes, use that (so that once distribtions drop libfuse3 in favor of libfuse4, pre-existing AppImages at least attempt to run - FUSE unfortunately doesn't see a need to guarantee anything, but not even trying means guaranteed failure)
  4. ... and so on

Currently, fusermount3 seems to be hardocded in libfuse:

https://github.com/libfuse/libfuse/blob/010d820131adc2059d3b2516991ebaa16dc0bdd9/lib/mount.c#L44

If libfuse would allow to pass in a FUSERMOUNT_PROG environment variable, that would allow us do do the job nicely.

Possibly we might want to engage in libfuse GitHub Discussions to elaborate on our use case and why a future stability guarantee for fusermount would be very important for it.

References:

@TheAssassin

This comment was marked as resolved.

@probonopd

This comment was marked as resolved.

@TheAssassin

This comment was marked as resolved.

@probonopd probonopd transferred this issue from AppImage/appimagetool Jul 1, 2023
@probonopd
Copy link
Member Author

probonopd commented Jul 1, 2023

@probonopd
Copy link
Member Author

probonopd commented Jul 2, 2023

Looks like the compiled-in FUSERMOUNT_PROG is /usr/local/bin whereas for most distributions it should be /usr/bin.

Stuff like this is the reason why I was using $PATH in the first place.

Using meson setup --prefix=/usr might result in fusermount being found in /usr/bin - but what about operating systems that place it elsewhere?

Alma Linux is already now putting Xorg into /usr/libexec/Xorg. Who guarantees that a few years down the road, they won't put fusermount there as well?

@probonopd
Copy link
Member Author

Opened an discussion thread in the FUSE project:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants