Mono.Fuse 0.4.2 - Jonathan Pryor's web log
Mono.Fuse 0.4.2
Mono.Fuse is a C# binding for FUSE. This is a minor update over the previous Mono.Fuse 0.4.1 release.
This is a minor release to fix configure support.
Aside: A Walk through Mono.Posix History
As mentioned in the Mono.Fuse 0.1.0 release, one of the side-goals was to make sure that Mono.Unix.Native was complete enough to be usable. One of the great discoveries was that it wasn't, which led to the addition of some new NativeConvert methods.
However, Mono.Fuse and the new Mono.Posix development were concurrent, and in getting the new NativeConvert methods added some of them were dropped. Originally, there would be 4 methods to convert between managed and native types:
- void Copy (IntPtr source, out ManagedType dest);
- void Copy (ref ManagedType source, IntPtr dest);
- bool TryCopy (IntPtr source, out ManagedType dest);
- bool TryCopy (ref ManagedType source, IntPtr dest);
This is what Mono.Fuse 0.2.1 and later releases assumed, and they used the NativeConvert.Copy methods.
Unfortunately, it was felt that having 4 methods/type (Stat, Statvfs, Utimbuf, Pollfd, Timeval...) would add a lot of new methods, so Mono.Posix only accepted the TryCopy variants, and not the Copy variants.
This implicitly broke Mono.Fuse, but I unfortunately didn't notice. Combined with a configure check that only checked whether libMonoPosixHelper.so exported one of the required underlying copy functions, most people didn't notice it either (as the installed libMonoPosixHelper.so didn't have the exports, so the check always failed, causing Mono.Fuse to use it's fallback methods).
Now that newer Mono releases are available, the configure check does find the libMonoPosixHelper.so exports, so it tries to use the NativeConvert methods...and triggers a compilation error, as the methods it's trying to use don't exist.
Mea culpa.
Download
Mono.Fuse 0.4.2 is available from http://www.jprl.com/Projects/mono-fuse/mono-fuse-0.4.2.tar.gz. It can built with Mono 1.1.13 and later. Apple Mac OS X support has only been tested with Mono 1.2.3.1.
GIT Repository
The GIT repository for Mono.Fuse is at http://www.jprl.com/Projects/mono-fuse.git.
blog comments powered by Disqus