collapse Table of Contents
  1. Mono.Fuse 0.4.2 - Jonathan Pryor's web log
    1. Mono.Fuse 0.4.2
      1. Aside: A Walk through Mono.Posix History
      2. Download
      3. GIT Repository

Mono.Fuse 0.4.2 - Jonathan Pryor's web log

« POSIX Says The Darndest Things | Main | Goodbye Cadmus; Hello Novell »

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:

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.

Posted on 29 Jun 2007 | Path: /development/mono.fuse/ | Permalink
blog comments powered by Disqus