Re: arla on FreeBSD 6 or 7?
Robert Watson <[email protected]>
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
On Sat, 19 Jan 2008, Alec Kloss wrote: > I have, for everyone's consideration, FreeBSD ports for a recent arla > snapshot and OpenAFS 1.5.30. The arla client appears to work well on > FreeBSD 6.3-PRERELEASE. The The OpenAFS port does not include the client, > just the server and the client tools, which I tend to prefer over the arla > tools because they're more complete. I install most of arla into > /usr/local/arla, and most of OpenAFS into /usr/local, so they don't stomp > all over each other. You want/need heimdal 1.0.1 and a readline. There are > also FreeBSD 6.3-PRE packages for everything. > > http://setfilepointer.com/pub/afs/FreeBSD/ > > /afs/setfilepointer.com/packages/afs/FreeBSD/ > > Comments welcome. Testers on 6.2 and 5.5 would probably be a good thing > too. I ran into a few difficulties with this on 8-CURRENT (not surprisingly), in approximately this order: - The Coda and Arla liblwp's have the same name but different functionality. I wonder if Arla's liblwp could be installed as liblwp_arla? Uninstalling Coda did the trick, but it would be nice to be able to have both on the same machine. - configure seemed to get fairly confused about picking the right variants of various VFS-related calls, such as vget(), and often enabled several #defines rather than just one. For example, I found that HAVE_THREE_ARGUMENTS_VFS_BUSY and HAVE_FOUR_ARGUMENTS_VFS_BUSY were both defined. - I ran into quite a few unprotected ifdefs, such as "#if __NetBSD_version__ > " which need to be in the form "#if defined (__NetBSD__) && ...". - VFS has changed some more -- VOP_LOCK() now lacks a thread pointer, VOP_OPEN() accepts a file * rather than a file index as the last argument, so typically it's now NULL rather than -1. And other things along these lines. My autoconf/automake is fairly weak, and it's already the case that the ifdefs in nnpfs as getty pretty hairy in an attempt to capture all the *BSD's: #if defined(__APPLE__) #define nnpfs_vfs_busy(mp, flags, lock, proc) 0 #define nnpfs_vfs_unbusy(mp, proc) #elif defined(HAVE_THREE_ARGUMENT_VFS_BUSY) #define nnpfs_vfs_busy(mp, flags, lock, proc) vfs_busy((mp), (flags), (lock)) #define nnpfs_vfs_unbusy(mp, proc) vfs_unbusy((mp)) #elif defined(HAVE_FOUR_ARGUMENT_VFS_BUSY) #define nnpfs_vfs_busy(mp, flags, lock, proc) vfs_busy((mp), (flags), (lock), (proc)) #define nnpfs_vfs_unbusy(mp, proc) vfs_unbusy((mp), (proc)) #else #define nnpfs_vfs_busy(mp, flags, lock, proc) vfs_busy((mp), (flags)) #define nnpfs_vfs_unbusy(mp, proc) vfs_unbusy((mp)) #endif In continue to wonder if the right answer for FreeBSD isn't just to unifdef/configure the kernel module and import it into CVS. This would allow nnpfs to get its parts updated as FreeBSD's VFS evolves, which it will continue to do for the forseeable future. To do this, we need an nnpfs that builds and mostly works on 8-CURRENT as a starting point. If someone is willing to do this work, perhaps by simply forward-porting Arla to 8.x as it stands, and then working with me to unifdef it and get it commit-ready, I'd be happy to get it into CVS. This does mean being careful to track changes in the Arla tree for nnpfs over time in order to not let the FreeBSD kernel module fall behind, but my impression is that the FreeBSD VFS changes more than Arla's nnpfs does over time... Robert N M Watson Computer Laboratory University of Cambridge