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