(Illustration by Gaich Muramatsu)
I am VERY MUCH interested in having the CODA file-system supported on Mac OS X! As a resilient, secure, shared, WAN, caching file-system, CODA seems the perfect fit for my use case (cluster computing for bioinformatics). Other shared file-systems that are available to the platform (NFS, SMB, AFP, AFS) are missing one or more of these key features. I feel CODA would be additionally and particularly useful to mobile clients (laptops, there are lots of Mac OS X laptops out there). In addition to a straight port of CODA to Mac OS X, I would like to see support for Open Directory and Rendezvous added to it. Imagine the utility of having a cached copy of your HOME directory follow you around with "Zero Configuration", and yet take advantage of whatever necessary authentication mechanism? Sort of like my own personal (or institutional supported) iDisk. Each Christmas vacation, I make considerable effort to port CODA to Mac OS X. Compiling the binaries and their dependencies on Mac OS X is pretty straight forward (gets easier with each release), but I've never made it all the way through porting the kernel module (close a couple of times). Below are my notes from my most recent attempt on Mac OS X 10.3.? using the latest CODA and latest dependencies. I have kernel extension (module) code that compiles without errors and provides the required interface using the FreeBSD CODA kernel module and the Mac OS X AFS kernel extension as a templates for the work. Glad to share this with anyone that might be interested. Notes ===== http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.3.tar.gz # coda requires lwp, rpc2, and rvm # rpc2 requires readline # build and install readline wget ftp://ftp.gnu.org/gnu/readline/readline-4.3.tar.gz tar zxvf readline-4.3.tar.gz cd readline-4.3 ./configure --disable-shared make make check sudo make install # build and install lwp wget http://www.coda.cs.cmu.edu/pub/coda/src/lwp-1.10.tar.gz tar zxvf lwp-1.10.tar.gz cd lwp-1.10 # remove traditional-cpp from CPPFLAGS within configure # like: case "$build" in powerpc-apple-darwin*) CPPFLAGS="$CPPFLAGS" ;; esac ./configure make make check sudo make install # build and install rvm wget http://www.coda.cs.cmu.edu/pub/coda/src/rvm-1.8.tar.gz tar zxvf rvm-1.8.tar.gz cd rvm-1.8 # remove traditional-cpp from CPPFLAGS within configure # like: case "$build" in powerpc-apple-darwin*) CPPFLAGS="$CPPFLAGS" ;; esac ./configure make make check sudo make install # build and install rpc2 wget http://www.coda.cs.cmu.edu/pub/coda/src/rpc2-1.20.tar.gz tar zxvf rpc2-1.20.tar.gz cd rpc2-1.20 # remove traditional-cpp from CPPFLAGS within configure # like: case "$build" in powerpc-apple-darwin*) CPPFLAGS="$CPPFLAGS" ;; esac ./configure # add to config.h # define socklen_t unsigned int make make check sudo make install # build and install coda wget http://www.coda.cs.cmu.edu/pub/coda/src/coda-6.0.3.tar.gz tar zxvf coda-6.0.3.tar.gz cd coda-6.0.3 cp -r /usr/share/libtool/config.* configs ./configure --with-rvm=/usr/local --with-lwp=/usr/local --with-rpc2=/usr/local #define T_SRV 33 in ./lib-src/base/coda_getaddrinfo.c or config.h make make check # modify tools/our-install with if [ $SYS = NetBSD -o $SYS = FreeBSD -o $SYS = OpenBSD -o $SYS = Darwin ] ; then sudo make client-install sudo make server-install sudo mknod /dev/cfs0 c 93 0 # freebsd coda kernel source % setenv CVSROOT :pserver:anoncvs_at_anoncvs.FreeBSD.org:/home/ncvs % cvs login At the prompt, enter the password ``anoncvs''. % cvs co sys/coda % cvs release -d sys/coda % cvs logout http://www.coda.cs.cmu.edu/pub/coda/freebsd/freebsd-current-realms.patch patch -p0 < freebsd-current-realms.patch rm -rf /dev/cfs0 mknod /dev/cfs0 c 93 0 chmod 666 /dev/cfs0 tar zxvf coda.tar.gz -C /usr/local chown -R root:wheel /usr/local sudo venus-setup testserver.coda.cs.cmu.edu 20000 output>> Creating /usr/coda, mode 755 Creating /usr/coda/spool, mode 755 Creating /usr/coda/venus.cache, mode 700 Creating /usr/coda/etc, mode 700 Creating //coda, mode 755 /usr/local/sbin/venus-setup: line 153: ./MAKEDEV: No such file or directory /etc/services already has new services registered! Good. /etc/services ready for Coda sudo venus& > Greetings from Apple Computer! > > I wanted to informally poll this group in an attempt to gauge the > amount of > interest in Coda on OS X and perhaps better understand what potential > "resources" are available in the open source community to help with any > porting effort. > > While this e-mail should not be interpreted as a commitment by Apple > to port, > adopt, and otherwise support Coda on OS X, there is potential leverage > in the > filesystem mobility space that may require more investigation. > > Regards, > > Chris -- William Van Etten, PhD email: bill_at_bioteam.net office/FAX: 978-255-1506 mobile: 617-921-3358 iChat: williamvanettenphd_at_mac.com