Opened 5 months ago
Last modified 5 months ago
#70000 assigned defect
osxfuse @3.8.3: does not provide libfuse.dylib symlink
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | Cc: | ra1nb0w | |
Port: | osxfuse |
Description
The macfuse port installs libfuse.2.dylib and a libfuse.dylib symlink pointing to it so that one could use -lfuse
to link with it. It also provides libosxfuse.2.dylib but it does not provide libosxfuse.dylib so that using -losxfuse
, like ext2fuse does, fails:
% port installed macfuse The following ports are currently installed: macfuse @4.7.2_0 (active) % ls -l $(port contents macfuse|grep dylib$) -rwxr-xr-x 1 root wheel 531568 Apr 27 16:47 /opt/local/lib/libfuse.2.dylib lrwxr-xr-x 1 root wheel 15 Apr 27 16:47 /opt/local/lib/libfuse.dylib -> libfuse.2.dylib lrwxr-xr-x 1 root wheel 15 Apr 27 16:47 /opt/local/lib/libosxfuse.2.dylib -> libfuse.2.dylib lrwxr-xr-x 1 root wheel 15 Apr 27 16:47 /opt/local/lib/libosxfuse_i64.2.dylib -> libfuse.2.dylib
Is this intentional or could the port provide libosxfuse.dylib as well?
Similarly it provides a libosxfuse_i64.2.dylib symlink but not a libosxfuse_i64.dylib symlink so if anybody tried to link with -losxfuse_i64
that would fail.
Change History (8)
comment:1 Changed 5 months ago by mohd-akram (Mohamed Akram)
comment:2 follow-up: 3 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)
Using libfuse would only work on new OS versions that use macFUSE. It would not work on old OS versions that use OSXFUSE because OSXFUSE only has libosxfuse; it does not have libfuse. It seems inconvenient to modify each port that uses the fuse portgroup to decide which library to use. Or a variable could be set in the fuse portgroup. Or the macFUSE port could make it easy by providing libosxfuse symlinks so that libosxfuse can be used regardless whether OSXFUSE or macFUSE is being used. Or the OSXFUSE port could have libfuse symlinks added. Or ext2fuse could use pkg-config to find what library to use.
comment:3 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)
Replying to ryandesign:
Or ext2fuse could use pkg-config to find what library to use.
This is what I've gone with to resolve #69997. If you don't think any additional symlinks for macFUSE or OSXFUSE are warranted you can close this ticket.
comment:4 Changed 5 months ago by mohd-akram (Mohamed Akram)
I actually don't understand what's happening in that issue. Looking at this build on macOS 14, the dependency is macfuse
and -losxfuse
is added in the environment, so presumably by MacPorts. Where is it coming from? There's no mention of osxfuse anywhere in ext2fuse
code that I can find.
comment:5 Changed 5 months ago by mohd-akram (Mohamed Akram)
Oh I see, it was from the Portfile.
Or the OSXFUSE port could have libfuse symlinks added.
Then this is definitely the right move if this issue is common enough, since libfuse
is what projects look for.
comment:6 Changed 5 months ago by mohd-akram (Mohamed Akram)
Owner: | mohd-akram deleted |
---|---|
Summary: | macfuse @4.7.2: does not provide libosxfuse.dylib or libosxfuse_i64.dylib symlinks → osxfuse @3.8.3: does not provide libfuse.dylib symlink |
comment:7 Changed 5 months ago by mohd-akram (Mohamed Akram)
Port: | osxfuse added; macfuse removed |
---|
comment:8 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)
Right, the ext2fuse source code is hardcoded to use libfuse. Back when MacPorts switched to OSXFUSE, ext2fuse had to be updated to use libosxfuse, and it was done by adding -losxfuse
to LDFLAGS in the portfile. That broke when MacPorts moved to macFUSE, and is what I fixed in #69997. It would be simpler if both OSXFUSE and macFUSE provided libfuse.
Congrats on ticket 70000 :) I would imagine it's intentional since they're all symlinked to libfuse, so I'm guessing they're there only to not break existing applications but shouldn't be linked against in development. I'd prefer to stick with upstream rather than have some builds work with the MacPorts version but not the upstream one. It also seems
ext2fuse
was last updated in 2008 so the port should probably just be patched to use libfuse.