[MacPorts] #29917: Fuse4X: add port

MacPorts noreply at macports.org
Sun Jul 24 23:33:21 PDT 2011


#29917: Fuse4X: add port
--------------------------------------+-------------------------------------
 Reporter:  anatol.pomozov@…          |       Owner:  dports@…                           
     Type:  submission                |      Status:  assigned                           
 Priority:  Normal                    |   Milestone:                                     
Component:  ports                     |     Version:                                     
 Keywords:                            |        Port:  fuse4x fuse4x-kext fuse4x-framework
--------------------------------------+-------------------------------------

Comment(by anatol.pomozov@…):

 >  * we are not going to replace macfuse with fuse4x, at least not right
 away. Both should be available as options; we might also have a port for
 OSXFUSE.
 Fuse4X conflicts with macfuse and OSXFUSE. How it should work? I would
 imagine something like a "virtual" package. i.e. there is will be a
 virtual package "fuse" and a few implementations (and only one of them can
 be installed).

 > At some later point, if it doesn't look like there are any problems, we
 can consider changing the default or marking macfuse as `replaced_by`.
 I though about replaced_by and it might work for macfuse. For that
 following changes have to be done:
  - kext - nothing as the only user of it is libfuse itself
  - libfuse - libfuse should use the same path and the same compiler flags
 as macfuse. Some changes to ./configure.am required. There is a question
 about changed macfuse-specific API. Any filesystem that uses only fuse
 specific API should be fine. Some other filesystems (e.g. SSHFS from
 macfuse) have to be patched to change it. After fuse4x is installed I can
 try to compile/check existing filesystems in the macports to see if it
 conforms fuse API. If it does not make sense to patch a filesystem - then
 those functions should be added back to fuse4x enabled with
 -DMACFUSE_COMPAT_MODE define.
  - MacFUSE.framework. It is installed outside of the macfuse tree.
 Symbolic link should be enough (??)

 >  * we do not need to support having more than one FUSE implementation
 installed, so it's OK if the ports conflict with each other on fuse.h. In
 fact, it may be better that way because there won't be any question about
 which one a given filesystem is using. Renaming the header files sounds
 like it could cause a significant compatibility issue for filesystems.
 >  * the fuse4x ports shouldn't conflict with an installation of MacFUSE
 installed outside of MacPorts. It doesn't look like they will, which is
 great since an improvement over the macfuse port. I don't think they will
 conflict with a standalone Fuse4X installation either although I imagine
 they won't actually be usable simultaneously unless they're the same
 version.

 Additional clarification:
 libfuse should not conflict as the library uses different path. In
 question are kext and framework.
  - kext. The same fuse4x cannot be loaded from several places and used at
 the same time. Following things will conflict between 2 instances of
 fuse4x kext: filesystem name, device file name, sysctl namespace.
  - framework, both macports and standalone installer uses the same path.

 Let me know if you want to make macports kext fully independent from
 standalone version. I'll give you more info about exact places need to be
 changed in kext.

 >  * existing filesystem ports should be able to build against either
 macfuse or fuse4x. This will take some changes but (I think) not major
 ones. I've already put together a patch for sshfs.
 >  * I'd wanted upgrading from macfuse to fuse4x to not require rebuilding
 filesystems, but I think that's unrealistic. There are substantive
 differences between the two, like the fact that MacFUSE has semaphore
 emulation and Fuse4X doesn't (FWIW, I agree with you that it shouldn't!).
 So it's OK if switching requires a rebuild.
 I think it would be possible - compiler flags and installation paths
 should be corrected in fuse4x. What about MacFUSE.framework?

 > All of this argues that we're basically in good shape with the portfiles
 as they are now. I need to test a couple more filesystems, and it would be
 good to have a release with the Leopard/Lion compatibility fixes I sent
 you. I also haven't tested anything that uses the Obj-C framework yet.
 Other than that, I should be able to commit it soon.

-- 
Ticket URL: <https://trac.macports.org/ticket/29917#comment:47>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list