[OpenAFS-port-darwin] Patches to make OpenAFS on Mac OS X more user-friendly
Mon, 13 Jan 2003 10:42:38 -0800
I finally got a chance to clean up a few patches to OpenAFS that we've
been using here at Stanford to make AFS on Mac OS X more user-friendly
and similar to our (AppleShare-based) Mac OS 9 and Windows clients.
Hopefully others will find them useful as well:
The patches are against OpenAFS 1.2.7 and are available from
<http://rescomp.stanford.edu/~akosut/macosx/openafs/>. I haven't
tested with 1.2.8, but they should apply cleanly and work with a minor
change to afsd.patch (s/28/29).
Conservatively fakes the mode bits on files and directories, so
that the Finder and other apps using the Carbon and Cocoa
libraries don't try to restrict access based on them. This means
that all AFS files can be easily accessed from the Finder without
needing to change uids or taking any other extraordinary measures.
Allows AFS to be mounted multiple times, each mountpoint with its
own root volume. This allows usage similar to the Windows client,
e.g., mounting a drive that contains only the user's home
directory. Our users find this much easier to work with than
having to navigate the entire AFS tree in the Finder or open/save
I have also included mount_afs.tar.gz, which provides a
"mount_afs" command that can be used to mount a volume and
register it with the DiskArbitration system so that it shows up in
the Finder immediately and can be ejected correctly by the user.
Note that this patch also makes it so that /afs (mounted by afsd)
will not unmount unless MNT_FORCE is given. This prevents the
user from accidentally ejecting /afs in the Finder, and also works
around a DiskArb bug in Mac OS X (maybe fixed in 10.2?) where
autodiskmount would sometimes unmount /afs when logging out, even
though it's marked as non-ejectable.
This patch has afsd register /afs with the DiskArbitration system
when mounting it. This means that the root afs volume shows up in
the Finder immediately, and prevents the Finder from getting
confused by additional AFS volumes later on (i.e., if you use
mount.patch, you need this one too).
Also adds a "-nomount" option to afsd, which prevents afsd from
mounting /afs. We use this by default on our Mac OS X client, so
that AFS doesn't show up in the interface at all unless the user
explicitly asks for an AFS volume to be mounted. This is
especially handy for portable or remote users who don't always
have a network connection, since there isn't an AFS filesystem
around to hang the Finder if the AFS servers can't be contacted
(the cache manager may still hang, but since there are no AFS
volumes mounted, the rest of the OS doesn't notice).
The standard OpenAFS SystemStarter (rc) script uses grep, which
isn't part of the base Mac OS X install (it's in the BSD package).
This patch replaces the use of grep with perl, which is always
We've been using various versions of these patches here at Stanford
for the better part of the year, and they seem to work pretty well.
Alexei Kosut <email@example.com> <http://rescomp.stanford.edu/~akosut/>