# This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # openafs # openafs/Makefile # openafs/README # openafs/distinfo # openafs/files # openafs/files/patch-src_afs_FBSD_osi_vm.c # openafs/files/patch-src_afs_FBSD_osi_vnodeops.c # openafs/files/patch-src_comerr_et_lex.lex.l # openafs/pkg-descr # openafs/pkg-plist # echo c - openafs mkdir -p openafs > /dev/null 2>&1 echo x - openafs/Makefile sed 's/^X//' >openafs/Makefile << 'cac7ccf84cc7458cb89445ad3dc2caa6' X# New ports collection makefile for: openafs X# Date created: 2008-12-06 X# Whom: Boris Samorodov X# Based on: port by Alec Kloss X# X# $FreeBSD$ X# X XPORTNAME= openafs XPORTVERSION= 1.5.75 XCATEGORIES= net kld XMASTER_SITES= http://dl.central.org/dl/openafs/openafs/${PORTVERSION}/ \ X http://dl.openafs.org/dl/openafs/${PORTVERSION}/ X#PKGNAMESUFFIX= -server X XMAINTAINER= kaduk@mit.edu XCOMMENT= AFS implementation from openafs.org X XUSE_LDCONFIG= yes XPATCH_STRIP= -p1 X XDISTVERSIONSUFFIX= -src XUSE_BZIP2= yes XHAS_CONFIGURE= yes X XONLY_FOR_ARCHS= i386 amd64 X X.include X X.if ${OSVERSION} < 800000 XIGNORE= supports FreeBSD 8.0 and later X.endif X XCONFIGURE_ARGS= --prefix=${PREFIX} \ X --localstatedir=/var \ X --with-afs-sysname=${AFS_SYSNAME} \ X --with-bsd-kernel-build=/usr/obj/usr/src/sys/GENERIC \ X --enable-debug \ X --enable-debug-lwp \ X --includedir=${PREFIX}/include/openafs \ X --enable-demand-attach-fs \ X --with-krb5 KRB5CFLAGS=-I/usr/include \ X KRB5LIBS='-lkrb5 -lcom_err -lcrypto -lcrypt -lasn1 -lhx509 -lroken' \ X ${CONFIGURE_TARGET} X XWRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} X XPORTDIR=$(.CURDIR) X Xpost-install: X @${MKDIR} ${PREFIX}/etc/openafs X @${CP} ${WRKSRC}/src/afsd/CellServDB ${PREFIX}/etc/openafs/CellServDB.sample X @if [ ! -e ${PREFIX}/etc/CellServDB ] ; then \ X ${CP} -p ${PREFIX}/etc/openafs/CellServDB.sample ${PREFIX}/etc/CellServDB ; \ X fi X @if [ ! -e ${PREFIX}/etc/openafs/CellServDB ] ; then \ X ${LN} -s ${PREFIX}/etc/CellServDB ${PREFIX}/etc/openafs/CellServDB ; \ X fi X @${ECHO_CMD} openafs.org > ${PREFIX}/etc/openafs/ThisCell.sample X @if [ ! -e ${PREFIX}/etc/ThisCell ] ; then \ X ${CP} -p ${PREFIX}/etc/openafs/ThisCell.sample ${PREFIX}/etc/ThisCell ; \ X fi X @if [ ! -e ${PREFIX}/etc/openafs/ThisCell ] ; then \ X ${LN} -s ${PREFIX}/etc/ThisCell ${PREFIX}/etc/openafs/ThisCell ; \ X fi X ${MV} ${PREFIX}/lib/openafs/libafs.ko /boot/modules/ X kldxref /boot/modules X X X.include cac7ccf84cc7458cb89445ad3dc2caa6 echo x - openafs/README sed 's/^X//' >openafs/README << '852e5444c6c8e72392557c14fd2aa398' XThis is a development package; this software has not been Xextensively tested. XThe usual disclaimers apply. X XThe code does not appeare to be thread-safe, there are a couple Xof deadlock conditions that are not yet resolved. X XThe filesystem-based cache code has lots of locking problems; XWITNESS won't let afsd start with that code path. (Instead, Xuse the memory-based cache.) I currently mount afs with: X# kldload libafs X# afsd -dynroot -fakestat-all -afsdb -memcache -daemons 4 XI expect that things will go fine at that stage; the problems tend Xto show up later. X XI haven't noticed any issues with the auxilliary commands (fs, bos, Xpts, vos, etc.), but nor have I done exhaustive testing. X XYou must have a kernel object tree available for the kernel Xmodule to build; the location of GENERIC is hardcoded in the XMakefile; change this as appropriate. X XAlso hardcoded is the use of heimdal from base (in fact, we Xconflict with heimdal from ports). X XYou will want to tweak the AFS configuration files; in particular, Xcreate a ${PREFIX}/etc/openafs/cacheinfo file (a single line, Xcolon-separated, with the path on which to mount AFS (the directory Xthat will be the mount point must already exist), the directory to Xput cachefiles in (also must already exist), and the size of the Xcache to use (in kB). Putting your site in ThisCell, and checking Xthat the installed CellServDB has up-to-date entries for your local Xcell are also useful. X XHave fun, and don't crash your system too much ... X X-Ben Kaduk, 13 July 2010 852e5444c6c8e72392557c14fd2aa398 echo x - openafs/distinfo sed 's/^X//' >openafs/distinfo << 'f553964b67bf34154813688046be2e9d' XMD5 (openafs-1.5.75-src.tar.bz2) = 79e39e8db88fd368a69c829695f74310 XSHA256 (openafs-1.5.75-src.tar.bz2) = 9899e6d270722e3aa773232327c6d0a9e9fca69c7fcea18db5a6d7e72ab9ef70 XSIZE (openafs-1.5.75-src.tar.bz2) = 14217818 f553964b67bf34154813688046be2e9d echo c - openafs/files mkdir -p openafs/files > /dev/null 2>&1 echo x - openafs/files/patch-src_afs_FBSD_osi_vm.c sed 's/^X//' >openafs/files/patch-src_afs_FBSD_osi_vm.c << '6ae35b1dd4660fbf9edc65c26809c2b2' Xcommit 3068f2cd3bb8e655f115bbafb8b5c6e015460ee3 XAuthor: Ben Kaduk XDate: Thu Jul 1 21:49:44 2010 -0400 X X FBSD: bandaid around vcache opens tracking X X We fail to increment vcache->opens somewhere, and thus return X EBUSY from osi_VM_FlushVCache even for unused vcache entries. X Instead of checking vcache->opens as a boolean, only return EBUSY X if it is positive. This should provide for a more useable system X while we track down the reference counting. X X Change-Id: I60db7d74ad0a4890da4cef6fb4b4a7c1a5be25e1 X Xdiff --git a/src/afs/FBSD/osi_vm.c b/src/afs/FBSD/osi_vm.c Xindex 0a813e8..27aed4f 100644 X--- a/src/afs/FBSD/osi_vm.c X+++ b/src/afs/FBSD/osi_vm.c X@@ -92,7 +92,8 @@ osi_VM_FlushVCache(struct vcache *avc, int *slept) X if (VREFCOUNT(avc) > 1) X return EBUSY; X X- if (avc->opens) X+ /* temporary band-aid for negative opens count */ X+ if (avc->opens > 0) X return EBUSY; X X /* if a lock is held, give up */ 6ae35b1dd4660fbf9edc65c26809c2b2 echo x - openafs/files/patch-src_afs_FBSD_osi_vnodeops.c sed 's/^X//' >openafs/files/patch-src_afs_FBSD_osi_vnodeops.c << 'af972e30826dfbdb408a1fbb2afe04ae' Xdiff --git a/src/afs/FBSD/osi_vnodeops.c b/src/afs/FBSD/osi_vnodeops.c X--- a/src/afs/FBSD/osi_vnodeops.c X+++ b/src/afs/FBSD/osi_vnodeops.c X@@ -232,6 +232,22 @@ X X #define DROPNAME() FREE(name, M_TEMP) X X+/* X+ * Here we define compatibility functions/macros for interfaces that X+ * have changed between different FreeBSD versions. X+ */ X+#if defined(AFS_FBSD90_ENV) X+static __inline void ma_vm_page_lock_queues(void) {}; X+static __inline void ma_vm_page_unlock_queues(void) {}; X+static __inline void ma_vm_page_lock(vm_page_t m) { vm_page_lock(m); }; X+static __inline void ma_vm_page_unlock(vm_page_t m) { vm_page_unlock(m); }; X+#else X+static __inline void ma_vm_page_lock_queues(void) { vm_page_lock_queues(); }; X+static __inline void ma_vm_page_unlock_queues(void) { vm_page_unlock_queues(); }; X+static __inline void ma_vm_page_lock(vm_page_t m) {}; X+static __inline void ma_vm_page_unlock(vm_page_t m) {}; X+#endif X+ X #if defined(AFS_FBSD80_ENV) X #define ma_vn_lock(vp, flags, p) (vn_lock(vp, flags)) X #define MA_VOP_LOCK(vp, flags, p) (VOP_LOCK(vp, flags)) X@@ -242,6 +258,14 @@ X #define MA_VOP_UNLOCK(vp, flags, p) (VOP_UNLOCK(vp, flags, p)) X #endif X X+#if defined(AFS_FBSD70_ENV) X+#define MA_PCPU_INC(c) PCPU_INC(c) X+#define MA_PCPU_ADD(c, n) PCPU_ADD(c, n) X+#else X+#define MA_PCPU_INC(c) PCPU_LAZY_INC(c) X+#define MA_PCPU_ADD(c, n) (c) += (n) X+#endif X+ X #ifdef AFS_FBSD70_ENV X #ifndef AFS_FBSD80_ENV X /* From kern_lock.c */ X@@ -761,27 +785,30 @@ X vm_page_t m = ap->a_m[ap->a_reqpage]; X X VM_OBJECT_LOCK(object); X- vm_page_lock_queues(); X+ ma_vm_page_lock_queues(); X if (m->valid != 0) { X /* handled by vm_fault now */ X /* vm_page_zero_invalid(m, TRUE); */ X for (i = 0; i < npages; ++i) { X- if (i != ap->a_reqpage) X+ if (i != ap->a_reqpage) { X+ ma_vm_page_lock(ap->a_m[i]); X vm_page_free(ap->a_m[i]); X+ ma_vm_page_unlock(ap->a_m[i]); X+ } X } X- vm_page_unlock_queues(); X+ ma_vm_page_unlock_queues(); X VM_OBJECT_UNLOCK(object); X return (0); X } X- vm_page_unlock_queues(); X+ ma_vm_page_unlock_queues(); X VM_OBJECT_UNLOCK(object); X } X bp = getpbuf(&afs_pbuf_freecnt); X X kva = (vm_offset_t) bp->b_data; X pmap_qenter(kva, ap->a_m, npages); X- cnt.v_vnodein++; X- cnt.v_vnodepgsin += npages; X+ MA_PCPU_INC(cnt.v_vnodein); X+ MA_PCPU_ADD(cnt.v_vnodepgsin, npages); X X iov.iov_base = (caddr_t) kva; X iov.iov_len = ap->a_count; X@@ -803,24 +830,25 @@ X X if (code && (uio.uio_resid == ap->a_count)) { X VM_OBJECT_LOCK(object); X- vm_page_lock_queues(); X+ ma_vm_page_lock_queues(); X for (i = 0; i < npages; ++i) { X if (i != ap->a_reqpage) X vm_page_free(ap->a_m[i]); X } X- vm_page_unlock_queues(); X+ ma_vm_page_unlock_queues(); X VM_OBJECT_UNLOCK(object); X return VM_PAGER_ERROR; X } X X size = ap->a_count - uio.uio_resid; X VM_OBJECT_LOCK(object); X- vm_page_lock_queues(); X+ ma_vm_page_lock_queues(); X for (i = 0, toff = 0; i < npages; i++, toff = nextoff) { X vm_page_t m; X nextoff = toff + PAGE_SIZE; X m = ap->a_m[i]; X X+ /* XXX not in nfsclient? */ X m->flags &= ~PG_ZERO; X X if (nextoff <= size) { X@@ -828,15 +856,22 @@ X * Read operation filled an entire page X */ X m->valid = VM_PAGE_BITS_ALL; X+#ifndef AFS_FBSD80_ENV X vm_page_undirty(m); X+#else X+ KASSERT(m->dirty == 0, ("afs_getpages: page %p is dirty", m)); X+#endif X } else if (size > toff) { X /* X * Read operation filled a partial page. X */ X m->valid = 0; X- vm_page_set_validclean(m, 0, size - toff); X- /* handled by vm_fault now */ X- /* vm_page_zero_invalid(m, TRUE); */ X+ vm_page_set_valid(m, 0, size - toff); X+#ifndef AFS_FBSD80_ENV X+ vm_page_undirty(m); X+#else X+ KASSERT(m->dirty == 0, ("afs_getpages: page %p is dirty", m)); X+#endif X } X X if (i != ap->a_reqpage) { X@@ -854,20 +889,28 @@ X */ X if (!code) { X #if defined(AFS_FBSD70_ENV) X- if (m->oflags & VPO_WANTED) X+ if (m->oflags & VPO_WANTED) { X #else X- if (m->flags & PG_WANTED) X+ if (m->flags & PG_WANTED) { X #endif X+ ma_vm_page_lock(m); X vm_page_activate(m); X- else X+ ma_vm_page_unlock(m); X+ } X+ else { X+ ma_vm_page_lock(m); X vm_page_deactivate(m); X+ ma_vm_page_unlock(m); X+ } X vm_page_wakeup(m); X } else { X+ ma_vm_page_lock(m); X vm_page_free(m); X+ ma_vm_page_unlock(m); X } X } X } X- vm_page_unlock_queues(); X+ ma_vm_page_unlock_queues(); X VM_OBJECT_UNLOCK(object); X return 0; X } X@@ -935,8 +978,8 @@ X X kva = (vm_offset_t) bp->b_data; X pmap_qenter(kva, ap->a_m, npages); X- cnt.v_vnodeout++; X- cnt.v_vnodepgsout += ap->a_count; X+ MA_PCPU_INC(cnt.v_vnodeout); X+ MA_PCPU_ADD(cnt.v_vnodepgsout, ap->a_count); X X iov.iov_base = (caddr_t) kva; X iov.iov_len = ap->a_count; af972e30826dfbdb408a1fbb2afe04ae echo x - openafs/files/patch-src_comerr_et_lex.lex.l sed 's/^X//' >openafs/files/patch-src_comerr_et_lex.lex.l << '135c6c6aa00616426929e2238f1df45c' Xdiff --git a/src/comerr/et_lex.lex.l b/src/comerr/et_lex.lex.l Xindex 70b8848..0f58105 100644 X--- a/src/comerr/et_lex.lex.l X+++ b/src/comerr/et_lex.lex.l X@@ -1,3 +1,4 @@ X+%option yylineno X PC [^\"] X AN [A-Z_a-z0-9] X %% X 135c6c6aa00616426929e2238f1df45c echo x - openafs/pkg-descr sed 's/^X//' >openafs/pkg-descr << 'f0120929d49fe07442a3c71bea99f301' XAFS is a distributed filesystem product, pioneered at Carnegie Mellon XUniversity and supported and developed as a product by Transarc Corporation X(now IBM Pittsburgh Labs). It offers a client-server architecture for Xfederated file sharing and replicated read-only content distribution, Xproviding location independence, scalability, security, and transparent Xmigration capabilities. AFS is available for a broad range of heterogeneous Xsystems including UNIX, Linux, MacOS X, and Microsoft Windows. X XIBM branched the source of the AFS product, and made a copy of the source Xavailable for community development and maintenance. They called the Xrelease OpenAFS. X XWWW: http://www.openafs.org/ X X- bsam f0120929d49fe07442a3c71bea99f301 echo x - openafs/pkg-plist sed 's/^X//' >openafs/pkg-plist << '108b360c966dd2433d569db72bad4c16' Xbin/rxgen Xbin/sys Xbin/pagsh.krb Xbin/udebug Xbin/pagsh Xbin/klog.krb Xbin/knfs Xbin/pts Xbin/klog Xbin/tokens.krb Xbin/scout Xbin/xstat_cm_test Xbin/kpasswd Xbin/kpwvalid Xbin/bos Xbin/unlog Xbin/tokens Xbin/livesys Xbin/up Xbin/fs Xbin/xstat_fs_test Xbin/afsmonitor Xbin/cmdebug Xbin/translate_et Xbin/afs_compile_et Xbin/restorevol Xbin/klog.krb5 Xbin/asetkey Xbin/aklog Xinclude/openafs/afs/param.h Xinclude/openafs/afs/stds.h Xinclude/openafs/afs/afs_sysnames.h Xinclude/openafs/afs/afs_args.h Xinclude/openafs/afs/icl.h Xinclude/openafs/afs/venus.h Xinclude/openafs/afs/debug.h Xinclude/openafs/afs/pthread_nosigs.h Xinclude/openafs/afs/assert.h Xinclude/openafs/afs/procmgmt.h Xinclude/openafs/afs/dirpath.h Xinclude/openafs/afs/fileutil.h Xinclude/openafs/afs/netutils.h Xinclude/openafs/afs/errors.h Xinclude/openafs/afs/vice.h Xinclude/openafs/afs/remote.h Xinclude/openafs/afs/ktime.h Xinclude/openafs/afs/afsutil_prototypes.h Xinclude/openafs/afs/packages.h Xinclude/openafs/afs/afsutil.h Xinclude/openafs/afs/pthread_glock.h Xinclude/openafs/afs/cmd.h Xinclude/openafs/afs/afs_atomlist.h Xinclude/openafs/afs/afs_lhash.h Xinclude/openafs/afs/softsig.h Xinclude/openafs/afs/com_err.h Xinclude/openafs/afs/error_table.h Xinclude/openafs/afs/mit-sipb-cr.h Xinclude/openafs/afs/afs.h Xinclude/openafs/afs/osi_inode.h Xinclude/openafs/afs/afs_stats.h Xinclude/openafs/afs/exporter.h Xinclude/openafs/afs/nfsclient.h Xinclude/openafs/afs/unified_afs.h Xinclude/openafs/afs/sysctl.h Xinclude/openafs/afs/rxgen_consts.h Xinclude/openafs/afs/afsint.h Xinclude/openafs/afs/afscbint.h Xinclude/openafs/afs/afssyscalls.h Xinclude/openafs/afs/xfsattrs.h Xinclude/openafs/afs/audit.h Xinclude/openafs/afs/keys.h Xinclude/openafs/afs/cellconfig.h Xinclude/openafs/afs/auth.h Xinclude/openafs/afs/ktc.h Xinclude/openafs/afs/prclient.h Xinclude/openafs/afs/prerror.h Xinclude/openafs/afs/print.h Xinclude/openafs/afs/prserver.h Xinclude/openafs/afs/ptclient.h Xinclude/openafs/afs/ptuser.h Xinclude/openafs/afs/pterror.h Xinclude/openafs/afs/ptint.h Xinclude/openafs/afs/ptserver.h Xinclude/openafs/afs/acl.h Xinclude/openafs/afs/prs_fs.h Xinclude/openafs/afs/kautils.h Xinclude/openafs/afs/kauth.h Xinclude/openafs/afs/kaport.h Xinclude/openafs/afs/bumon.h Xinclude/openafs/afs/butc.h Xinclude/openafs/afs/bubasics.h Xinclude/openafs/afs/tcdata.h Xinclude/openafs/afs/butm.h Xinclude/openafs/afs/butx.h Xinclude/openafs/afs/usd.h Xinclude/openafs/afs/dir.h Xinclude/openafs/afs/nfs.h Xinclude/openafs/afs/vnode.h Xinclude/openafs/afs/viceinode.h Xinclude/openafs/afs/volume.h Xinclude/openafs/afs/voldefs.h Xinclude/openafs/afs/partition.h Xinclude/openafs/afs/fssync.h Xinclude/openafs/afs/ihandle.h Xinclude/openafs/afs/namei_ops.h Xinclude/openafs/afs/vl_opcodes.h Xinclude/openafs/afs/vlserver.h Xinclude/openafs/afs/vldbint.h Xinclude/openafs/afs/cnvldb.h Xinclude/openafs/afs/fs_stats.h Xinclude/openafs/afs/volser.h Xinclude/openafs/afs/volint.h Xinclude/openafs/afs/budb.h Xinclude/openafs/afs/budb_errs.h Xinclude/openafs/afs/budb_client.h Xinclude/openafs/afs/bosint.h Xinclude/openafs/afs/bnode.h Xinclude/openafs/afs/gtxcurseswin.h Xinclude/openafs/afs/gtxdumbwin.h Xinclude/openafs/afs/gtxframe.h Xinclude/openafs/afs/gtxinput.h Xinclude/openafs/afs/gtxkeymap.h Xinclude/openafs/afs/gtxlightobj.h Xinclude/openafs/afs/gtxobjdict.h Xinclude/openafs/afs/gtxobjects.h Xinclude/openafs/afs/gtxtextcb.h Xinclude/openafs/afs/gtxtextobj.h Xinclude/openafs/afs/gtxwindows.h Xinclude/openafs/afs/gtxX11win.h Xinclude/openafs/afs/fsprobe.h Xinclude/openafs/afs/xstat_fs.h Xinclude/openafs/afs/xstat_cm.h Xinclude/openafs/afs/vioc.h Xinclude/openafs/afs/afs_consts.h Xinclude/openafs/afs/pagcb.h Xinclude/openafs/afs/vnode_inline.h Xinclude/openafs/afs/volume_inline.h Xinclude/openafs/afs/salvsync.h Xinclude/openafs/afs/daemon_com.h Xinclude/openafs/afs/vsutils_prototypes.h Xinclude/openafs/des.h Xinclude/openafs/des_conf.h Xinclude/openafs/des_odd.h Xinclude/openafs/des_prototypes.h Xinclude/openafs/kopenafs.h Xinclude/openafs/lock.h Xinclude/openafs/lwp.h Xinclude/openafs/potpourri.h Xinclude/openafs/preempt.h Xinclude/openafs/mit-cpyright.h Xinclude/openafs/rx/rx_prototypes.h Xinclude/openafs/rx/rx.h Xinclude/openafs/rx/rx_packet.h Xinclude/openafs/rx/xdr_prototypes.h Xinclude/openafs/rx/rxstat.h Xinclude/openafs/rx/rx_user.h Xinclude/openafs/rx/rx_event.h Xinclude/openafs/rx/rx_queue.h Xinclude/openafs/rx/rx_globals.h Xinclude/openafs/rx/rx_clock.h Xinclude/openafs/rx/rx_multi.h Xinclude/openafs/rx/rx_pthread.h Xinclude/openafs/rx/rx_lwp.h Xinclude/openafs/rx/rx_misc.h Xinclude/openafs/rx/rx_null.h Xinclude/openafs/rx/xdr.h Xinclude/openafs/rx/rxkad_prototypes.h Xinclude/openafs/rx/fcrypt.h Xinclude/openafs/rx/rxkad.h Xinclude/openafs/timer.h Xinclude/openafs/ubik.h Xinclude/openafs/ubik_int.h Xlib/afs/libacl.a Xlib/afs/libafsint.a Xlib/afs/libafsutil.a Xlib/afs/libaudit.a Xlib/afs/libauth.a Xlib/afs/libauth.krb.a Xlib/afs/libbos.a Xlib/afs/libbubasics.a Xlib/afs/libbudb.a Xlib/afs/libbutm.a Xlib/afs/libbxdb.a Xlib/afs/libcmd.a Xlib/afs/libcom_err.a Xlib/afs/libdir.a Xlib/afs/libfsprobe.a Xlib/afs/libgtx.a Xlib/afs/libkauth.a Xlib/afs/libkauth.krb.a Xlib/afs/libprocmgmt.a Xlib/afs/libprot.a Xlib/afs/libsys.a Xlib/afs/libusd.a Xlib/afs/libvldb.a Xlib/afs/libvlib.a Xlib/afs/libvolser.a Xlib/afs/libxstat_cm.a Xlib/afs/libxstat_fs.a Xlib/afs/util.a Xlib/afs/vlib.a Xlib/librxstat.a Xlib/libdes.a Xlib/liblwp.a Xlib/librx.a Xlib/librxkad.a Xlib/libafsauthent.a Xlib/libuafs.a Xlib/libubik.a Xlib/libafsrpc.a Xlib/pam_afs.krb.so.1 Xlib/libjuafs.a Xlib/pam_afs.so.1 Xlib/libafsrpc_pic.a Xlib/libafsrpc.so.1.2 Xlib/libafsrpc.so.1 Xlib/libafsrpc.so Xlib/libafsauthent_pic.a Xlib/libafsauthent.so.1.1 Xlib/libafsauthent.so.1 Xlib/libafsauthent.so Xlib/libkopenafs.so.1.1 Xlib/libkopenafs.so.1 Xlib/libkopenafs.so Xlib/libkopenafs.a Xlibexec/openafs/buserver Xlibexec/openafs/fileserver Xlibexec/openafs/kaserver Xlibexec/openafs/ptserver Xlibexec/openafs/salvager Xlibexec/openafs/upclient Xlibexec/openafs/upserver Xlibexec/openafs/vlserver Xlibexec/openafs/volserver Xlibexec/openafs/salvageserver Xshare/openafs/C/afszcm.cat Xsbin/prdb_check Xsbin/kas Xsbin/kdb Xsbin/rmtsysd Xsbin/pt_util Xsbin/kadb_check Xsbin/ka-forwarder Xsbin/kpwvalid Xsbin/volinfo Xsbin/afsd Xsbin/vsys Xsbin/vldb_convert Xsbin/vldb_check Xsbin/read_tape Xsbin/bosserver Xsbin/voldump Xsbin/vos Xsbin/uss Xsbin/backup Xsbin/butc Xsbin/kdump Xsbin/rxdebug Xsbin/bos_util Xsbin/fms Xsbin/fstrace Xsbin/state_analyzer Xsbin/salvsync-debug Xsbin/fssync-debug X@unexec if [ -L %D/etc/openafs/CellServDB ] ; then rm %D/etc/openafs/CellServDB ; fi X@unexec if cmp -s %D/etc/openafs/CellServDB.sample %D/etc/openafs/CellServDB ; then rm %D/etc/openafs/CellServDB ; fi X@unexec if cmp -s %D/etc/openafs/CellServDB.sample %D/etc/CellServDB ; then rm %D/etc/CellServDB ; fi Xetc/openafs/CellServDB.sample X@unexec if [ -L %D/etc/openafs/ThisCell ] ; then rm %D/etc/openafs/ThisCell ; fi X@unexec if cmp -s %D/etc/openafs/ThisCell.sample %D/etc/openafs/ThisCell ; then rm %D/etc/openafs/ThisCell ; fi X@unexec if cmp -s %D/etc/openafs/ThisCell.sample %D/etc/ThisCell ; then rm %D/etc/ThisCell ; fi Xetc/openafs/ThisCell.sample X@exec if [ ! -e %D/etc/CellServDB ] ; then cp %D/etc/openafs/CellServDB.sample %D/etc/CellServDB ; fi X@exec if [ ! -e %D/etc/openafs/CellServDB ] ; then ln -s %D/etc/CellServDB %D/etc/openafs/CellServDB ; fi X@exec echo openafs.org >> %D/etc/openafs/ThisCell.sample X@exec if [ ! -e %D/etc/ThisCell ] ; then cp -p %D/etc/openafs/ThisCell.sample %D/etc/ThisCell ; fi X@exec if [ ! -e %D/etc/openafs/ThisCell ] ; then ln -s %D/etc/ThisCell %D/etc/openafs/ThisCell ; fi X@dirrm include/openafs/rx X@dirrm include/openafs/afs X@dirrm include/openafs X@dirrm lib/afs X@dirrm lib/openafs X@dirrm libexec/openafs X@dirrmtry etc/openafs X@dirrm share/openafs/C X@dirrm share/openafs X@cwd /boot/modules Xlibafs.ko 108b360c966dd2433d569db72bad4c16 exit