Skip to content

"No fuse library found at expected path" error with Nix #222

@gepbird

Description

@gepbird

Cryptomator 1.19.0 updated fuse-nio-adapter from 5.1.0 to 6.0.1. Using fuse-nio-adapter 6.0.1 or 6.0.0, I get "No fuse library found at expected path" error when trying to unlock a vault, it works with 5.1.0.

I see this was introduced in 25293fa (and renamed in b1e35a3) that looks at hard coded locations per distribution.

I believe with Nix we were correctly making available fuse for cryptomator: we provide an LD_LIBRARY_PATH variable for cryptomator with the fuse library, this is the relevant log line when running cryptomator with this variable:

11:46:32.244 [main] INFO  org.cryptomator.common.Environment - java.library.path: /nix/store/75xbnj2679mg2871vdb0w54ahd95n48l-cups-2.4.16-lib/lib:/nix/store/zjarzxjwirqym8wasmzgvqjvvp3bbwr9-cairo-1.18.4/lib:/nix/store/1qm74vf93ik1xjrr9kl6qvjrklljlcqh-glib-2.86.3/lib:/nix/store/q43d6pbb9qxyhj6hq4id5mdg6gfrz6gv-gtk+3-3.24.51/lib:/nix/store/8x2msxrm9yb8ycz9pi1pi8wz5zs9gy64-ffmpeg-8.0.1-lib/lib:/nix/store/slf3cq5kswds75v55djb1rf94lyw8zv7-fuse-3.17.4/lib:/nix/store/ffyhiqisq7mzn5g5x5n556njq2h8kp0z-libayatana-appindicator-0.5.92/lib:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib

With Nix, there's no /lib or similar directories, and everything goes in to the /nix/store with a long hash of the library, in this case /nix/store/slf3cq5kswds75v55djb1rf94lyw8zv7-fuse-3.17.4/lib.

I think adding some regex matching for nix store paths is not the best solution and instead you could also check if the libfuse3.so is available from a directory in LD_LIBRARY_PATH variable. Or I'd be also happy if this fuse library check could be disabled by a build flag.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions