--- /dev/null
+# 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
--- /dev/null
+/*
+ * 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 */
--- /dev/null
+/*
+ * 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 */
--- /dev/null
+/*
+ * 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 */
--- /dev/null
+/*
+ * 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 */
--- /dev/null
+Uninstall
+complete
--- /dev/null
+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.
+
--- /dev/null
+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/
+
+
+
+