]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Initial revision
authorSam Hartman <hartmans@debian.org>
Fri, 2 Aug 2002 04:34:42 +0000 (04:34 +0000)
committerSam Hartman <hartmans@debian.org>
Fri, 2 Aug 2002 04:34:42 +0000 (04:34 +0000)
src/config/Makefile.sunx86_57.in [new file with mode: 0644]
src/config/param.sunx86_57.h [new file with mode: 0644]
src/config/param.sunx86_57_usr.h [new file with mode: 0644]
src/config/param.sunx86_58.h [new file with mode: 0644]
src/config/param.sunx86_58_usr.h [new file with mode: 0644]
src/tools/install/.afs_state [new file with mode: 0644]
src/tools/install/K5_README [new file with mode: 0644]
src/tools/install/openafs-tools-cmd-1.2.5-1.spec [new file with mode: 0644]

diff --git a/src/config/Makefile.sunx86_57.in b/src/config/Makefile.sunx86_57.in
new file mode 100644 (file)
index 0000000..e1fb130
--- /dev/null
@@ -0,0 +1,48 @@
+# Keep macros within each section in sorted order for clean diff displays.
+#
+# AFS_OSTYPE used to indicate suffixes and os specific subdirectories.
+AFS_OSTYPE = SOLARIS
+#
+# compilation and link editor flags
+XCFLAGS=-dy -Bdynamic
+MT_CFLAGS=-mt -DAFS_PTHREAD_ENV ${XCFLAGS}
+PAM_CFLAGS = -KPIC
+PAMLIBS= -lc -lpam -lsocket -lnsl -lm
+SHARE_LDFLAGS = -G -Bsymbolic
+LWP_OPTMZ=-g
+OPTMZ=-O
+DBG=-g
+
+## Compilation flags for 64 bit Solaris
+XCFLAGS64 = ${XCFLAGS} -xarch=v9
+
+#
+# libraries
+XLIBS=@LIB_AFSDB@ -lsocket -lnsl -lintl -ldl 
+TXLIBS=-lcurses
+MTLIBS=-lpthread -lsocket
+XLIBELFA=-lelf
+XLIBKVM=-lkvm
+#
+SHLIB_SUFFIX=so
+SHLIB_CFLAGS=-KPIC
+#
+# programs
+AR=/usr/ccs/bin/ar
+AS=as
+CC=/opt/SUNWspro/bin/cc
+MT_CC=/opt/SUNWspro/bin/cc
+CP=/bin/cp
+LEX=lex
+LD= /usr/ccs/bin/ld
+LORDER = /usr/ccs/bin/lorder
+MV=mv
+RANLIB=/bin/true
+RM=rm
+STRIP= /usr/ccs/bin/strip
+INSTALL=${TOP_SRCDIR}/pinstall/pinstall
+#
+# this is for the vol package
+FS_CONV_SOL26         = fs_conv_sol26
+install_FS_CONV_SOL26 = $(DESTDIR)${afssrvsbindir}/fs_conv_sol26
+dest_FS_CONV_SOL26    = $(DEST)/root.server/usr/afs/bin/fs_conv_sol26
diff --git a/src/config/param.sunx86_57.h b/src/config/param.sunx86_57.h
new file mode 100644 (file)
index 0000000..3c6fb87
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef        AFS_PARAM_H
+#define        AFS_PARAM_H
+
+#define AFS_VFS_ENV    1
+/* Used only in vfsck code; is it needed any more???? */
+
+#define AFS_VFSINCL_ENV        1       /* NOBODY uses this.... */
+#define AFS_GREEDY43_ENV       1       /* Used only in rx/rx_user.c */
+#define AFS_ENV                        1
+#define AFS_SUN_ENV            1
+#define AFS_SUN5_ENV           1
+#define        AFS_SUN52_ENV           1
+#define        AFS_SUN53_ENV           1
+#define        AFS_SUN54_ENV           1
+#define        AFS_SUN55_ENV           1
+#define        AFS_SUN56_ENV           1
+#define AFS_SUN57_ENV          1
+#define AFS_X86_ENV            1
+
+#define AFS_64BIT_ENV          1       /* Defines afs_int32 as int, not long. */
+
+#include <afs/afs_sysnames.h>
+
+#define AFS_GLOBAL_SUNLOCK     1       /* For global locking */
+#define RXK_LISTENER_ENV   1
+#define AFS_GCPAGS             1       /* if nonzero, garbage collect PAGs */
+
+#define        AFS_3DISPARES           1       /* Utilize the 3 available disk inode 'spares' */
+#define        AFS_SYSCALL             73
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS   "afs"
+
+/* Machine / Operating system information */
+#define sys_sunx86_57  1
+#define SYS_NAME       "sunx86_57"
+#define SYS_NAME_ID    SYS_NAME_ID_sunx86_57
+#define AFSLITTLE_ENDIAN       1
+#define AFS_HAVE_FFS    1       /* Use system's ffs. */
+#define AFS_HAVE_VXFS  1       /* Support cache on Veritas vxfs file system */
+#define AFS_HAVE_STATVFS 1     /* System supports statvfs */
+#define AFS_VM_RDWR_ENV        1       /* read/write implemented via VM */
+#define AFS_USE_GETTIMEOFDAY 1  /* use gettimeofday to implement rx clock */
+
+#define NEARINODE_HINT  1   /* hint to ufs module to scatter inodes on disk*/
+#define nearInodeHash(volid, hval) {                                 \
+                unsigned char*  ts = (unsigned char*)&(volid)+sizeof(volid)-1;\
+                for ( (hval)=0; ts >= (unsigned char*)&(volid); ts--){\
+                    (hval) *= 173;                      \
+                    (hval) += *ts;                      \
+                }                                       \
+                }
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef KERNEL
+/* sun definitions here */
+#define        AFS_UIOFMODE            1       /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
+#define        AFS_SYSVLOCK            1       /* sys v locking supported */
+/*#define      AFS_USEBUFFERS  1*/
+#define        afsio_iov               uio_iov
+#define        afsio_iovcnt    uio_iovcnt
+#define        afsio_offset    uio_offset
+#define        afsio_seg               uio_segflg
+#define        afsio_fmode     uio_fmode
+#define        afsio_resid     uio_resid
+#define        AFS_UIOSYS      UIO_SYSSPACE
+#define        AFS_UIOUSER     UIO_USERSPACE
+#define        AFS_CLBYTES     MCLBYTES
+#define        AFS_MINCHANGE   2
+#define        osi_GetTime(x)  uniqtime(x)
+
+/**
+  * These defines are for the 64 bit Solaris 7 port
+  * AFS_SYSCALL32 is used to protect the ILP32 syscall interface
+  * AFS_64BIT_ENV is for use of 64 bit inode numbers
+  */
+#if defined(__sparcv9)
+#define        AFS_SUN57_64BIT_ENV     1
+#define AFS_64BIT_INO          1
+#endif
+
+/**
+  * Solaris 7 64 bit has two versions of uniqtime. Since we consistently
+  * use 32 bit quantities for time in afs, we now use uniqtime32
+  */
+#if defined(AFS_SUN57_64BIT_ENV)
+#undef osi_GetTime
+#define osi_GetTime(x)  uniqtime32(x)
+#endif
+
+
+
+#define        AFS_KALLOC(n)   kmem_alloc(n, KM_SLEEP)
+#define AFS_KALLOC_NOSLEEP(n)   kmem_alloc(n, KM_NOSLEEP)
+#define        AFS_KFREE       kmem_free
+#define        VATTR_NULL      vattr_null
+#define memset(A, B, S) bzero(A, S)
+#define memcpy(B, A, S) bcopy(A, B, S)
+#define memcmp(A, B, S) bcmp(A, B, S)
+#endif /* KERNEL */
+#define        AFS_DIRENT      
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+#define        ROOTINO         UFSROOTINO
+
+#endif /* AFS_PARAM_H */
diff --git a/src/config/param.sunx86_57_usr.h b/src/config/param.sunx86_57_usr.h
new file mode 100644 (file)
index 0000000..a15bb90
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef        AFS_PARAM_H
+#define        AFS_PARAM_H
+
+#define AFS_VFS_ENV    1
+/* Used only in vfsck code; is it needed any more???? */
+#define RXK_LISTENER_ENV       1
+#define AFS_USERSPACE_IP_ADDR  1
+#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+
+#define UKERNEL                        1       /* user space kernel */
+#define AFS_GREEDY43_ENV       1       /* Used only in rx/rx_user.c */
+#define AFS_ENV                        1
+#define AFS_USR_SUN5_ENV       1
+#define AFS_USR_SUN6_ENV       1
+
+#include <afs/afs_sysnames.h>
+
+/*#define AFS_GLOBAL_SUNLOCK   1       /* For global locking */
+
+#define        AFS_3DISPARES           1       /* Utilize the 3 available disk inode 'spares' */
+#define        AFS_SYSCALL             73
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS   1
+
+/* Machine / Operating system information */
+#define sys_sun4x_55   1
+#define SYS_NAME       "sun4x_55"
+#define SYS_NAME_ID    SYS_NAME_ID_sun4x_55
+#define AFSLITTLE_ENDIAN       1
+#define AFS_HAVE_FFS            1       /* Use system's ffs. */
+#define AFS_HAVE_STATVFS      0       /* System doesn't support statvfs */
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef KERNEL
+#define        AFS_UIOFMODE            1       /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
+#define        AFS_SYSVLOCK            1       /* sys v locking supported */
+/*#define      AFS_USEBUFFERS  1*/
+#define        afsio_iov       uio_iov
+#define        afsio_iovcnt    uio_iovcnt
+#define        afsio_offset    uio_offset
+#define        afsio_seg       uio_segflg
+#define        afsio_fmode     uio_fmode
+#define        afsio_resid     uio_resid
+#define        AFS_UIOSYS      1
+#define        AFS_UIOUSER     UIO_USERSPACE
+#define        AFS_CLBYTES     MCLBYTES
+#define        AFS_MINCHANGE   2
+#define        VATTR_NULL      usr_vattr_null
+#endif /* KERNEL */
+#define        AFS_DIRENT      
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+#define        ROOTINO         UFSROOTINO
+
+#endif /* AFS_PARAM_H */
diff --git a/src/config/param.sunx86_58.h b/src/config/param.sunx86_58.h
new file mode 100644 (file)
index 0000000..74b029b
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef        AFS_PARAM_H
+#define        AFS_PARAM_H
+
+#define AFS_VFS_ENV    1
+/* Used only in vfsck code; is it needed any more???? */
+
+#define AFS_VFSINCL_ENV        1       /* NOBODY uses this.... */
+#define AFS_GREEDY43_ENV       1       /* Used only in rx/rx_user.c */
+#define AFS_ENV                        1
+#define AFS_SUN_ENV            1
+#define AFS_SUN5_ENV           1
+#define        AFS_SUN52_ENV           1
+#define        AFS_SUN53_ENV           1
+#define        AFS_SUN54_ENV           1
+#define        AFS_SUN55_ENV           1
+#define        AFS_SUN56_ENV           1
+#define AFS_SUN57_ENV          1
+#define AFS_SUN58_ENV          1
+#define AFS_X86_ENV            1
+
+#define AFS_64BIT_ENV          1       /* Defines afs_int32 as int, not long. */
+
+#include <afs/afs_sysnames.h>
+
+#define AFS_GLOBAL_SUNLOCK     1       /* For global locking */
+#define RXK_LISTENER_ENV   1
+#define AFS_GCPAGS             1       /* if nonzero, garbage collect PAGs */
+
+#ifdef AFS_NAMEI_ENV
+#define AFS_64BIT_IOPS_ENV     1       /* needed for NAMEI... */
+#else /* AFS_NAMEI_ENV */
+#define        AFS_3DISPARES           1       /* Utilize the 3 available disk inode 'spares' */
+#endif /* AFS_NAMEI_ENV */
+
+#define        AFS_SYSCALL             65
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS   "afs"
+
+/* Machine / Operating system information */
+#define sys_sunx86_58  1
+#define SYS_NAME       "sunx86_58"
+#define SYS_NAME_ID    SYS_NAME_ID_sunx86_58
+#define AFSLITTLE_ENDIAN       1
+#define AFS_HAVE_FFS    1       /* Use system's ffs. */
+#define AFS_HAVE_VXFS  1       /* Support cache on Veritas vxfs file system */
+#define AFS_HAVE_STATVFS 1     /* System supports statvfs */
+#define AFS_VM_RDWR_ENV        1       /* read/write implemented via VM */
+#define AFS_USE_GETTIMEOFDAY 1  /* use gettimeofday to implement rx clock */
+
+#define NEARINODE_HINT  1   /* hint to ufs module to scatter inodes on disk*/
+#define nearInodeHash(volid, hval) {                                 \
+                unsigned char*  ts = (unsigned char*)&(volid)+sizeof(volid)-1;\
+                for ( (hval)=0; ts >= (unsigned char*)&(volid); ts--){\
+                    (hval) *= 173;                      \
+                    (hval) += *ts;                      \
+                }                                       \
+                }
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef KERNEL
+/* sun definitions here */
+#define        AFS_UIOFMODE            1       /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
+#define        AFS_SYSVLOCK            1       /* sys v locking supported */
+/*#define      AFS_USEBUFFERS  1*/
+#define        afsio_iov               uio_iov
+#define        afsio_iovcnt    uio_iovcnt
+#define        afsio_offset    uio_offset
+#define        afsio_seg               uio_segflg
+#define        afsio_fmode     uio_fmode
+#define        afsio_resid     uio_resid
+#define        AFS_UIOSYS      UIO_SYSSPACE
+#define        AFS_UIOUSER     UIO_USERSPACE
+#define        AFS_CLBYTES     MCLBYTES
+#define        AFS_MINCHANGE   2
+#define        osi_GetTime(x)  uniqtime(x)
+
+/**
+  * These defines are for the 64 bit Solaris 7 port
+  * AFS_SYSCALL32 is used to protect the ILP32 syscall interface
+  * AFS_64BIT_ENV is for use of 64 bit inode numbers
+  */
+#if defined(__sparcv9)
+#define        AFS_SUN57_64BIT_ENV     1
+#define AFS_64BIT_INO          1
+#endif
+
+/**
+  * Solaris 7 64 bit has two versions of uniqtime. Since we consistently
+  * use 32 bit quantities for time in afs, we now use uniqtime32
+  */
+#if defined(AFS_SUN57_64BIT_ENV)
+#undef osi_GetTime
+#define osi_GetTime(x)  uniqtime32(x)
+#endif
+
+
+
+#define        AFS_KALLOC(n)   kmem_alloc(n, KM_SLEEP)
+#define AFS_KALLOC_NOSLEEP(n)   kmem_alloc(n, KM_NOSLEEP)
+#define        AFS_KFREE       kmem_free
+#define        VATTR_NULL      vattr_null
+#define memset(A, B, S) bzero(A, S)
+#define memcpy(B, A, S) bcopy(A, B, S)
+#define memcmp(A, B, S) bcmp(A, B, S)
+#endif /* KERNEL */
+#define        AFS_DIRENT      
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+#define        ROOTINO         UFSROOTINO
+
+#endif /* AFS_PARAM_H */
diff --git a/src/config/param.sunx86_58_usr.h b/src/config/param.sunx86_58_usr.h
new file mode 100644 (file)
index 0000000..bc9657c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef        AFS_PARAM_H
+#define        AFS_PARAM_H
+
+#define AFS_VFS_ENV    1
+/* Used only in vfsck code; is it needed any more???? */
+#define RXK_LISTENER_ENV       1
+#define AFS_USERSPACE_IP_ADDR  1
+#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+
+#define UKERNEL                        1       /* user space kernel */
+#define AFS_GREEDY43_ENV       1       /* Used only in rx/rx_user.c */
+#define AFS_ENV                        1
+#define AFS_USR_SUN5_ENV       1
+#define AFS_USR_SUN6_ENV       1
+
+#include <afs/afs_sysnames.h>
+
+/*#define AFS_GLOBAL_SUNLOCK   1       /* For global locking */
+
+#define        AFS_3DISPARES           1       /* Utilize the 3 available disk inode 'spares' */
+#define        AFS_SYSCALL             65
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS   1
+
+/* Machine / Operating system information */
+#define sys_sun4x_55   1
+#define SYS_NAME       "sun4x_55"
+#define SYS_NAME_ID    SYS_NAME_ID_sun4x_55
+#define AFSLITTLE_ENDIAN       1
+#define AFS_HAVE_FFS            1       /* Use system's ffs. */
+#define AFS_HAVE_STATVFS      0       /* System doesn't support statvfs */
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef KERNEL
+#define        AFS_UIOFMODE            1       /* Only in afs/afs_vnodeops.c (afs_ustrategy) */
+#define        AFS_SYSVLOCK            1       /* sys v locking supported */
+/*#define      AFS_USEBUFFERS  1*/
+#define        afsio_iov       uio_iov
+#define        afsio_iovcnt    uio_iovcnt
+#define        afsio_offset    uio_offset
+#define        afsio_seg       uio_segflg
+#define        afsio_fmode     uio_fmode
+#define        afsio_resid     uio_resid
+#define        AFS_UIOSYS      1
+#define        AFS_UIOUSER     UIO_USERSPACE
+#define        AFS_CLBYTES     MCLBYTES
+#define        AFS_MINCHANGE   2
+#define        VATTR_NULL      usr_vattr_null
+#endif /* KERNEL */
+#define        AFS_DIRENT      
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+#define        ROOTINO         UFSROOTINO
+
+#endif /* AFS_PARAM_H */
diff --git a/src/tools/install/.afs_state b/src/tools/install/.afs_state
new file mode 100644 (file)
index 0000000..370c416
--- /dev/null
@@ -0,0 +1,2 @@
+Uninstall
+complete
diff --git a/src/tools/install/K5_README b/src/tools/install/K5_README
new file mode 100644 (file)
index 0000000..4eaf3a4
--- /dev/null
@@ -0,0 +1,104 @@
+6/27/02
+
+This is a brief description of how to use the OpenAFS Tools to create a cell
+that uses Kerberos 5 authentication, rather than the kaserver program that
+comes with OpenAFS.
+
+*** INTRODUCTION ***
+
+Kerberos 5 is an authentication protocol that is widely used by many
+applications.  If you have an OpenAFS environment that is K5-aware, your
+users will not have to obtain authenticate separately with OpenAFS -- they
+can use their Kerberos tickets instead.  For more information about the
+benefits of K5 over AFS authentication, see the following webpage:
+
+http://www.mathematik.uni-karlsruhe.de/~iwrmm/Persons/Schulz/Unix/afs/afs-krb5.html
+
+You should also check out AFSLore (http://grand.central.org/twiki/).
+
+Also, refer to the OpenAFS Tools README for a much more complete set
+of requirements and instructions.  This document contains only things that
+are specific to the process of using Kerberos; it assumes you are already
+familiar with the other OpenAFS Tools requirements.
+
+*** REQUIREMENTS ***
+
+There are two major implementations of K5 -- MIT, and Heimdal.  From what
+I can gather, one is not significantly better than the other.  Unfortunately,
+their command line interfaces differ slightly, so for these tools I had to
+choose one with which to be compatible.  I chose the MIT version.  It is
+available at http://web.mit.edu/kerberos/www/index.html.  You should download,
+compile, and install this if you haven't already.
+
+If you have an existing Kerberos realm that you plan to use, you only need to
+configure your soon-to-be OpenAFS server as a Kerberos client.  If you're
+making a new realm, you're going to have to create a master KDC (which can
+be the same as your OpenAFS server if you want, but that's not advised), and
+also configure your OpenAFS server to be a client.  The aforementioned MIT
+website has all the information you'll need on how to create or connect to
+a K5 realm.  IMPORTANT NOTE: If you're creating a new realm, keep in mind
+that the OpenAFS cell you will be creating later must have the same name as
+the realm, except the name of the realm must be in all caps.
+
+The next step is to install the OpenAFS RPMs, available at 
+http://www.openafs.org/.  You'll need to get the openafs, openafs-kernel,
+openafs-client, openafs-server, and openafs-krb5 packages, and install
+them all.  
+
+*** INSTALLATION ***
+
+Installation is pretty easy.  Just do a normal install_afs command (as 
+described in the OpenAFS Tools README), but specify the "-k" option.  This
+informs the program that you are going to be using Kerberos for authentication.
+During the installation process, it will ask for a Kerberos administration
+password; this is the password for the admin/admin principal in your
+Kerberos realm.  If it is not correct, the installation will not work!
+
+IMPORTANT NOTE: As far as I can tell, the name of your cell must be THE SAME
+as the name of the Kerberos realm you are using, except in should be in lower
+case letters instead of upper case.  Supposedly there are ways to get around
+this, but I have not found them.  Currently, the OpenAFS Tools supports only
+same-name integration.
+
+*** USE ***
+
+After the install_afs program completes, you should be ready to go.  To test
+it out, execute the following commands.
+
+  kinit admin
+  aklog
+  vos create <machine_name> <partition_name> test.vol
+
+This will create a test volume in your AFS cell.  If you see any error 
+messages about authentication, then something's not working.
+
+If everything works, you can start using your AFS cell.  When you want to make
+new users, make them a Kerberos account, and then give them a PTS entry in
+your OpenAFS cell.  That should be it!
+
+*** COMMON PROBLEMS ***
+
+Here are some solutions to problems I've encountered:
+
+- Some KDC in your Kerberos realm must be running the following programs 
+before you run the OpenAFS installation program:
+  kadmind
+  krb5kdc
+  krb524d -m
+- The name of your OpenAFS cell and Kerberos realm must be the same, except
+for differences in capitalization.
+- Make sure, after uninstalling OpenAFS, to delete the 'admin' and 'afs'
+principals from the Kerberos database.
+
+*** Future Work ***
+
+These tools should support both MIT and Heimdal implementations, and any
+others that may exist.  Unfortunately, the only reasonable way to do this 
+that I can see is to use the actual Kerberos 5 API.  This would require 
+writing a C program or two and integrating them into the OpenAFS
+installation script.  While certainly possible, this would probably take
+some work.
+
+Removing the same name dependency between the OpenAFS cell and the Kerberos
+realm would be fantastic.
+
diff --git a/src/tools/install/openafs-tools-cmd-1.2.5-1.spec b/src/tools/install/openafs-tools-cmd-1.2.5-1.spec
new file mode 100644 (file)
index 0000000..ee88e66
--- /dev/null
@@ -0,0 +1,72 @@
+Summary: A program that can install and uninstall OpenAFS for Linux (command line only).
+Name: openafs-tools-cmd
+Version: 1.2.5
+Release: 1
+Copyright: IPL
+Packager: OpenAFS
+Group: Applications/File
+Source: openafs-tools-cmd.tar
+Conflicts: openafs-tools
+Requires: openafs, openafs-kernel, openafs-client, openafs-server
+BuildRoot: /var/tmp/%{name}-buildroot
+
+%description
+This rpm will extract and install the files needed to install and uninstall
+OpenAFS on a Linux system. 
+
+%prep
+%setup -c
+gunzip afs_linux.tar.gz
+tar -xf afs_linux.tar
+
+%build
+chmod 744 unpack_cmd
+
+%install
+rm -rf $RPM_BUILD_ROOT
+./unpack_cmd
+
+%post
+%ifnos Linux
+  echo -e "WARNING: Operating system is not Linux.\n  openafs-tools has only been tested on Red Hat Linux, so proceed with caution."
+%endif
+if [ ! -e /usr/src/redhat ]; then
+  echo -e "WARNING: This operating system may not be Red Hat Linux.\nopenafs-tools has only been tested on Red Hat, so proceed with caution."
+fi
+%ifos Linux
+  ver=$(uname -r) 
+  verdash=${ver%%-*}
+  vermaj=${verdash%.*}
+  vermin=${verdash##*.}
+  if [ $vermaj != "2.2" -a $vermaj != "2.4" ]; then 
+    echo -e "WARNING: Kernel version is not 2.2 or 2.4.\n openafs-tools-client has only been tested on kernel versions 2.2 and 2.4, so proceed with caution."
+  fi
+%endif
+
+%preun
+rm -f /usr/afs/tools/install/*install_output*
+rm -rf /usr/afs/tools/install/afs
+rm -rf /usr/afs/tools/install/vice
+rm -rf /usr/afs/tools/install/done.txt
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%doc openafs-tools-cmd.README
+/usr/afs/tools/openafs-tools-cmd.README
+/usr/afs/tools/install/.afs_state
+/usr/afs/tools/install/afsinit_both
+/usr/afs/tools/install/afsinit_client
+/usr/afs/tools/install/afsinit_server
+/usr/afs/tools/install/afs_uninstall
+/usr/afs/tools/install/install_afs
+/usr/afs/tools/install/K5_README
+/usr/afs/tools/install/check_udebug.pl
+/usr/afs/tools/install/write_fstab.pl
+/usr/afs/tools/install/write_pam.pl
+%dir /usr/afs/tools/install/
+
+
+
+