Coda File System

Coda release 6.0.4

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Wed, 17 Mar 2004 16:00:26 -0500
New release,

I'm still building it on a RedHat 9 box, but the sources and prebuilt
Debian packages are already available.

Pretty much all packages have been updated, LWP and RVM are mostly build
fixes, but RPC2 and the main Coda packages have a bunch of bugfixes and
several new features.

RPC2
- Merged IPv6 support (Rod Van Meter)
- Extra boundary checking on incoming MultiRPC packets.

Coda
- Hostname/realm resolution fixes.
- Persistently store rootvolume names for disconnected startup.
- Allow realm roots to disappear when there are no more cached objects
  (can be sped up with 'cfs fl /coda/my.realm')
- Prevent crash when setting ACLs on fake objects (Ivan Popov)
- A client now checks the lookaside cache even when disconnected.
- IPv6 support is done for most 'minor' clients and daemons (venus and
  codasrv are not ready yet).
- volutil can use the user's Coda token to authenticate with the servers.
- Better anonymous connection handling and slight speedup in venus cache
  replacement.

Because of the multirpc boundary checks, the RPC2 ABI has changed.
Although you could probably build an older Coda release against
rpc2-1.21, it will break. Similarily you shouldn't build Coda-6.0.4
against an older librpc2.

If the RH5.1 or RH9 packages don't work or you want to build your own
binary rpms here's the script that should do the job,

    #!/bin/sh
    set -e
    SRPM_SRC=http://ftp.coda.cs.cmu.edu/pub/coda/linux/RedHat-SRPMS
    DEST_DIR=/usr/src/redhat/RPMS/i386
    wget ${SRPM_SRC}/lwp-1.11-1.src.rpm
    wget ${SRPM_SRC}/rpc2-1.21-1.src.rpm
    wget ${SRPM_SRC}/rvm-1.9-1.src.rpm
    wget ${SRPM_SRC}/coda-6.0.4-1.src.rpm

    rpmbuild --rebuild lwp-1.11-1.src.rpm
    # lwp needs to be installed before building anything else
    rpm -Uhv ${DEST_DIR}/lwp-1.11-1.i386.rpm
    rpm -Uhv ${DEST_DIR}/lwp-devel-1.11-1.i386.rpm

    rpmbuild --rebuild rvm-1.9-1.src.rpm
    rpmbuild --rebuild rpc2-1.21-1.src.rpm
    # rvm and rpc2 need to be installed before continuing
    rpm -Uhv ${DEST_DIR}/rvm-1.9-1.i386.rpm
    rpm -Uhv ${DEST_DIR}/rvm-devel-1.9-1.i386.rpm
    rpm -Uhv ${DEST_DIR}/rvm-tools-1.9-1.i386.rpm
    rpm -Uhv ${DEST_DIR}/rpc2-devel-1.21-1.i386.rpm
    rpm -Uhv ${DEST_DIR}/rpc2-1.21-1.i386.rpm
    rpmbuild --rebuild coda-6.0.4-1.src.rpm

There is a conflict on rpc2 if the build machine is already running an
older version of Coda. It seems like it kind of works if you install
only the rpc2-devel package, the built version of Coda then has the new
librpc2 statically linked. After that you can upgrade to the new
coda-*-6.0.4 finish the install of rpc2-1.21 and then rebuild the
coda rpms again to get them linked dynamically.

    # assuming we exited the previous 'script' when installing rpc2-1.21 failed
    rpmbuild --rebuild coda-6.0.4-1.src.rpm
    # in the following XXX would be replaced with client or server
    rpm -Uhv ${DEST_DIR}/coda-XXX-6.0.4-1.i386.rpm
    rpm -Uhv ${DEST_DIR}/rpc2-1.21-1.i386.rpm
    rpmbuild --rebuild coda-6.0.4-1.src.rpm
    rpm -Uhv ${DEST_DIR}/coda-XXX-6.0.4-1.i386.rpm # XXX = client or server

It is ofcourse a lot faster to simply shut everything down, force the
installation of rpc2 and build the Coda binaries only once.

The other thing I bumped into was a weird dependency error. When trying
to install there was an error about missing libcrypto.so.0.9.6, which
was already installed as part of the openssl096-0.9.6-15.i386.rpm, and
since I just built on the same machine we clearly just linked against
it. But the openssl package doesn't seem to realize that it is providing
that library. Adding a --nodeps to the rpm install line fixed it for me.

Jan
Received on 2004-03-17 16:07:17