Opened 4 months ago

Last modified 4 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 4 months ago by mohd-akram (Mohamed Akram)

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.

comment:2 Changed 4 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 in reply to:  2 Changed 4 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 4 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 4 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 4 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 symlinksosxfuse @3.8.3: does not provide libfuse.dylib symlink

comment:7 Changed 4 months ago by mohd-akram (Mohamed Akram)

Port: osxfuse added; macfuse removed

comment:8 Changed 4 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.

Note: See TracTickets for help on using tickets.