Name: coda Version: 6.9.5 Release: 3%{?dist} Summary: Coda distributed file system Group: System Environment/Daemons License: GPLv2 URL: http://www.coda.cs.cmu.edu/ Source0: ftp://ftp.coda.cs.cmu.edu/pub/coda/src/%{name}-%{version}.tar.gz Source1: coda-client.init Source2: codasrv.init Source3: auth2.init Source4: update.init Patch0: coda-6.9.4-rc2-no-default-krb.patch Patch1: coda-6.9.5-venus-coda-client-convert.patch Patch2: coda-6.9.5-vcodacon-configure.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: lwp-devel BuildRequires: rpc2-devel BuildRequires: rvm-devel BuildRequires: rvm-tools compat-readline5-devel BuildRequires: fltk-devel fltk-fluid flex bison python perl krb5-devel BuildRequires: e2fsprogs-devel Requires: krb5-libs compat-readline5 # For /etc/rc.d/init.d so that configure can detect we have RH style init BuildRequires: chkconfig %description Source package for the Coda file system. Three packages are provided by this rpm: the client and server and the backup components. Separately you must install a kernel module, or have a Coda enabled kernel, and you should get the Coda documentation package. %package client Summary: Client for the Coda distributed file system Group: System Environment/Daemons Requires(post): chkconfig Requires(preun): chkconfig %description client This package contains the main client program, the cachemanager Venus. Also included are the binaries for the cfs, utilities for logging, ACL manipulation etc, the hoarding tools for use with laptops and repair tools for fixing conflicts. Finally there is the cmon and codacon console utilities to monitor Coda's activities. You need a Coda kernel-module for your kernel version, or Coda in your kernel, to have a complete coda client. %package server Summary: Server for the Coda distributed file system Group: System Environment/Daemons Requires: rvm-tools Requires(post): chkconfig Requires(preun): chkconfig %description server This package contains the fileserver for the Coda file system, as well as the volume utilities. %package backup Summary: Backup coordinator for the Coda distributed file system Group: System Environment/Daemons %description backup This package contains the backup software for the Coda file system, as well as the volume utilities. %package gcodacon Summary: Graphical tray monitor for the Coda distributed file system Group: System Environment/Daemons Requires: coda-client = %{version}-%{release} Requires: pygtk2 notify-python Obsoletes: coda-client < 6.9.5-3 %description gcodacon This package contains gcodacon, a graphical tray monitor for the Coda distributed file system client. %package vcodacon Summary: Graphical console for the Coda distributed file system Group: System Environment/Daemons Requires: coda-client = %{version}-%{release} %description vcodacon This package contains vcodacon, a graphical console for the Coda file system client. %prep %setup -q # http://www.coda.cs.cmu.edu/trac/ticket/1651 %patch0 -p1 # convert venus-setup to coda-client-setup %patch1 -p1 # fix building vcodacon (already fixed differently upstream in git) %patch2 -p1 %build # note: remove the -I and -l here when upstream releases fix for krb5 building export CFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/et -I%{_includedir}/readline5" export CXXFLAGS="$RPM_OPT_FLAGS -I%{_includedir}/et -I%{_includedir}/readline5" export LDFLAGS="-L%{_libdir}/readline5" export LIBS="-lkrb5 -lcom_err -lstdc++" %configure --with-vcodacon --with-krb5 make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" # init scripts mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/coda-client install -p -m 755 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/codasrv install -p -m 755 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/auth2 install -p -m 755 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/update # rename venus-setup to coda-client-setup mv $RPM_BUILD_ROOT%{_sbindir}/venus-setup $RPM_BUILD_ROOT%{_sbindir}/coda-client-setup mv $RPM_BUILD_ROOT%{_mandir}/man8/venus-setup.8 $RPM_BUILD_ROOT%{_mandir}/man8/coda-client-setup.8 # coda mount point for the client mkdir -p $RPM_BUILD_ROOT/coda touch $RPM_BUILD_ROOT/coda/NOT_REALLY_CODA # coda cache/log dirs for the client mkdir -p $RPM_BUILD_ROOT/%{_var}/lib/coda mkdir -p $RPM_BUILD_ROOT/%{_var}/lib/coda/cache mkdir -p $RPM_BUILD_ROOT/%{_var}/lib/coda/spool mkdir -p $RPM_BUILD_ROOT/%{_var}/log/coda # for %%ghost touch $RPM_BUILD_ROOT%{_sysconfdir}/coda/{venus,server}.conf #remove parser, it conflicts with grib_api rm -f $RPM_BUILD_ROOT%{_bindir}/parser %clean rm -rf $RPM_BUILD_ROOT %post client # not pretty, but we cannot simply put /coda in our files-list because then # rpm will fail when updating coda-client when coda is mounted if [ ! -e /coda ]; then mkdir /coda touch /coda/NOT_REALLY_CODA fi /sbin/chkconfig --add coda-client %preun client if [ $1 = 0 ]; then /sbin/chkconfig --del coda-client fi %post server /sbin/chkconfig --add update /sbin/chkconfig --add auth2 /sbin/chkconfig --add codasrv %preun server if [ $1 = 0 ]; then /sbin/chkconfig --del update /sbin/chkconfig --del auth2 /sbin/chkconfig --del codasrv fi %files client %defattr(-,root,root,-) %doc AUTHORS ChangeLog LICENSE NEWS %dir %{_sysconfdir}/coda %ghost %config(noreplace) %{_sysconfdir}/coda/venus.conf %config(noreplace) %{_sysconfdir}/coda/venus.conf.ex %config(noreplace) %{_sysconfdir}/coda/realms %{_sysconfdir}/rc.d/init.d/coda-client %{_sbindir}/asrlauncher %{_sbindir}/codaconfedit %{_sbindir}/venus %{_sbindir}/coda-client-setup %{_sbindir}/volmunge %{_sbindir}/vutil %{_bindir}/au %{_bindir}/cfs %{_bindir}/clog %{_bindir}/cmon %{_bindir}/codacon %{_bindir}/cpasswd %{_bindir}/ctokens %{_bindir}/cunlog %{_bindir}/filerepair %{_bindir}/hoard %{_bindir}/mkcodabf %{_bindir}/mklka %{_bindir}/removeinc %{_bindir}/repair %{_bindir}/coda_replay %{_bindir}/spy %{_bindir}/xaskuser %{_bindir}/xfrepair %{_mandir}/man1/au.1.gz %{_mandir}/man1/cfs.1.gz %{_mandir}/man1/clog.1.gz %{_mandir}/man1/cmon.1.gz %{_mandir}/man1/coda_replay.1.gz %{_mandir}/man1/cpasswd.1.gz %{_mandir}/man1/ctokens.1.gz %{_mandir}/man1/cunlog.1.gz %{_mandir}/man1/hoard.1.gz %{_mandir}/man1/mkcodabf.1.gz %{_mandir}/man1/repair.1.gz %{_mandir}/man1/spy.1.gz %{_mandir}/man8/venus.8.gz %{_mandir}/man8/coda-client-setup.8.gz %{_mandir}/man8/volmunge.8.gz %{_mandir}/man8/vutil.8.gz %ghost %dir /coda %ghost /coda/NOT_REALLY_CODA %dir %{_var}/lib/coda %dir %{_var}/lib/coda/cache %dir %{_var}/lib/coda/spool %dir %{_var}/log/coda %files server %defattr(-,root,root,-) %doc AUTHORS ChangeLog LICENSE NEWS %dir %{_sysconfdir}/coda %ghost %config(noreplace) %{_sysconfdir}/coda/server.conf %config(noreplace) %{_sysconfdir}/coda/server.conf.ex %{_sysconfdir}/rc.d/init.d/codasrv %{_sysconfdir}/rc.d/init.d/auth2 %{_sysconfdir}/rc.d/init.d/update %{_sbindir}/auth2 %{_sbindir}/bldvldb.sh %{_sbindir}/coda-server-logrotate %{_sbindir}/codaconfedit %{_sbindir}/codadump2tar %{_sbindir}/codasrv %{_sbindir}/codastart %{_sbindir}/createvol_rep %{_sbindir}/initpw %{_sbindir}/inoder %{_sbindir}/norton %{_sbindir}/norton-reinit %{_sbindir}/parserecdump %{_sbindir}/partial-reinit.sh %{_sbindir}/pdbtool %{_sbindir}/printvrdb %{_sbindir}/purgevol_rep %{_sbindir}/startserver %{_sbindir}/tokentool %{_sbindir}/updatesrv %{_sbindir}/updateclnt %{_sbindir}/updatefetch %{_sbindir}/vice-killvolumes %{_sbindir}/vice-setup %{_sbindir}/vice-setup-rvm %{_sbindir}/vice-setup-srvdir %{_sbindir}/vice-setup-user %{_sbindir}/vice-setup-scm %{_sbindir}/volutil %{_bindir}/getvolinfo %{_bindir}/reinit %{_bindir}/rpc2ping %{_bindir}/rvmsizer %{_bindir}/smon2 %{_mandir}/man5/maxgroupid.5.gz %{_mandir}/man5/passwd.coda.5.gz %{_mandir}/man5/servers.5.gz %{_mandir}/man5/vicetab.5.gz %{_mandir}/man5/volumelist.5.gz %{_mandir}/man5/vrdb.5.gz %{_mandir}/man8/auth2.8.gz %{_mandir}/man8/bldvldb.sh.8.gz %{_mandir}/man8/codasrv.8.gz %{_mandir}/man8/createvol_rep.8.gz %{_mandir}/man8/initpw.8.gz %{_mandir}/man8/norton.8.gz %{_mandir}/man8/pdbtool.8.gz %{_mandir}/man8/purgevol_rep.8.gz %{_mandir}/man8/startserver.8.gz %{_mandir}/man8/updateclnt.8.gz %{_mandir}/man8/updatesrv.8.gz %{_mandir}/man8/vice-setup.8.gz %{_mandir}/man8/volutil.8.gz %files backup %defattr(-,root,root,-) %{_sbindir}/auth2 %{_sbindir}/backup %{_sbindir}/backup.sh %{_sbindir}/merge %{_sbindir}/readdump %{_sbindir}/tape.pl %{_sbindir}/updateclnt %{_sbindir}/updatefetch %{_sbindir}/volutil %{_mandir}/man5/backuplogs.5.gz %{_mandir}/man5/dumpfile.5.gz %{_mandir}/man5/dumplist.5.gz %{_mandir}/man8/backup.8.gz %{_mandir}/man8/merge.8.gz %{_mandir}/man8/readdump.8.gz %files gcodacon %defattr(-,root,root,-) %{_bindir}/gcodacon %files vcodacon %defattr(-,root,root,-) %{_bindir}/vcodacon %changelog * Wed May 19 2010 Adam Goode <adam@spicenitz.org> - 6.9.5-3 - Split out gcodacon - Macroize /usr stuff * Tue May 18 2010 Adam Goode <adam@spicenitz.org> - 6.9.5-2 - Relax the build requires versions for the coda libraries * Tue May 18 2010 Adam Goode <adam@spicenitz.org> - 6.9.5-1 - Remove many patches merged upstream - New upstream release + When writing a checkpoint file of the reintegration log took longer than the checkpoint interval, we would immediately start writing out a new checkpoint, looping indefinitly. (Paolo Casanova) + Checkpointing failed when the reintegration log contained an empty file. + Truncate cache file when lookaside lookup fails to avoid the following fetch from assuming we already successfully fetched some of the data. + Make sure we wake up blocked threads when a fetch fails. + Only close the shadow file descriptor during reintegration if we actually opened it. + Return permission error when a user tries to rmdir a mountpoint. + Do not flush kernel caches whenever we check if a file is in use. + gcodacon improvements, notification rate limiting and window placement. (Benjamin Gilbert) + Reduce server->client RPC2 timeout from 60 to 30 seconds, reduces the time a client is blocked while callbacks are broken. + Introduce stricter locking on the server->client callback connections. + Make sure clients cannot indefinitely keep a callback break RPC busy preventing it from completing. + Write a stack backtrace to the log when an assertion fails. + Don't create /etc/modules.conf on newer Linux kernels (Adam Goode) * Fri Dec 04 2009 Neil Horman <nhorman@redhat.com> - 6.9.4-9 - Convert venus-setup to coda-client-setup (bz 544096) * Thu Sep 17 2009 Adam Goode <adam@spicenitz.org> - 6.9.4-8 - Patch venus-setup.in to remove unnecessary modules.conf stuff * Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.9.4-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Thu Jul 23 2009 Neil Horman <nhorman@redhat.com> - 6.9.4-6 - Fix misuse of depricated udevsettle * Mon Jul 20 2009 Neil Horman <nhorman@redhat.com> - 6.9.4-5 - Fix some sname stack overflows * Mon Jul 20 2009 Neil Horman <nhorman@redhat.com> - 6.9.4-4 - Further changes to support compat-readline5 (bz 511305) * Fri Jul 17 2009 Neil Horman <nhorman@redhat.com> - 6.9.4-3 - Change spec to require compat-readline5 (bz 511305) * Tue Mar 31 2009 Neil Horman <nhorman@redhat.com> - 6.9.4-2 - Remove parser from coda-client, due to name conflict (bz 492953) * Fri Feb 27 2009 Adam Goode <adam@spicenitz.org> - 6.9.4-1 - New upstream release + Avoid possible crashes and/or data loss when volumes are removed from and re-added to the client cache. + Add configuration setting (detect_reintegration_retry) for Coda clients running in a VMM which prevents dropping reintegrated operations when the virtual machine is reset to an earlier snapshot. + Do not assert on various non-fatal conditions (failing chown/chmod) that may arise when for instance the client cache is stored on a vfat formatted file system. + During backups, avoid unlocking locks that may have been taken by another thread. + Allow changing of the ctime/mtime of symlinks. + Avoid a server deadlock by correcting lock ordering between ViceFetch, ViceGetAttr and ViceValidataAttrs (problem identified and tracked down with lots of help from Rune). + Improve tar support and add cpio archive formats for modification log checkpoints. + Do not invoke server resolution on a single available replica. + Add new incremental dump format that maintains full path information when converting the resulting volume dump to a tar archive. - Remove -D_GNU_SOURCE - Drop sudo patch (upstream) - Drop SIGTERM patch (upstream) * Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.9.4-0.4.rc2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Sun Sep 14 2008 Adam Goode <adam@spicenitz.org> - 6.9.4-0.3.rc2 - Do not change the default behavior of clog when building with krb5 (rh 462179) * Tue Sep 09 2008 Neil Horman <nhorman@redhat.com> 6.9.4-0.2.rc2 - Enabling krb5 support (bz 461041) * Thu May 29 2008 Hans de Goede <j.w.r.degoede@hhs.nl> 6.9.4-0.1.rc2 - Update to 6.9.4~rc2 (bz 448749) * Tue May 20 2008 Hans de Goede <j.w.r.degoede@hhs.nl> 6.9.3-2 - Make coda-client package put everything in FHS locations like Debian does, rename coda-client initscript / service from venus to coda-client (rh 446653) * Mon May 12 2008 Hans de Goede <j.w.r.degoede@hhs.nl> 6.9.3-1 - Initial Fedora package