[n.b. I've been subscribed for ages]

The explanations provided here are getting boring.

Today, when I open MacFUSE, I get:

To use the "MacFUSE" preferences pane,
System Preferences must quit and reopen.

(?) (Cancel) (OK)

This leads to annoying questions "where is the 64bit version of the
preferences panel". I'm going to ignore that disaster (people who have
joined recently are welcome to read the archives)
<http://groups.google.com/group/macfuse/browse_thread/thread/7bdfac879055e591/b6c9d303c2f842fc?lnk=gst&q=64+bit#b6c9d303c2f842fc>.

>From there, one gets:

MacFUSE (32-bit)

/o\ MacFUSE allows you to extend Mac OS X's native file handling
capabilities via 3rd-party
|=| file systems. Visit the MacFUSE website for more information.
----------------------------------------------------------------------------------------------
Installed Version: 2.1.5 (Beta)
[x] Show Beta Versions

No Updates Available At This Time                   (o) (Remove
MacFUSE) (Check For Updates)

Ignoring that:
* the no updates line is in all caps (which is wrong -- for sentences,
please see Apple's Display panel "Automatically adjust brightness as
ambient light changes", "Show displays in menu bar")
[MacFUSEPref-m.diff, MacFUSEPref-xib.diff]
* each time I task switch to the pane it spins some spinner -- this
seems to be updateUI, which is more or less stupid (from a UI
perspective!).

The panel is *much* shorter than my other panels.
- This includes DivX, Flip4Mac, Growl, and even a corporate 3rd party item.

What the panel doesn't do is actually answer the question which is
asked (and answered) weekly on this list:

"Who gave me this panel".

Is it absolutely impossible for MacFUSE to record a list of modules it
has loaded including paths and mount points?

For reference, zfs stores history as of oct 2006:
- http://www.opensolaris.org/os/community/zfs/version/4
- http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6343741

This enables people using zfs to easily answer the question "where did
this file system come from" (well, mostly when, but to the extent that
a file system's mount point changes you can reconstruct some form of
where).

It should be more or less trivial to provide some of this information,
as long as the userspace portion of fuse can write to a log file which
can be read by the preferences panel. (I believe the more correct
approach would involve some sort of logging daemon which ran in
response to mounts instead of the approach I'm providing in my
example, but I'm merely providing an example [fusermount-c.diff] for
discussion.)

Ideally the panel would show a list of:
* file system
* mount point
* mount time
(ordered by mount time, most recent first)
Bonus points for showing:
* the user for which a mount was created
* an icon that either represented the volume icon or the file system
driver (yes, this means that the mounter code will need to store an
icon somewhere that can be retrieved by the

The list should of course scroll. I think there's room for 6-10 list
items. Doing this would result in a panel which is size equivalent to
the other control panel items. For reference, Growl shows 9 list items
with I believe 32x32 icons.

Also, the text shouldn't say "MacFUSE allows..." it should probably
just say "This was probably installed by a /third party application/.
Removing this will probably break that application." The link should
be to a FAQ listing known third party applications, instead of the
main project page. [About-html.diff] -- note that this assumes someone
is capable of creating a wiki page with this information. This seems
trivial as Sam has provided a basic list (there are others). I haven't
figured out what it takes to make changes to the web site.

The goal should be to optimize for the average case and the average
user. At this point, MacFUSE is popular among commercial applications
so the average case and the average user is not the hobbyist, it's the
user who installed something else and didn't manually install MacFUSE.
The odd developer who did install it manually will know that s/he is
exceptional, and can choose to ignore the link, or read to the bottom
of the page which indicates "oh, yeah, you might have installed this
manually."

I might look into providing a patch for this, but I don't spend much
time in ObjC land. The prefpane seems to be
http://macfuse.googlecode.com/svn/trunk/core/prefpane/MacFUSEPref.m
- I've attached an untested patch [fusermount-c.diff] which seems to
more or less compile against libfuse that should provide a sample log.
It doesn't handle the icon bit, that's moderately painful as iirc fuse
is more or less async which means you shouldn't try to read the icon
from the mount command. And yes, this is vulnerable to HOME being
abused and to races between multiple instances trying to log to the
same file (and to mount points having tabs, newlines, or null bytes in
them...) it also doesn't usefully handle the fact that each user has
their own $HOME. It's merely an example of something that someone
could work from to make the panel more useful.

The attached patches may be used in any way people feel like using
them. I haven't spent the time to make them in the style of
macfuse/libfuse, as this is really far afield from my normal area and
I just want to provide something for positive discussion more than for
immediate inclusion. (I haven't built with these things and really
have other things to worry about, like a failing native-zfs file
system and a blanking screen.) There's obviously no warranty involved
and I haven't actually tested the Cocoa changes.

I hope someone finds this is helpful,
timel...@gmail

-- 
You received this message because you are subscribed to the Google Groups 
"MacFUSE" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/macfuse?hl=en.

Attachment: macfuse-core-10-5-libfuse-fuse-2-7-3-util-fusermount-c.diff
Description: Binary data

Attachment: macfuse-core-prefpane-English-lproj-About-html.diff
Description: Binary data

Attachment: macfuse-core-prefpane-English-lproj-MacFUSEPref-xib.diff
Description: Binary data

Attachment: macfuse-core-prefpane-MacFUSEPref-m.diff
Description: Binary data

Reply via email to