Arla is another AFS client/server (the server part is still experimental). It's MUCH smaller than OpenAFS (1.3MB vs 12MB) and supports converting AFS tokens to/from kerberos tickets. Somehow OpenAFS just refuse to compile on my machine and I tried this one, which compiles perfectly. Perhaps they have cleaner code? ;-) I have sucessfully compiled it on my machine but don't have time to make an ebuild yet. (probably not until a few months later) If anyone is interested in making an ebuild for this, I can contribute an init script. (The README claims to have one for linux but didn't mention where. And the only one I've found is for FreeBSD only. So I wrote my own.) my /etc/init.d/arlad: #!/sbin/runscript # Copyright 2003 Clement Siu-Chung Cheung (sccheung at umich dot edu) # Distributed under the terms of the GNU General Public License v2 # available at http://www.gnu.org/copyleft/gpl.html arla_dir=${arla_dir:-/usr/arla} bin_dir=${bin_dir:-${arla_dir}/bin} etc_dir=${etc_dir:-${arla_dir}/etc} cache_dir=${cache_dir:-/var/spool/afs} depend() { need net provide afs } checkconfig() { if [ ! -f ${etc_dir}/arla.conf ]; then eerror "/etc/arla/arla.conf is missing" return 1 fi if [ ! -f ${etc_dir}/ThisCell ]; then eerror "/etc/arla/ThisCell is missing" return 1 fi if [ ! -f ${etc_dir}/CellServDB ]; then eerror "/etc/arla/CellServDB is missing" return 1 fi return 0 } start() { checkconfig || return $? ebegin "Loading Arla kernel module" insmod ${bin_dir}/nnpfs.o eend 0 sleep 1 if [ ! -r /dev/nnpfs0 ]; then einfo "Creating device..." mknod /dev/nnpfs0 c 103 0 fi chmod 600 /dev/nnpfs0 if [ ! -e ${cache_dir} ] ; then einfo "Creating cache directory..." mkdir ${cache_dir} chmod 700 ${cache_dir} chown root ${cache_dir} fi ebegin "Starting arlad" start-stop-daemon --start --quiet --pidfile /var/run/arlad.pid \ --startas ${arla_dir}/libexec/arlad eend $? "Failed to start arlad" if [ ! -r /afs ] ; then einfo "Creating /afs..." mkdir /afs fi sleep 3 ebegin "Mounting AFS" mount -t nnpfs /dev/nnpfs0 /afs eend $? "Failed to mount AFS" } stop() { ebegin "Unmounting AFS" umount /afs eend 0 ebegin "Stopping arlad" start-stop-daemon --stop --quiet --pidfile /var/run/arlad.pid if [ -r /var/run/arlad.pid ]; then eend $? "Failed to stop arlad with PID="`cat /var/run/arlad.pid > /dev/null 2>&1` else eerror "Can't find PID file for arlad." eerror "arlad probably has not been started successfully or somehow died already!" eend 0 fi ebegin "Unoading Arla kernel module" rmmod nnpfs eend $? "Failed to unload Arla kernel module" } my /etc/arla/arla.conf: NOTE: I added "dynroot yes" to generate /afs from CellServDB instead of actually querying the cells. This avoids locking up the system while waiting for response from every single AFS server in the world when you do an "ls /afs". (If any single AFS server is slow, you'll be waiting for that server forever and won't be able to get any listing from ls until it finally respond.) Just do an "ls /afs" in OpenAFS and you'll see what I'm talking about. (You might want to just hit Ctrl-C unless you really want to know how long it takes...)To make doing "ls /afs" with colors turned on or "ls -F /afs" or browsing AFS with file managers like konqueror actually feasible, you could add a DynRootDB to /etc/arla listing only the cells you want to see. But that way users won't be able to access any cells not listed there. (Might not be a good idea on a multi-user site) # # Arlad config file # # $Id: arla.conf.in,v 1.2 2002/12/19 13:45:25 lha Exp $ # # The upper limit of (arlad) vnodes (think files and directories) # (high-water mark) # high_vnodes 30000 # # The number of used vnodes we try to have # (low-water mark) # low_vnodes 3000 # # The upper limit of bytes in the cache # (high-water mark) # high_bytes 1400M # # The number of bytes we try to use # (low-water mark) # low_bytes 700M # # The number of credentials in arla, both unauthentic, # and authentic (like Kerberos V4 creds) # numcreds 100 # # The maximum connections arla will have to all servers # numconns 100 # # The number of volumes stored in cache. # numvols 100 # # Dynamic root, generates your /afs directory from CellServDB or # DynRootDB. Useful when you don't want to use your cell's root.afs. # #dynroot [yes|true|no|false] dynroot yes # # The sysname is possible to specify in the configuration file. Its # overridden by the command like argument --sysname= # #sysname nbsd_16pre # # Rxkad encryption level, this sets the minimum encryption level for # rxkad. # #rxkad-level [clear|auth|crypt] # # Fetch block size, this is the amount of the data that the # cachemanager will fetch more then the user requested. It used since # most new fileservers will have their peek fetch-rate larger then 64K # that is the default fetch block size. # #fetch_block 4M # # # The End. my /etc/arla/DynRootDB: engin.umich.edu umich.edu That would only list those 2 cells in /afs. You might want to ask the user to modify this themselves in the ebuild. The compiling is strict-forward. Just do the usual ./configure [your-options] and make && make install. Note that this ebuild should depends on kth-krb4 or heimdal if you want Kerberos 5. Getting it work with MIT Kerberos appears to be non-trivial and I've already given it up.
Created attachment 11557 [details] Updated /etc/init.d/arlad The kernel module seems to be always busy. This file makes /etc/init.d/arlad restart actually work.
Created attachment 11614 [details] Small typo in last update. Fixes can't restart problem for real.
Created attachment 11615 [details] Still have typos. This should be the last one (hopefully)
Alright. Looks like there actually IS an rc file for linux. Just that I can't find it before. After make install, they put it in /usr/arla/etc/arla
No ebuild here, really no idea what are we supposed to with an initscript, sorry. Closing WONTFIX.