specfiles-20060821
authorDerrick Brashear <shadow@dementia.org>
Mon, 21 Aug 2006 21:01:14 +0000 (21:01 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 21 Aug 2006 21:01:14 +0000 (21:01 +0000)
same for head

18 files changed:
src/packaging/RedHat/afs-krb5-2.0-com_err.patch [new file with mode: 0644]
src/packaging/RedHat/afs-krb5-2.0-krb524.patch [new file with mode: 0644]
src/packaging/RedHat/afs-krb5-2.0-libsocket.patch [new file with mode: 0644]
src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch [new file with mode: 0644]
src/packaging/RedHat/afs-krb5-2.0-res_search.patch [new file with mode: 0644]
src/packaging/RedHat/afsmodname [deleted file]
src/packaging/RedHat/openafs-1.2.6-rc.patch [deleted file]
src/packaging/RedHat/openafs-1.2.6.spec [deleted file]
src/packaging/RedHat/openafs-LICENSE.Sun [new file with mode: 0644]
src/packaging/RedHat/openafs-buildall.sh [new file with mode: 0755]
src/packaging/RedHat/openafs-client.init [new file with mode: 0644]
src/packaging/RedHat/openafs-kernel-version.sh [new file with mode: 0755]
src/packaging/RedHat/openafs-krb5-2.0.tar.gz [new file with mode: 0644]
src/packaging/RedHat/openafs-kvers-is.sh [new file with mode: 0755]
src/packaging/RedHat/openafs-makesrc.sh [new file with mode: 0755]
src/packaging/RedHat/openafs-server.init [new file with mode: 0644]
src/packaging/RedHat/openafs.spec.in [new file with mode: 0644]
src/packaging/RedHat/openafs.sysconfig [new file with mode: 0644]

diff --git a/src/packaging/RedHat/afs-krb5-2.0-com_err.patch b/src/packaging/RedHat/afs-krb5-2.0-com_err.patch
new file mode 100644 (file)
index 0000000..7b496bb
--- /dev/null
@@ -0,0 +1,24 @@
+diff -uNr afs-krb5.orig/src/configure.in afs-krb5/src/configure.in
+--- afs-krb5.orig/src/configure.in     2005-04-14 16:06:15.597138000 -0400
++++ afs-krb5/src/configure.in  2005-04-14 16:06:44.201789856 -0400
+@@ -143,7 +143,19 @@
+ LIBS="$ac_save_LIBS"])
+ if test "x$afs_cv_func_getDirPath" = "xyes"; then
+       AC_MSG_RESULT([Setting compilation parameters for AFS 3.5 and later])
+-      AKLOG_EXTRA_OBJ=adderrtable.o
++      AC_MSG_CHECKING([for add_to_error_table])
++dnl
++dnl We may be using libcom_err from Kerberos (shared libraries), and
++dnl already have add_to_error_table
++dnl
++      AC_TRY_LINK_FUNC(add_to_error_table, have_adderr=yes, have_adderr=no)
++      if test $have_adderr != yes; then
++              AC_MSG_RESULT([no, adding adderrtable.o])
++              AKLOG_EXTRA_OBJ=adderrtable.o
++      else
++              AC_MSG_RESULT([yes])
++              AKLOG_EXTRA_OBJ=
++      fi
+ else
+       AC_MSG_RESULT([Setting compilation parameters for pre-AFS 3.5])
+       AC_DEFINE(PRE_AFS35)
diff --git a/src/packaging/RedHat/afs-krb5-2.0-krb524.patch b/src/packaging/RedHat/afs-krb5-2.0-krb524.patch
new file mode 100644 (file)
index 0000000..7503d41
--- /dev/null
@@ -0,0 +1,31 @@
+--- afs-krb5/src/configure.in-orig     2003-03-16 20:13:34.000000000 -0500
++++ afs-krb5/src/configure.in  2005-09-14 17:20:46.000000000 -0400
+@@ -179,14 +197,20 @@
+ [     EXTRA_INC="$EXTRA_INC -I$with_krb5_obj/include -I$with_krb5_obj/include/krb5"
+       KADM_LIBS=`echo $KADM_LIBS | sed -e "s#-ldb#$with_krb5_obj/lib/libdb.a#"`])
+ dnl
+-dnl Sigh, why is this so complicated?  Right now, just assume that 
+-dnl the 524 library is always called krb524 and will be picked up by the
+-dnl Kerberos link line
+-dnl
+-dnl AC_CHECK_LIB(krb524, krb524_convert_princs, [KRB524LIB="-lkrb524"], [
+-dnl   AC_MSG_ERROR([Cannot find 524 library, exiting])
+-dnl ])
+-KRB524LIB=-lkrb524
++dnl The krb524 functions may be included in libkrb5 itself, or else in a 
++dnl separate library named libkrb524
++dnl
++ac_save_LIBS="$LIBS"
++KRB524LIB=
++AC_MSG_CHECKING([for krb524 library])
++AC_CHECK_FUNC(krb524_init_ets, have_krb524=yes, have_krb524=no)
++
++if test "$have_krb524" = no; then
++      LIBS="$LIBS -lkrb524"
++      AC_CHECK_LIB(krb524, krb524_init_ets, [KRB524LIB="-lkrb524"],
++                           [AC_MSG_ERROR([Unable to find krb524 library])])
++fi
++LIBS="$ac_save_LIBS"
+ dnl AC_CHECK_LIB(kdb5, krb5_db_fetch_mkey, [KD_LIBS="-lkdb5"],[
+ dnl   AC_MSG_WARN([Cannot find Kerberos 5 DB library, will not be able to build DB utilities])
diff --git a/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch b/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch
new file mode 100644 (file)
index 0000000..e39ef2c
--- /dev/null
@@ -0,0 +1,39 @@
+diff -uNr afs-krb5.orig/src/configure.in afs-krb5/src/configure.in
+--- afs-krb5.orig/src/configure.in     2003-03-16 20:13:34.000000000 -0500
++++ afs-krb5/src/configure.in  2003-07-30 11:52:55.000000000 -0400
+@@ -44,14 +44,6 @@
+ if test $retval -ne 0; then
+       AC_MSG_ERROR($krb5_config failed with error code of $retval)
+ fi
+-AC_MSG_RESULT([Adding $krb5_cflags to CFLAGS])
+-AC_MSG_RESULT([Adding $krb5_libs to LIBS])
+-AC_MSG_RESULT([Setting KADM_CFLAGS to $krb5_cflags_kadm])
+-AC_MSG_RESULT([Setting KADM_LIBS to $krb5_libs_kadm])
+-CFLAGS="$CFLAGS $krb5_cflags"
+-LIBS="$LIBS $krb5_libs"
+-KADM_CFLAGS="$krb5_cflags_kadm"
+-KADM_LIBS="$krb5_libs_kadm"
+ dnl
+ dnl Check for various network libraries
+ dnl
+@@ -105,6 +97,20 @@
+       AC_MSG_ERROR([Unable to find res_search function])
+ fi
+ LIBS="$save_LIBS"
++
++dnl
++dnl Don't add these to LIBS until after we've already looked for 
++dnl libsocket, etc. Otherwise ka-forwarder won't build properly
++dnl
++AC_MSG_RESULT([Adding $krb5_cflags to CFLAGS])
++AC_MSG_RESULT([Adding $krb5_libs to LIBS])
++AC_MSG_RESULT([Setting KADM_CFLAGS to $krb5_cflags_kadm])
++AC_MSG_RESULT([Setting KADM_LIBS to $krb5_libs_kadm])
++CFLAGS="$CFLAGS $krb5_cflags"
++LIBS="$LIBS $krb5_libs"
++KADM_CFLAGS="$krb5_cflags_kadm"
++KADM_LIBS="$krb5_libs_kadm"
++
+ dnl
+ dnl Optional support for AFS
+ dnl
diff --git a/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch b/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch
new file mode 100644 (file)
index 0000000..44045a0
--- /dev/null
@@ -0,0 +1,12 @@
+diff -uNr afs-krb5.orig/src/asetkey.c afs-krb5/src/asetkey.c
+--- afs-krb5.orig/src/asetkey.c        2005-04-08 15:55:35.637620000 -0400
++++ afs-krb5/src/asetkey.c     2005-04-08 15:55:57.614279120 -0400
+@@ -81,7 +81,7 @@
+               exit(1);
+       }
+-      code = afsconf_AddKey(tdir, kvno, key->contents);
++      code = afsconf_AddKey(tdir, kvno, key->contents, 1);
+       if (code) {
+           printf("setkey: failed to set key, code %ld.\n", code);
+           exit(1);
diff --git a/src/packaging/RedHat/afs-krb5-2.0-res_search.patch b/src/packaging/RedHat/afs-krb5-2.0-res_search.patch
new file mode 100644 (file)
index 0000000..fda5ba4
--- /dev/null
@@ -0,0 +1,14 @@
+--- afs-krb5/src/configure.in.res_search       2005-09-30 12:53:38.000000000 -0400
++++ afs-krb5/src/configure.in  2005-09-30 14:40:38.000000000 -0400
+@@ -89,7 +89,10 @@
+               if test "$have_res_search" != yes; then
+                       AC_CHECK_LIB(${lib}, res_search,
+                                    [have_res_search=yes
+-                                    NETLIBS="$NETLIBS -l${lib}"])
++                                    NETLIBS="$NETLIBS -l${lib}"],
++                                   [AC_CHECK_LIB(${lib}, __res_search,
++                                     [have_res_search=yes
++                                      NETLIBS="$NETLIBS -l${lib}"])])
+               fi
+       done
+ fi
diff --git a/src/packaging/RedHat/afsmodname b/src/packaging/RedHat/afsmodname
deleted file mode 100755 (executable)
index 227488a..0000000
+++ /dev/null
@@ -1,455 +0,0 @@
-#!/usr/bin/perl
-# afsmodname - return the name of the AFS module to load
-# usage: afsmodname [path]
-# THIS SCRIPT IS UNDER SOURCE CONTROL!
-# The master copy is /afs/cs/misc/openafs/src/client-support/afsmodname
-
-use Getopt::Std;
-
-use strict;
-use vars qw($modbase $VERSION @TrySyms @AddSyms $Prefix);
-use vars qw($DEBUG $Mode $OutFile %SymCache);
-
-$VERSION = '$Revision$';
-$VERSION =~ s/^\$[a-z]*:?\s*(\S*)\s*\$$/$1/i;
-$VERSION = 'testing' unless $VERSION;
-$modbase = '/usr/vice/etc/modload';
-@TrySyms = qw(__iget iget __iget4 iget4);
-@AddSyms = qw(sock_create);
-$Prefix = 'libafs';
-
-
-sub vcmp {
-  my (@a, @b, @aa, @bb);
-  my ($i, $ii);
-
-  @a = split /-/, $a;
-  @b = split /-/, $b;
-  foreach $i (0 .. ((@a > @b) ? $#b : $#a)) {
-    @aa = split /\./, $a[$i];
-    @bb = split /\./, $b[$i];  
-    foreach $ii (0 .. ((@aa > @bb) ? $#bb : $#aa)) {
-      return $aa[$ii] <=> $bb[$ii] if $aa[$ii] <=> $bb[$ii]
-                                   && $aa[$ii] =~ /^\d+$/
-                                   && $bb[$ii] =~ /^\d+$/;
-      return $aa[$ii] cmp $bb[$ii] if $aa[$ii] cmp $bb[$ii];
-    }
-    return @aa <=> @bb if @aa <=> @bb;
-  }
-  return @a <=> @b;
-}
-
-
-sub parse_symbol ($) {
-  my($symbol) = @_;
-
-  if ($symbol =~ /^(.*)_R((?:smp)?(?:2gig)?_?[0-9a-f]{8})$/) {
-    ($1, $2);
-  } else {
-    ($symbol, '--none--');
-  }
-}
-
-
-sub get_ksym ($) {
-  my($req_sym) = @_;
-  my($addr, $symbol, $module, $version, @answer);
-
-
-  if (exists($SymCache{$req_sym})) {
-    print STDERR "get_ksym($req_sym) [cached]\n" if $DEBUG > 1;
-    return $SymCache{$req_sym};
-  }
-
-  print STDERR "get_ksym($req_sym)" if $DEBUG;
-  $SymCache{$req_sym} = undef;
-  open(KSYMS, '/proc/ksyms') or die "open /proc/ksyms: $!\n";
-  while (<KSYMS>) {
-    if (/^(\w+)\s+(\w+)\s+\[(.*)\]/) {
-      ($addr, $symbol, $module) = ($1, $2, $3)
-    } elsif (/^(\w+)\s+(\w+)/) {
-      ($addr, $symbol, $module) = ($1, $2, 'KERNEL')
-    } else { next }
-
-    ($symbol, $version) = parse_symbol($symbol);
-
-    if ($symbol eq $req_sym) {
-      $SymCache{$req_sym} = [$addr, $version, $module];
-      print STDERR " => [addr=$addr, vers=$version, mod=$module]\n" if $DEBUG;
-      last;
-    }
-  }
-  close(KSYMS);
-
-  print STDERR " => not found\n" if $DEBUG && !defined($SymCache{$req_sym});
-  $SymCache{$req_sym};
-}
-
-
-sub get_modsyms ($) {
-  my($modpath) = @_;
-  my($symbol, $version, $V);
-
-  $V = {};
-  open(NM, "nm $modpath|") or die "nm $modpath: $!\n";
-  while (<NM>) {
-    chomp;
-    next unless /^\s+U\s+/;
-    ($symbol, $version) = parse_symbol($');
-    $$V{$symbol} = $version unless $version eq '--none--';
-  }
-  close(NM);
-  $V;
-}
-
-
-sub get_hdrsyms ($) {
-  my($srcpath) = @_;
-  my($moddir, @hdrs, $h);
-  my($symbol, $version, $V);
-
-
-  $moddir = "$srcpath/include/linux/modules";
-  opendir(HDRS, $moddir) or die "$moddir: $!\n";
-  @hdrs = readdir(HDRS);
-  closedir(HDRS);
-
-  $V = {};
-  foreach $h (@hdrs) {
-    next unless $h =~ /\.ver$/;
-    open(HDR, "$moddir/$h") or die "$moddir/$h: $!\n";
-    while (<HDR>) {
-      chomp;
-      next unless /#define __ver_(\S+)\s+(\S+)/;
-      $$V{$1} = $2;
-    }
-    close(HDR);
-  }
-  $V;
-}
-
-
-sub get_cputype () {
-  my($cputype, $family, $vendor, $model);
-
-  open(CPUINFO, '/proc/cpuinfo') or die "open /proc/cpuinfo: $!\n";
-  while (<CPUINFO>) {
-    if    (/^cpu\s*\:\s*(\S+)/)       { $cputype = $1 }
-    elsif (/^cpu family\s*:\s*(\S+)/) { $family  = $1 }
-    elsif (/^vendor_id\s*:\s*(\S+)/)  { $vendor  = $1 }
-    elsif (/^model\s*:\s*(\S+)/)      { $model   = $1 }
-  }
-  close(CPUINFO);
-  if    ($vendor eq 'GenuineIntel') { $vendor = 'intel' }
-  elsif ($vendor eq 'AuthenticAMD') { $vendor = 'amd'   }
-  $cputype = "${family}86" if !defined($cputype);
-  [$cputype, $vendor, $model];
-}
-
-
-sub table_lookup ($@) {
-  my($cpu, @paths) = @_;
-  my($path, $symbol, $version, $mincpu, @mincpu, $module, $info, @supp);
-  my($prev_module);     # last module line we saw
-  my($match_module);    # last matching module
-  my($prev_match);      # true if last module matches so far
-
-  foreach $path (@paths) {
-    next unless -f $path;
-    $prev_match = 0;
-    open(TABLE, $path) or die "open $path: $!\n";
-    while (<TABLE>) {
-      # Skip comments
-      next if (/^\#/ || /^\s*$/);
-
-      # Check supplemental requirements
-      if (/^\s*\>/) {
-        @supp = split;
-        foreach (@supp) {
-          if (/([^=]*)=([^=]*)/) {
-            ($symbol, $version) = ($1, $2);
-            $info = get_ksym($symbol);
-            $prev_match = 0 if !$info || $version ne $$info[1];
-          }
-        }
-        next;
-      }
-
-      # This is a new module, so all supplemental requirements for the
-      # previous module have been processed.  If they all passed, then
-      # the previous module is a matching module.
-      $match_module = $prev_module if $prev_match;
-
-      # Parse the line and remember the module name
-      ($symbol, $version, $mincpu, $module) = split;
-      $prev_module = $module;
-      $prev_match  = 0;
-      if ($DEBUG) {
-        print STDERR "Try $module ($symbol=$version)",
-                     ($mincpu ne '-') ?  " mincpu = $mincpu" : "",
-                     "\n";
-      }
-
-      # Check mincpu requirement
-      if ($mincpu ne '-') {
-        @mincpu = split(/\./, $mincpu);
-        if ($mincpu[0] ne '' && $mincpu[0] >  $$cpu[0]) {  # min family
-          print STDERR " mincpu failed: $mincpu[0] > $$cpu[0]\n" if $DEBUG;
-          next;
-        }
-        if ($mincpu[1] ne '' && $mincpu[1] ne $$cpu[1]) {  # exact vendor
-          print STDERR " mincpu failed: $mincpu[1] != $$cpu[1]\n" if $DEBUG;
-          next;
-        }
-        if ($mincpu[2] ne '' && $mincpu[2] >  $$cpu[2]) {  # min model
-          print STDERR " mincpu failed: $mincpu[2] > $$cpu[2]\n" if $DEBUG;
-          next;
-        }
-      }
-
-      # Check primary symbol requirement
-      $info = get_ksym($symbol);
-      next unless $info;
-      next unless $version eq $$info[1];
-
-      # OK; it's a match so far.  There may still be some supplemental
-      # requirements that we need to check.
-      $prev_match = 1;
-    }
-    close(TABLE);
-    $match_module = $prev_module if $prev_match;
-  }
-  $match_module;
-}
-
-
-sub dump_versions ($) {
-  my($cpu) = @_;
-  my($version);
-
-  print STDERR "CPU Type:       ", join('.', @$cpu), "\n";
-
-  chomp($version = `uname -rv`);
-  print STDERR "Linux version:  $version\n";
-
-  if (open(RHR, "/etc/redhat-release")) {
-    chomp($version = <RHR>);
-     print STDERR "RedHat release: $version\n";
-  }
-}
-
-
-sub dump_syms (@) {
-  my(@syms) = @_;
-  my($sym, $info);
-
-  print STDERR "Symbol versions:\n";
-  foreach $sym (@syms) {
-    $info = get_ksym($sym);
-    printf STDERR "  %-10s %s\n", $sym, $$info[1] if $info;
-  }
-}
-
-
-sub gen_table (@) {
-  my(@modules) = @_;
-  my($module, $modname, $V, $sym, $count, @add);
-
-  print <<'EOF';
-# This file describes the available AFS kernel modules and what kernel
-# versions they work with.  Each line matches against some kernel symbol
-# version, and specifies a module which may be used with kernels containing
-# that version of the specified symbol.  Only lines which match the
-# currently-running kernel are considered.
-#
-# In addition, each line may specify a minimum CPU model on which the module
-# will work.  If this value is present, the actual CPU model must be greater
-# than or equal to the version specified; otherwise, the module is assumed
-# to work on any CPU.
-#
-# The last match found will be used.
-#
-# Symbol  Version       MinCPU  Module
-#=======  ============  ======  ====================
-EOF
-  foreach $module (sort vcmp @modules) {
-    ($modname = $module) =~ s/.*\///;
-    $modname =~ s/^$Prefix[-.](.*)\.o$/$1/;
-    $V = get_modsyms($module);
-    $count = 0;
-    foreach $sym (@TrySyms) {
-      next unless exists $$V{$sym};
-      $count++;
-      printf "%-8s  %-12s  %-6s  %s\n", $sym, $$V{$sym}, '-', $modname;
-      last;
-    }
-    if (!$count) {
-      print STDERR "Unable to find a suitable symbol reference in $modname!\n";
-      next;
-    }
-    @add = ();
-    foreach $sym (@AddSyms) {
-      next unless exists $$V{$sym};
-      push(@add, "$sym=$$V{$sym}");
-    }
-    print "> ", join(' ', @add), "\n" if @add;
-  }
-}
-
-
-sub scan_kernels (@) {
-  my(@kernels) = @_;
-  my($kernel, $kpath, $kname, $V);
-
-eval <<"EOF";
-format =
-@<<<<<<<<<<<<<<<<<<<<<<<< @{[' @<<<<<<<<<<<' x scalar(@TrySyms)]}
-\$kname, @{[join(',', map(q/$$V{'/ . $_ . q/'}/, @TrySyms))]}
-.
-EOF
-
-  $kname = 'Kernel';
-  $V = { map(($_ => $_), @TrySyms) };
-  write;
-
-  $kname = '=========================';
-  $V = { map(($_ => '============'), @TrySyms) };
-  write;
-
-  foreach $kernel (@kernels) {
-    if    (-d "$kernel/src/include/linux/modules") { $kpath = "$kernel/src" }
-    elsif (-d "$kernel/include/linux/modules")     { $kpath = $kernel       }
-    else { next }
-    ($kname = $kpath) =~ s#/src$##;
-    $kname =~ s/.*\///;
-
-    $V = get_hdrsyms($kpath);
-    write;
-  }
-}
-
-
-sub symcompare ($$) {
-  my($module, $kernel) = @_;
-  my($ksyms, $msyms, $sym, $kvers, $mvers, $info);
-
-eval <<'EOF';
-format =
-@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  @<<<<<<<<<<<  @<<<<<<<<<<<
-$sym, $kvers, $mvers
-.
-EOF
-
-  if (defined($kernel)) { $ksyms = get_hdrsyms($kernel) }
-  $msyms = get_modsyms($module);
-
-  print "Symbol                          Kernel        Module\n";
-  print "==============================  ============  ============\n";
-  foreach (keys %$msyms) {
-    $sym = $_;
-    $mvers = $$msyms{$sym};
-    if (defined($kernel)) {
-      $kvers = $$ksyms{$sym};
-    } else {
-      $info = get_ksym($sym);
-      $kvers = $$info[1];
-    }
-    next if $kvers eq $mvers;
-    write;
-  }
-}
-
-
-sub usage (;@) {
-
-  print STDERR "$00: ", @_, "\n" if @_;
-  print STDERR <<"EOF";
-usage: $00 [opts] [modbase]                      (find module)
-       $00 [opts] -g modules ...                 (make table)
-       $00 [opts] -k kernels ...                 (scan kernels)
-       $00 [opts] -c module [kernel]             (check module)
-       $00 -h                                    (print help)
-       $00 -v                                    (print version)
-
-options:
-  -d          enable debugging output
-  -f outfile  set output file (default stdout)
-  -P prefix   set module name prefix (default $Prefix)
-  -S syms...  symbols to try for -x, -k (default @TrySyms)
-  -A syms...  additional symbols to check for -x (default @AddSyms)
-
-  Module lists for -S and -A may be space- or comma-separated.
-  For backward-compatibility, -g is a synonym for -x.
-EOF
-    exit(0);
-}
-
-sub parse_opts () {
-  my(%opts);
-
-  ($00 = $0) =~ s/.*\///;
-  getopts('dckgxf:hvP:S:A:', \%opts) or usage('invalid option(s)');
-  usage() if $opts{'h'};
-
-  if ($opts{'v'}) {
-    print "afsmodname $VERSION\n";
-    exit(0);
-  }
-
-  $opts{'g'} = 1 if $opts{'x'};
-  if ($opts{'g'} + $opts{'k'} + $opts{'c'} > 1) {
-    usage("At most one of -g, -k, -c can be used\n");
-  }
-
-  $DEBUG++                              if exists $opts{'d'};
-  $Mode = 'g'                           if exists $opts{'g'};
-  $Mode = 'k'                           if exists $opts{'k'};
-  $Mode = 'c'                           if exists $opts{'c'};
-
-  usage("Too many arguments")   if !$Mode && @ARGV > 1;
-  usage("Too many arguments")   if $Mode eq 'c' && @ARGV > 2;
-  usage("Module name required") if $Mode eq 'c' && !@ARGV;
-
-  $OutFile = $opts{'f'}                 if exists $opts{'f'};
-  $Prefix  = $opts{'p'}                 if exists $opts{'P'};
-  @TrySyms = split(/[, ]+/, $opts{'S'}) if exists $opts{'S'};
-  @AddSyms = split(/[, ]+/, $opts{'A'}) if exists $opts{'A'};
-}
-
-
-## MAIN PROGRAM
-
-my($cpu, $module);
-
-parse_opts();
-if ($Mode) {
-  if ($OutFile) {
-    open(STDOUT, ">$OutFile") or die "$OutFile: $!\n";
-  }
-  if ($Mode eq 'g') { gen_table(@ARGV)               }
-  if ($Mode eq 'k') { scan_kernels(@ARGV)            }
-  if ($Mode eq 'c') { symcompare($ARGV[0], $ARGV[1]) }
-  exit(0);
-}
-
-$modbase = $ARGV[0] if @ARGV;
-
-$cpu = get_cputype();
-
-$module = table_lookup($cpu, "$modbase/SymTable", "$modbase/SymTable.local");
-
-if ($module) {
-  print "$Prefix-$module.o";
-  exit(0);
-}
-
-print STDERR <<'EOF';
-Hmm...  I can't seem to find an AFS kernel module suitable for your Linux
-kernel.  That means you will need to build or obtain a suitable module.
-The following information may be of some use in obtaining assistance:
-EOF
-
-dump_versions($cpu);
-dump_syms(sort (@TrySyms, keys %SymCache));
-
-exit(1);
diff --git a/src/packaging/RedHat/openafs-1.2.6-rc.patch b/src/packaging/RedHat/openafs-1.2.6-rc.patch
deleted file mode 100644 (file)
index 6ed144a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: src/afsd/afs.rc.linux
-===================================================================
-RCS file: /cvs/openafs/src/afsd/afs.rc.linux,v
-retrieving revision 1.4
-diff -u -r1.4 afs.rc.linux
---- src/afsd/afs.rc.linux      2001/10/10 03:16:54     1.4
-+++ src/afsd/afs.rc.linux      2001/10/13 14:42:31
-@@ -92,6 +92,19 @@
- # LIBAFS manually.
- choose_client() {
-+        # Use the associated script to determine the module name
-+      if test -f /usr/vice/etc/afsmodname && \
-+          test -f /usr/vice/etc/modload/SymTable ; then
-+          
-+            LIBAFS=`/usr/vice/etc/afsmodname`
-+          if test "x$LIBAFS" = "x" ; then
-+              echo Did not find matching module in SymTable
-+          else
-+              echo Found $LIBAFS from SymTable... Loading...
-+              return 0
-+          fi
-+      fi
-+
-       # Use the second field of the uname -v output instead of just
-       # doing a match on the whole thing to protect against matching
-       # a timezone named SMP -- I don't know of one, but let's be
diff --git a/src/packaging/RedHat/openafs-1.2.6.spec b/src/packaging/RedHat/openafs-1.2.6.spec
deleted file mode 100644 (file)
index aaad118..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-%define afsvers 1.2.6
-%define pkgrel 1
-
-# Define your particular Red Hat and kernel versions:
-#      For Linux 2.2:  22
-#      For Linux 2.4:  24
-#
-%define osvers rh7.1
-%define kernvers 24
-
-# This is where to look for kernel-build includes files.
-# Most likely you don't want to change this, but
-# depending on your situation you may want:
-#      Linux 2.2:
-#              kbase = /usr/src/linux-
-#              kend = ""
-#      Linux 2.4:
-#              kbase = /lib/modules/
-#              kend = /build
-#
-%define kbase /usr/src/linux-
-%define kend ""
-
-# Set 'debugspec' to 1 if you want to debug the spec file.  This will
-# not remove the installed tree as part of the %clean operation
-%define debugspec 0
-
-# Set 'enterprisekernelsupport' to 1 if you want to build the
-# kernel module for the enterprise kernel
-# Note: This will only work for kernvers == 24 on i686
-%define enterprisekernelsupport 1
-
-# Set 'bigmemkernelsupport' to 1 if you want to build the
-# kernel module for the bigmem kernel
-# Note: This will only work for kernvers == 24 on i686
-%define bigmemkernelsupport 1
-
-# Set 'krb5support' to 1 if you want to build the openafs-krb5 package
-# to distribute aklog and asetkey
-%define krb5support 1
-
-# OpenAFS configuration options
-%define enable_bitmap_later 0
-%define enable_bos_restricted_mode 0
-%define enable_fast_restart 0
-
-#######################################################################
-# You probably don't need to change anything beyond this line
-# NOTE: If you do, please email me!!!
-
-Summary: OpenAFS distributed filesystem
-Name: openafs
-Version: %{afsvers}
-Release: %{osvers}.%{pkgrel}
-Copyright: IPL
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
-Packager: Derek Atkins <warlord@MIT.EDU>
-Group: Networking/Filesystems
-BuildRequires: kernel-source
-%if "%{osvers}" != "rh6.2"
-# Newer versions of Red Hat require pam-devel in order to build
-BuildRequires: pam-devel
-%endif
-
-Source0: http://www.openafs.org/dl/openafs/${afsvers}/openafs-%{afsvers}-src.tar.gz
-Source1: http://www.openafs.org/dl/openafs/${afsvers}/openafs-%{afsvers}-doc.tar.gz
-Source2: openafs-ThisCell
-# http://grand.central.org/dl/cellservdb/CellServDB
-Source3: openafs-CellServDB
-Source4: openafs-SuidCells
-Source5: openafs-cacheinfo
-Source6: openafs-afsmodname
-Source7: openafs-LICENSE.Sun
-Source8: openafs-README
-Source10: http://www.openafs.org/dl/openafs/${afsvers}/RELNOTES-%{afsvers}
-Source11: http://www.openafs.org/dl/openafs/${afsvers}/ChangeLog
-
-Source20: openafs-krb5-1.3.tar.gz
-
-Patch0: openafs-%{afsvers}-rc.patch
-
-Patch20: openafs-krb5-1.3-1.2.1.diff.gz
-Patch21: openafs-krb5-1.3-configure.patch
-
-%description
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides common files shared across all the various
-OpenAFS packages but are not necessarily tied to a client or server.
-
-%package client
-Requires: binutils, openafs-kernel, openafs = %{PACKAGE_VERSION}
-Summary: OpenAFS Filesystem Client
-Group: Networking/Filesystem
-
-%description client
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides basic client support to mount and manipulate
-AFS.
-
-%package server
-Requires: openafs-kernel, openafs = %{PACKAGE_VERSION}
-Summary: OpenAFS Filesystem Server
-Group: Networking/Filesystems
-
-%description server
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides basic server support to host files in an AFS
-Cell.
-
-%package devel
-Summary: OpenAFS Development Libraries and Headers
-Group: Development/Filesystems
-
-%description devel
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides static development libraries and headers needed
-to compile AFS applications.  Note: AFS currently does not provide
-shared libraries.
-
-%package kernel
-Summary: OpenAFS Kernel Module(s)
-Requires: openafs = %{PACKAGE_VERSION}
-Group: Networking/Filesystems
-
-%description kernel
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides precompiled AFS kernel modules for various
-kernels.
-
-%package kernel-source
-Summary: OpenAFS Kernel Module source tree
-Group: Networking/Filesystems
-
-%description kernel-source
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides the source code to build your own AFS kernel
-module.
-
-%package compat
-Summary: OpenAFS client compatibility symlinks
-Requires: openafs = %{PACKAGE_VERSION}, openafs-client = %{PACKAGE_VERSION}
-Group: Networking/Filesystems
-Obsoletes: openafs-client-compat
-
-%description compat
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides compatibility symlinks in /usr/afsws.  It is
-completely optional, and is only necessary to support legacy
-applications and scripts that hard-code the location of AFS client
-programs.
-
-%package kpasswd
-Summary: OpenAFS KA kpasswd support
-Requires: openafs
-Group: Networking/Filesystems
-
-%description kpasswd
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides the compatibility symlink for kpasswd, in case
-you are using KAserver instead of Krb5.
-
-%if %{krb5support}
-%package krb5
-Summary: OpenAFS programs to use with krb5
-Requires: openafs = %{PACKAGE_VERSION}
-Group: Networking/Filesystems
-BuildRequires: krb5-devel
-
-%description krb5
-The AFS distributed filesystem.  AFS is a distributed filesystem
-allowing cross-platform sharing of files among multiple computers.
-Facilities are provided for access control, authentication, backup and
-administrative management.
-
-This package provides compatibility programs so you can use krb5
-to authenticate to AFS services, instead of using AFS's homegrown
-krb4 lookalike services.
-%endif
-
-#
-# PREP
-#
-
-%prep
-%setup -q -b 1
-%setup -q -T -D -a 20
-
-%patch0 -p0
-%patch20 -p0
-%patch21 -p0
-
-###
-### build
-###
-%build
-
-%ifarch i386 i486 i586 i686 athlon
-sysbase=i386
-sysname=${sysbase}_linux%{kernvers}
-%else
-sysbase=%{_arch}
-sysname=${sysbase}_linux%{kernvers}
-%endif
-
-if [ %{kernvers} = 22 ]; then
-   kv='2\.2\.'
-elif [ %{kernvers} = 24 ]; then
-   kv='2\.4\.'
-else
-   echo "I don't know how to build $sysname"
-   exit 1
-fi
-
-%ifarch i386 i486 i586 i686 athlon
-archlist="i386 i586 i686 athlon"
-%else
-archlist=${sysbase}
-%endif
-
-#
-# PrintDefine var value statements file
-#
-PrintDefine() {
-    case $3 in
-    *ifn*)
-       echo "#ifndef $1" >> $4
-       ;;
-    esac
-    case $3 in
-    *und*)
-       echo "#undef $1" >> $4
-       ;;
-    esac
-    case $3 in
-    *def*)
-       echo "#define $1 $2" >> $4
-       ;;
-    esac
-    case $3 in
-    *end*)
-       echo "#endif" >> $4
-       ;;
-    esac
-    case $3 in
-    *inc*)
-       echo "#include $1" >> $4
-       ;;
-    esac
-
-
-    case $3 in
-    *nl*)
-       echo "" >> $4
-       ;;
-    esac
-}
-
-# PrintRedhatKernelFix arch mp file
-PrintRedhatKernelFix() {
-    arch="$1"
-    up=0
-    smp=0
-    ent=0
-    bm=0
-    if [ "$2" = "MP" ]; then
-       smp=1
-    elif [ "$2" = "EP" ]; then
-       ent=1
-    elif [ "$2" = "BM" ]; then
-       bm=1
-    else
-       up=1
-    fi
-    file="$3"
-
-    # deal with the various boot kernels
-    boot=0
-    bootsmp=0
-
-    # arch of 'BOOT' == 386
-    if [ "$arch" = "BOOT" ]; then
-       if [ "$up" = 1 ]; then
-           boot=1
-           up=0
-       elif [ "$smp" = 1 ]; then
-           bootsmp=1
-           smp=0
-       fi
-       arch=i386
-    fi
-
-    rm -f $file
-    touch $file
-
-    PrintDefine "REDHAT_FIX_H" "" ifn,def,nl $file
-
-    PrintDefine "__BOOT_KERNEL_ENTERPRISE" $ent und,def,nl $file
-    PrintDefine "__BOOT_KERNEL_BIGMEM" $bm und,def,nl $file
-    PrintDefine "__BOOT_KERNEL_SMP" $smp und,def,nl $file
-    PrintDefine "__BOOT_KERNEL_UP" $up und,def,nl $file
-    PrintDefine "__BOOT_KERNEL_BOOT" $boot und,def,nl $file
-    PrintDefine "__BOOT_KERNEL_BOOTSMP" $bootsmp und,def,nl $file
-
-    PrintDefine \"/boot/kernel.h\" "" inc,nl $file     # include file
-
-    for ar in $archlist ; do
-       if [ "$ar" = "$arch" ]; then
-           PrintDefine "__MODULE_KERNEL_$ar" "1" ifn,def,end $file
-       else
-           PrintDefine "__MODULE_KERNEL_$ar" "" und $file      # undef
-        fi
-    done
-    echo "" >> $file
-
-    PrintDefine "" "" end $file
-
-    if [ %{debugspec} = 1 ] ; then
-       echo "Kernel Configuration File for Red Hat kernels:"
-       cat $file
-    fi
-}
-
-# Pick up all the 'appropriate' kernels
-kvers=`ls -d %{kbase}* | sed 's^%{kbase}^^g' | grep $kv`
-
-# Choose the last one for now.. It doesn't really matter, really.
-hdrdir=`ls -d %{kbase}*%{kend} | grep $kv | tail -1`
-
-config_opts="--enable-redhat-buildsys \
-%if %{enable_bitmap_later}
-       --enable-bitmap-later \
-%endif
-%if %{enable_bos_restricted_mode}
-       --enable-bos-restricted-mode \
-%endif
-%if %{enable_fast_restart}
-       --enable-fast-restart \
-%endif
-       --enable-transarc-paths"
-
-# Configure AFS
-./configure --with-afs-sysname=${sysname} \
-       --with-linux-kernel-headers=$hdrdir $config_opts
-
-# Build the user-space AFS stuff
-make dest_nolibafs
-
-# Build the libafs tree
-make only_libafs_tree
-
-# Now build all the kernel modules
-for vers in $kvers ; do
-
-  # Reconfigure sources for this kernel version, to catch various
-  # kernel params in the configure script.  Yes. this takes more time,
-  # but it's worth it in the long run..  But first remove config.cache
-  # to be sure we get a clean configuration.
-  rm -f config.cache
-  ./configure --with-afs-sysname=${sysname} \
-       --with-linux-kernel-headers=%{kbase}$vers%{kend} \
-       $config_opts
-
-  KTL="SP MP"
-%if %{enterprisekernelsupport}
-  # See if we should build EP support
-  if grep -q -r __BOOT_KERNEL_ENTERPRISE %{kbase}$vers%{kend}/include
-  then
-    KTL="${KTL} EP"
-  fi
-%endif
-%if %{bigmemkernelsupport}
-  # See if we should build BM support
-  if grep -q -r __BOOT_KERNEL_BIGMEM %{kbase}$vers%{kend}/include
-  then
-    KTL="${KTL} BM"
-  fi
-%endif
-  for mp in $KTL; do
-    # ... for all appropriate 'architectures'...
-    if [ %{kernvers} = 22 ]; then
-       # For 2.2 kernels, just do MP and SP kernels; force EP into i686
-
-        arch=${sysbase}
-        if [ $mp = EP -a ${sysbase} = i386 ]; then
-           arch=i686
-       fi
-
-       PrintRedhatKernelFix $arch $mp src/config/redhat-fix.h
-       make dest_only_libafs LOCAL_SMP_DEF=-DREDHAT_FIX MPS=$mp
-
-    elif [ %{kernvers} = 24 ]; then
-       # For 2.4 kernels, need to build modules for each architecture!
-
-       for arch in $archlist ; do
-
-           # build SP and MP on all architectures.
-           # build EP and BM only on i686
-            if [ $mp = SP -o $mp = MP -o \
-                \( $mp = EP -a $arch = i686 \) -o \
-                \( $mp = BM -a $arch = i686 \) ]; then
-               PrintRedhatKernelFix $arch $mp src/config/redhat-fix.h
-               make dest_only_libafs LOCAL_SMP_DEF=-DREDHAT_FIX \
-                   LINUX_MODULE_NAME="-$arch" MPS=$mp
-           fi
-       done
-
-    else           
-       echo "I don't know how to build $sysname"
-       exit 1
-    fi
-  done
-done
-
-rm -f src/config/redhat-fix.h
-
-%if %{krb5support}
-# Now build aklog/asetkey
-(cd openafs-krb5-1.3/src &&
-       autoconf &&
-       ./configure --prefix=/usr --with-krb5=/usr/kerberos \
-               --with-afs=`pwd`/../../${sysname}/dest/ && \
-       make all && \
-       make install DESTDIR=`pwd`/../../${sysname}/dest/ INSTALL_BIN=/bin \
-               INSTALL_SBIN=/etc)
-%endif
-
-###
-### install
-###
-%install
-[ $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT
-
-%ifarch i386 i486 i586 i686 athlon
-sysbase=i386
-sysname=${sysbase}_linux%{kernvers}
-%else
-sysbase=%{_arch}
-sysname=${sysbase}_linux%{kernvers}
-%endif
-
-# Build install tree
-mkdir -p $RPM_BUILD_ROOT/usr/sbin
-mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
-mkdir -p $RPM_BUILD_ROOT/etc/openafs
-mkdir -p $RPM_BUILD_ROOT/lib/security
-mkdir -p $RPM_BUILD_ROOT/usr/afs/logs
-mkdir -p $RPM_BUILD_ROOT/usr/vice/etc
-mkdir -p $RPM_BUILD_ROOT/usr/vice/cache
-chmod 700 $RPM_BUILD_ROOT/usr/vice/cache
-
-# Copy files from dest to the appropriate places in BuildRoot
-tar cf - -C ${sysname}/dest bin include lib | tar xf - -C $RPM_BUILD_ROOT/usr
-tar cf - -C ${sysname}/dest/etc . | tar xf - -C $RPM_BUILD_ROOT/usr/sbin
-tar cf - -C ${sysname}/dest/root.server/usr/afs bin | tar xf - -C $RPM_BUILD_ROOT/usr/afs
-tar cf - -C ${sysname}/dest/root.client/usr/vice/etc afsd modload | tar xf - -C $RPM_BUILD_ROOT/usr/vice/etc
-
-# Link kpasswd to kapasswd
-ln -f $RPM_BUILD_ROOT/usr/bin/kpasswd $RPM_BUILD_ROOT/usr/bin/kapasswd
-
-# Copy root.client config files
-install -m 755 ${sysname}/dest/root.client/usr/vice/etc/afs.conf $RPM_BUILD_ROOT/etc/sysconfig/afs
-install -m 755 ${sysname}/dest/root.client/usr/vice/etc/afs.rc $RPM_BUILD_ROOT/etc/rc.d/init.d/afs
-
-# Copy PAM modules
-install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT/lib/security
-
-# PAM symlinks
-ln -sf pam_afs.so.1 $RPM_BUILD_ROOT/lib/security/pam_afs.so
-ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT/lib/security/pam_afs.krb.so
-
-# Populate /usr/vice/etc
-uve=$RPM_BUILD_ROOT/usr/vice/etc
-install -p -m 644 $RPM_SOURCE_DIR/openafs-CellServDB $uve/CellServDB
-install -p -m 644 $RPM_SOURCE_DIR/openafs-SuidCells $uve/SuidCells
-install -p -m 644 $RPM_SOURCE_DIR/openafs-ThisCell $uve/ThisCell
-install -p -m 644 $RPM_SOURCE_DIR/openafs-cacheinfo $uve/cacheinfo
-install -p -m 755 $RPM_SOURCE_DIR/openafs-afsmodname $uve/afsmodname
-
-#
-# Build the SymTable
-symtable=$RPM_BUILD_ROOT/usr/vice/etc/modload/SymTable
-rm -f $symtable
-echo "# SymTable, automatically generated" > $symtable
-echo "# symbol version cpu     module" >> $symtable
-echo "" >> $symtable
-
-$RPM_BUILD_ROOT/usr/vice/etc/afsmodname -x -f $symtable \
-       $RPM_BUILD_ROOT/usr/vice/etc/modload/libafs*.o
-
-#
-# install kernel-source
-#
-
-# Install the kernel module source tree
-mkdir -p $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/src
-tar cf - -C libafs_tree . | \
-       tar xf - -C $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/src
-
-# Next, copy the LICENSE Files, README
-install -m 644 src/LICENSE $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/LICENSE.IBM
-install -m 644 $RPM_SOURCE_DIR/openafs-LICENSE.Sun $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/LICENSE.Sun
-install -m 644 $RPM_SOURCE_DIR/openafs-README $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/README
-
-#
-# Install DOCUMENTATION
-#
-
-# Build the DOC directory
-mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
-tar cf - -C doc LICENSE html pdf | \
-    tar xf - -C $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
-install -m 644 $RPM_SOURCE_DIR/RELNOTES-%{afsvers} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
-install -m 644 $RPM_SOURCE_DIR/ChangeLog $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
-
-#
-# create filelist
-#
-grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
-/usr/bin/afsmonitor
-/usr/bin/bos
-/usr/bin/fs
-/usr/bin/kapasswd
-/usr/bin/kpasswd
-/usr/bin/klog
-/usr/bin/klog.krb
-/usr/bin/pagsh
-/usr/bin/pagsh.krb
-/usr/bin/pts
-/usr/bin/scout
-/usr/bin/sys
-/usr/bin/tokens
-/usr/bin/tokens.krb
-/usr/bin/translate_et
-/usr/bin/udebug
-/usr/bin/unlog
-/usr/sbin/backup
-/usr/sbin/butc
-/usr/sbin/fms
-/usr/sbin/fstrace
-/usr/sbin/kas
-/usr/sbin/read_tape
-/usr/sbin/restorevol
-/usr/sbin/rxdebug
-/usr/sbin/uss
-/usr/sbin/vos
-EOF-openafs-file-list
-
-#
-# Install compatiblity links
-#
-for d in bin:bin etc:sbin; do
-  olddir=`echo $d | sed 's/:.*$//'`
-  newdir=`echo $d | sed 's/^.*://'`
-  mkdir -p $RPM_BUILD_ROOT/usr/afsws/$olddir
-  for f in `cat openafs-file-list`; do
-    if echo $f | grep -q /$newdir/; then
-      fb=`basename $f`
-      ln -sf /usr/$newdir/$fb $RPM_BUILD_ROOT/usr/afsws/$olddir/$fb
-    fi
-  done
-done
-
-
-###
-### clean
-###
-%clean
-rm -f openafs-file-list
-[ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
-       rm -fr $RPM_BUILD_ROOT
-
-
-###
-### scripts
-###
-%pre compat
-if [ -e /usr/afsws ]; then
-        /bin/rm -fr /usr/afsws
-fi
-
-%post
-chkconfig --add afs
-
-%post client
-if [ ! -d /afs ]; then
-       mkdir /afs
-       chown root.root /afs
-       chmod 0755 /afs
-fi
-
-echo
-echo The AFS cache is configured for 100 MB. Edit the 
-echo /usr/vice/etc/cacheinfo file to change this before
-echo running AFS for the first time. You should also
-echo set your home cell in /usr/vice/etc/ThisCell.
-echo
-echo Also, you may want to edit /etc/pam.d/login and 
-echo possibly others there to get an AFS token on login.
-echo Put the line:
-echo 
-echo    auth      sufficient   /lib/security/pam_afs.so try_first_pass ignore_root
-echo
-echo before the one for pwdb.
-echo
-
-%post server
-if [ -f /etc/sysconfig/afs ] ; then
-       srv=`grep ^AFS_SERVER /etc/sysconfig/afs | sed 's/^AFS_SERVER[\s]*=[\s]*//'`
-       if [ "x$srv" = "xon" ] ; then
-               exit 0
-       fi
-fi
-
-echo
-echo Be sure to edit /etc/sysconfig/afs and turn AFS_SERVER on
-echo
-
-%preun
-if [ $1 = 0 ] ; then
-        /etc/rc.d/init.d/afs stop
-        chkconfig --del afs
-       [ -d /afs ] && rmdir /afs
-fi
-
-###
-### file lists
-###
-%files -f openafs-file-list
-%defattr(-,root,root)
-%config /etc/sysconfig/afs
-%doc %{_docdir}/openafs-%{afsvers}
-/etc/rc.d/init.d/afs
-
-%files client
-%defattr(-,root,root)
-%dir /usr/vice
-%dir /usr/vice/cache
-%dir /usr/vice/etc
-%dir /usr/vice/etc/modload
-%config /usr/vice/etc/CellServDB
-%config /usr/vice/etc/SuidCells
-%config /usr/vice/etc/ThisCell
-%config /usr/vice/etc/cacheinfo
-/usr/bin/cmdebug
-/usr/bin/up
-/usr/vice/etc/afsd
-/usr/vice/etc/afsmodname
-/lib/security/pam_afs.krb.so.1
-/lib/security/pam_afs.krb.so
-/lib/security/pam_afs.so.1
-/lib/security/pam_afs.so
-
-%files server
-%defattr(-,root,root)
-%dir /usr/afs
-%dir /usr/afs/bin
-%dir /usr/afs/logs
-/usr/afs/bin/bosserver
-/usr/afs/bin/buserver
-/usr/afs/bin/fileserver
-# Should we support KAServer?
-/usr/afs/bin/kaserver
-/usr/afs/bin/kpwvalid
-/usr/afs/bin/pt_util
-/usr/afs/bin/ptserver
-/usr/afs/bin/salvager
-/usr/afs/bin/upclient
-/usr/afs/bin/upserver
-/usr/afs/bin/vlserver
-/usr/afs/bin/volinfo
-/usr/afs/bin/volserver
-/usr/sbin/prdb_check
-/usr/sbin/vldb_check
-/usr/sbin/vldb_convert
-
-%files devel
-%defattr(-,root,root)
-/usr/bin/rxgen
-/usr/include/afs
-/usr/include/des.h
-/usr/include/des_conf.h
-/usr/include/des_odd.h
-/usr/include/lock.h
-/usr/include/lwp.h
-/usr/include/mit-cpyright.h
-/usr/include/potpourri.h
-/usr/include/preempt.h
-/usr/include/rx
-/usr/include/timer.h
-/usr/include/ubik.h
-/usr/include/ubik_int.h
-/usr/lib/afs
-/usr/lib/libafsauthent.a
-/usr/lib/libafsrpc.a
-/usr/lib/libdes.a
-/usr/lib/liblwp.a
-/usr/lib/librx.a
-/usr/lib/librxkad.a
-/usr/lib/librxstat.a
-/usr/lib/libubik.a
-
-%files kernel
-%defattr(-,root,root)
-/usr/vice/etc/modload/libafs*.o
-/usr/vice/etc/modload/SymTable
-
-%files kernel-source
-%defattr(-,root,root)
-/usr/src/openafs-kernel-%{afsvers}/LICENSE.IBM
-/usr/src/openafs-kernel-%{afsvers}/LICENSE.Sun
-/usr/src/openafs-kernel-%{afsvers}/README
-/usr/src/openafs-kernel-%{afsvers}/src
-
-%files compat
-%defattr(-,root,root)
-/usr/afsws
-
-%files kpasswd
-%defattr(-,root,root)
-/usr/bin/kpasswd
-/usr/bin/kpwvalid
-
-%if %{krb5support}
-%files krb5
-%defattr(-,root,root)
-/usr/bin/aklog
-/usr/sbin/asetkey
-%endif
diff --git a/src/packaging/RedHat/openafs-LICENSE.Sun b/src/packaging/RedHat/openafs-LICENSE.Sun
new file mode 100644 (file)
index 0000000..a54554b
--- /dev/null
@@ -0,0 +1,9 @@
+Sun Microsystems' ONC RPC license
+
+Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+unrestricted use provided that this legend is included on all tape
+media and as a part of the software program in whole or part.  Users
+may copy or modify Sun RPC without charge, but are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by the user.
+
diff --git a/src/packaging/RedHat/openafs-buildall.sh b/src/packaging/RedHat/openafs-buildall.sh
new file mode 100755 (executable)
index 0000000..39fb6e6
--- /dev/null
@@ -0,0 +1,95 @@
+#!/bin/sh
+#
+# build all of openafs for all the various kernels installed on this system.
+#
+# Written by:  Derek Atkins <warlord@MIT.EDU>
+#
+# $Revision$
+#
+
+# Define where the Specfile is located.
+specdir=/usr/src/redhat/SPECS
+
+# Define the rpmbuild options you want to supply.
+buildopts=
+
+############################################################################
+#  Figure out the release version
+rhrel=`cat /etc/redhat-release`
+if [ `echo $rhrel | grep -c 'Fedora Core'` = 1 ] ; then
+  ostype='fc'
+elif [ `echo $rhrel | grep -c 'Red Hat Enterprise Linux'` = 1 ] ; then
+  ostype='rhel'
+  excludearch=i586
+elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
+  ostype='rh'
+else
+  echo "Unknown Linux Release: $rhrel"
+  exit 1
+fi
+osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
+osvers="$ostype$osrel"
+
+############################################################################
+# Now figure out the kernel version.  We assume that the running
+# kernel version is "close enough" to tell us whether it's a
+# 2.4 or 2.6 kernel.
+kvers=`uname -r`
+case $kvers in
+  2.4.*)
+    kbase=/usr/src/linux-
+    kv=2.4.
+    ;;
+  2.6.*)
+    kbase=/usr/src/kernels/
+    kv=2.6.
+    ;;
+  *)
+    echo "I don't know how to build for kernel $kvers"
+    exit 1
+    ;;
+esac
+
+############################################################################
+# Now build the packages and all the kernel modules
+
+echo "Building OpenAFS for $osvers"
+rpmbuild -ba $buildopts --define "osvers $osvers" $specdir/openafs.spec || \
+  exit 1
+
+kernels=`ls -d ${kbase}${kv}*`
+
+for kerndir in $kernels ; do
+  # Ignore symlinks
+  if [ ! -h $kerndir ] ; then
+    vers=`echo $kerndir | sed -e "s^${kbase}^^g" -e 's/-smp/smp/g' \
+          -e 's/-hugemem/hugemem/g' -e 's/-largesmp/largesmp/g'`
+    if [ $kv = "2.4." ] ; then
+      kvers=$vers
+      case `uname -m` in
+         i386|i486|i586|i686|athlon) archlist="i586 i686 athlon" ;;
+          *) archlist=`uname -m` ;;
+      esac
+      for a in $excludearch ; do
+        archlist=`echo $archlist | sed -e s/$a//`
+      done
+      kend="''"
+    else
+      karch=`echo $vers | sed 's/.*-//'`
+      kvers=`echo $vers | sed s/-$karch//`
+      archlist=$karch
+      kend=-$karch
+    fi
+
+    for arch in $archlist ; do
+      echo "Building for $kerndir, $kvers, $arch"
+        rpmbuild -bb $buildopts \
+         --define "osvers $osvers" \
+         --define "kernvers $kvers" \
+         --define "ksrcdir $kerndir" \
+         --define "build_modules 1" \
+         --target=$arch \
+         $specdir/openafs.spec || exit 1
+    done
+  fi
+done
diff --git a/src/packaging/RedHat/openafs-client.init b/src/packaging/RedHat/openafs-client.init
new file mode 100644 (file)
index 0000000..1bfeb9d
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/bash
+#
+# openafs-client       Start/Stop the OpenAFS Client
+#
+# chkconfig: 2345 50 50
+# description: OpenAFS is a distributed filesystem.
+#
+# $Revision$
+
+. /etc/init.d/functions
+[ -f /etc/sysconfig/openafs ] && . /etc/sysconfig/openafs
+
+
+start() {
+       echo -n $"Starting openafs-client: "
+       if [ -e /var/lock/subsys/openafs-client ] ; then
+               echo -n $"cannot start openafs-client: already running"
+               failure $"cannot start openafs-client: already running"
+               echo
+               return 1
+       fi
+       modprobe openafs
+       RETVAL=$?
+       if [ $RETVAL -ne 0 ] ; then
+               echo -n $"failed to load openafs kernel module."
+               failure $"failed to load openafs kernel module."
+               echo
+               return $RETVAL
+       fi
+       /usr/vice/etc/afsd $AFSD_ARGS
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/openafs-client
+       return $RETVAL
+}
+
+stop() {
+       echo -n $"Stopping openafs-client: "
+       if [ ! -e /var/lock/subsys/openafs-client ] ; then
+               echo -n $"cannot stop openafs-client: not running"
+               failure $"cannot stop openafs-client: not running"
+               echo
+               return 1
+       fi
+       umount /afs
+       RETVAL=$?
+       echo
+       if [ $RETVAL -eq 0 ] ; then
+               rm -f /var/lock/subsys/openafs-client
+               rmmod openafs
+       fi
+       return $RETVAL
+}
+
+rhstatus() {
+       status afsd
+}
+
+restart() {
+       stop || exit
+       start
+}
+
+case "$1" in
+  start)
+        start
+        ;;
+  stop)
+        stop
+        ;;
+  restart)
+        restart
+        ;;
+  status)
+        rhstatus
+        ;;
+  condrestart)
+        [ -f /var/lock/subsys/openafs-client ] && restart || :
+        ;;
+  *)
+        echo $"Usage: $0 {start|stop|status|restart|condrestart}"
+        exit 1
+esac
diff --git a/src/packaging/RedHat/openafs-kernel-version.sh b/src/packaging/RedHat/openafs-kernel-version.sh
new file mode 100755 (executable)
index 0000000..d3a0e49
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# investigate the name of the kernel
+#
+# $Revision$
+
+if [ "x$1" = "x" ] ; then
+    kernvers=`uname -r`
+    if [ ! -d /lib/modules/$kernvers/build/include ] ; then
+        kernvers=`/bin/ls /lib/modules/*/build/include/linux/version.h | \
+        cut -d/ -f4 | \
+        sort -u | \
+        tail -1`
+    fi
+else
+    kernvers=$1
+fi
+
+if [ -z "$kernvers" ]; then echo "unable to determine kernel version" >&2; exit 1; fi
+
+# strip "kernel-" off of the front
+if expr "$kernvers" : "kernel-" >&/dev/null
+then
+    kernvers=`expr "$kernvers" : 'kernel-\(.*\)'`
+fi
+
+# Strip kernel config mnemonic off 2.4 kernels.
+case $kernvers in
+  2.4.*)
+    # strip kernel config mnemonic off of the tail
+    case "$kernvers" in
+      *smp)
+         kernvers=`expr "$kernvers" : '\(.*\)smp'`
+         ;;
+      *bigmem)
+         kernvers=`expr "$kernvers" : '\(.*\)bigmem'`
+         ;;
+      *hugemem)
+         kernvers=`expr "$kernvers" : '\(.*\)hugemem'`
+         ;;
+      *enterprise)
+         kernvers=`expr "$kernvers" : '\(.*\)enterprise'`
+         ;;
+    esac
+    ;;
+esac
+
+echo $kernvers
+exit 0
diff --git a/src/packaging/RedHat/openafs-krb5-2.0.tar.gz b/src/packaging/RedHat/openafs-krb5-2.0.tar.gz
new file mode 100644 (file)
index 0000000..f6b915c
Binary files /dev/null and b/src/packaging/RedHat/openafs-krb5-2.0.tar.gz differ
diff --git a/src/packaging/RedHat/openafs-kvers-is.sh b/src/packaging/RedHat/openafs-kvers-is.sh
new file mode 100755 (executable)
index 0000000..b69f8df
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+# Small helper script for parsing kernel versions and types
+# $Revision$
+
+if [ "$1" = "parsev" ] ; then
+  #logger "parsing version from $2"
+  echo "$2" | /bin/sed -e 's/^\([0-9]*\.[0-9]*\)\..*/\1/'
+  exit 0
+fi
+
+if [ "$1" = "parset" ] ; then
+  #logger "parsing type from $2"
+  echo "$2" | /bin/sed -e 's/^.*[0-9L]\([^0-9L]*\)/\1/'
+  exit 0
+fi
+
+if [ "$1" = "kvers" ] ; then
+  #logger "parsing type from $2"
+  echo "$2" | /bin/sed -e 's/^\(.*[0-9L]\)[^0-9L]*$/\1/'
+  exit 0
+fi
+
+if [ "$1" = "find" ] ; then
+  f=`find "$2"/configs -name \*-"$3"-"$4".config`
+  if [ -n "$f" ] ; then
+    echo 1
+    exit 1
+  else
+    echo 0
+    exit 0
+  fi
+fi
+
+#logger "comparing $1 to $2"
+if [ "$1" = "$2" ] ; then
+  #logger "yes"
+  echo 1
+  exit 1
+else
+  #logger "no"
+  echo 0
+  exit 0
+fi
diff --git a/src/packaging/RedHat/openafs-makesrc.sh b/src/packaging/RedHat/openafs-makesrc.sh
new file mode 100755 (executable)
index 0000000..479952f
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# openafs-makesrc -- convert a 2.6 'kernel' package into something
+#   you can install into /usr/src/kernels
+#
+# Written by:  Derek Atkins <warlord@MIT.EDU>
+#
+# $Revision$
+
+kerndir=/usr/src/kernels
+
+[ -d $kerndir ] || mkdir -p -m 0755 $kerndir
+umask 022
+while [ -n "$1" ] ; do
+  rpm=$1
+  name=`rpm -qp $rpm`
+  vers=`echo $name | sed -e 's/kernel-[^0-9]*\([0-9].*\)$/\1/'`
+  smp=`echo $name | sed -e 's/kernel-\([^0-9]*\)[0-9].*$/\1/' -e s/-//`
+  arch=`echo $rpm | sed 's/.*\.\([^\.]*\)\.rpm$/\1/'`
+
+  kd=$kerndir/$vers$smp-$arch
+  if [ ! -d $kd ] ; then
+    echo "converting `basename $rpm` to $kd"
+    rpm2cpio $rpm | ( cd $kerndir ; cpio --quiet -imd \*lib/modules/\*/build/\* )
+    mv $kerndir/lib/modules/*/build $kd
+    chmod 755 $kd
+    rmdir $kerndir/lib/modules/*
+    rmdir $kerndir/lib/modules
+    rmdir $kerndir/lib
+  else
+    echo "$kd already exists.  Ignoring."
+  fi
+  shift
+done
diff --git a/src/packaging/RedHat/openafs-server.init b/src/packaging/RedHat/openafs-server.init
new file mode 100644 (file)
index 0000000..2f63f8e
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/bash
+#
+# openafs-server       Start/Stop the OpenAFS Server
+#
+# chkconfig: 2345 49 51
+# description: OpenAFS is a distributed filesystem.
+#
+# $Revision$
+
+. /etc/init.d/functions
+[ -f /etc/sysconfig/openafs ] && . /etc/sysconfig/openafs
+
+
+start() {
+       echo -n $"Starting openafs-server: "
+       if [ -e /var/lock/subsys/openafs-server ] ; then
+               echo -n $"cannot start openafs-server: already running"
+               failure $"cannot start openafs-server: already running"
+               echo
+               return 1
+       fi
+       /usr/afs/bin/bosserver $BOSSERVER_ARGS
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/openafs-server
+       return $RETVAL
+}
+
+stop() {
+       echo -n $"Stopping openafs-server: "
+       if [ ! -e /var/lock/subsys/openafs-server ] ; then
+               echo -n $"cannot stop openafs-server: not running"
+               failure $"cannot stop openafs-server: not running"
+               echo
+               return 1
+       fi
+       /usr/bin/bos shutdown localhost -wait -localauth
+       RETVAL=$?
+       if [ $RETVAL -ne 0 ] ; then
+               echo -n $"failed to shutdown OpenAFS"
+               failure $"failed to shutdown OpenAFS"
+               echo
+               return $RETVAL
+       fi
+       killproc bosserver
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/openafs-server
+       return $RETVAL
+}
+
+rhstatus() {
+       status bosserver
+}
+
+restart() {
+       stop || exit
+       start
+}
+
+case "$1" in
+  start)
+        start
+        ;;
+  stop)
+        stop
+        ;;
+  restart)
+        restart
+        ;;
+  status)
+        rhstatus
+        ;;
+  condrestart)
+        [ -f /var/lock/subsys/openafs-server ] && restart || :
+        ;;
+  *)
+        echo $"Usage: $0 {start|stop|status|restart|condrestart}"
+        exit 1
+esac
diff --git a/src/packaging/RedHat/openafs.spec.in b/src/packaging/RedHat/openafs.spec.in
new file mode 100644 (file)
index 0000000..67bb871
--- /dev/null
@@ -0,0 +1,1491 @@
+# Openafs Spec $Revision$
+
+%define afsvers 1.4.2
+%define pkgvers 1.4.2
+%define pkgrel 1
+
+%if %{?osvers:0}%{!?osvers:1}
+%define osvers 1
+%endif
+
+# Determine presence of rpmbuild command line --define arguments used for
+# option specification
+%define kernvers_on_cmdline %{?kernvers:1}%{!?kernvers:0}
+%define build_userspace_on_cmdline %{?build_userspace:1}%{!?build_userspace:0}
+%define build_modules_on_cmdline %{?build_modules:1}%{!?build_modules:0}
+
+# Determine the version of the kernel to build against
+# - automatically select the latest kernel with sources from /lib/modules
+# - note that this can be overridden on the command line
+#
+%if !%{kernvers_on_cmdline}
+%define kernvers %(%{_sourcedir}/openafs-kernel-version.sh)
+%endif
+%define kversis %{_sourcedir}/openafs-kvers-is.sh
+%define kvers %(%{kversis} parsev %{kernvers})
+%define kvers_is_24 %(%{kversis} %{kvers} "2.4")
+%define kvers_is_26 %(%{kversis} %{kvers} "2.6")
+%define ktype %(%{kversis} parset %{kernvers})
+%define kversion %(%{kversis} kvers %{kernvers})
+
+# This is where to look for kernel build include files.  Default
+# is /lib/modules/<kvers>/build, but you can define kbase and
+# kend on the commandline to change that.
+#
+%if %{?kbase:0}%{!?kbase:1}
+%define kbase /lib/modules/
+%endif
+%if %{?kend:0}%{!?kend:1}
+%define kend /build
+%endif
+# Let the buildscript define the ksrcdir directly -- needed for RHEL4
+%if %{?ksrcdir:0}%{!?ksrcdir:1}
+%define ksrcdir %{kbase}%{kernvers}%{kend}
+%endif
+
+%if %{?kmoddir:0}%{!?kmoddir:1}
+%define kmoddir /lib/modules
+%endif
+%define kxmoddir %{kmoddir}/%{kernvers}
+
+# Set 'debugspec' to 1 if you want to debug the spec file.  This will
+# not remove the installed tree as part of the %clean operation
+%if %{?debugspec:0}%{!?debugspec:1}
+%define debugspec 0
+%endif
+
+# Set 'krb5support' to 1 if you want to build the openafs-krb5 package
+# to distribute aklog and asetkey
+%define krb5support %{?_without_krb5:0}%{!?_without_krb5:1}
+
+# Set 'bootkernelsupport' to 1 if you want to build the
+# kernel module for Red Hat BOOT Kernels on x86.
+%define bootkernelsupport %{?_with_bootkernel:1}%{!?_with_bootkernel:0}
+
+# Define the location of your init.d directory
+%define initdir /etc/init.d
+
+# Define the location of the PAM security module directory
+%define pamdir /%{_lib}/security
+
+# Define the set of kernel module variations to be built:
+# For 2.4 kernels we just build everything at once for a particular
+# kernel.   So we build up, smp, and bigmem all at once.
+# For 2.6 kernels we have to build against the specific kernel headers
+# for a particular kernel variation.  AFS will handle the specific smp or
+# non-smp determination.  So just always build as if it's "up" -- the kernel
+# version will have the 'variation' type already in the version #.
+
+%define up_package 0
+%define smp_package 0
+%define bigmem_package 0
+%define hugemem_package 0
+%define largesmp_package 0
+
+#######################################################################
+# 2.4
+%if %{kvers_is_24}
+%define kdepend kernel-source
+%define up_package 1
+%define smp_package 1
+%define largesmp_package 1
+%define smp_ext smp
+%define largesmp_ext largesmp
+
+%define bigmem_package %(%{kversis} find %{ksrcdir} %{_target_cpu} bigmem) 
+%if %{bigmem_package}
+%define bigmem_ext bigmem
+%endif
+
+%define hugemem_package %(%{kversis} find %{ksrcdir} %{_target_cpu} hugemem) 
+%if %{hugemem_package}
+%define hugemem_ext hugemem
+%endif
+
+%define kvariations up smp largesmp %{?bigmem_ext:%{bigmem_ext}} %{?hugemem_ext:%{hugemem_ext}}
+
+#######################################################################
+# 2.6
+%else
+%if %{kvers_is_26}
+%define kvariations up
+%define up_package %(%{kversis} "%{ktype}" "")
+%define smp_package %(%{kversis} "%{ktype}" "smp")
+%define largesmp_package %(%{kversis} "%{ktype}" "largesmp")
+%define hugemem_package %(%{kversis} "%{ktype}" "hugemem")
+
+%if !%{up_package} && !%{smp_package} && !%{hugemem_package} && !%{largesmp_package}
+%error "unknown kernel type: %{ktype}"
+%endif
+
+%if !%{kernvers_on_cmdline}
+%define kdepend %{ksrcdir}/include/linux/version.h
+%endif
+
+#######################################################################
+# other kernels?
+%else
+%error "unknown kernel version: ${kvers} (parsed from %{kernvers})"
+%endif
+%endif
+
+#######################################################################
+# You probably don't need to change anything beyond this line
+# NOTE: If you do, please email me!!!
+
+# Determine which elements of OpenAFS to build.  For non-x86 arches
+# (subject to the ExclusiveArch setting, below), we build both userspace
+# and modules.  For most x86 arches, we build just the kernel modules.  For
+# i386, we build just the userspace.  If you're running an i386 kernel,
+# you'll need to tweak that last bit.
+%if !%{build_userspace_on_cmdline} && !%{build_modules_on_cmdline}
+
+%ifarch x86_64 ia64
+%define build_userspace 1
+%define build_modules 1
+%endif
+
+%ifarch %{ix86}
+%define build_userspace 0
+%define build_modules 1
+%endif
+
+%ifarch i386
+%define build_userspace 1
+%define build_modules 0
+%endif
+
+%endif
+
+# deal with cmdline specification
+%if %{build_userspace_on_cmdline} || %{build_modules_on_cmdline}
+%if !%{build_userspace_on_cmdline}
+%define build_userspace 0
+%endif
+%if !%{build_modules_on_cmdline}
+%define build_modules 0
+%endif
+%endif
+
+# Make sure RPM doesn't complain about installed but non-packaged files.
+#define __check_files  %{nil}
+
+Summary: OpenAFS distributed filesystem
+Name: openafs
+Version: %{pkgvers}
+Release: %{osvers}.%{pkgrel}
+License: IBM Public License
+URL: http://www.openafs.org
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+Packager: Derek Atkins <warlord@MIT.EDU>
+Group: Networking/Filesystems
+BuildRequires: %{?kdepend:%{kdepend}, } pam-devel
+ExclusiveArch: %{ix86} x86_64 ia64
+
+#    http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
+Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
+Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar.bz2
+%define srcdir openafs-%{afsvers}
+
+Source2: openafs-ThisCell
+# http://grand.central.org/dl/cellservdb/CellServDB
+Source3: openafs-CellServDB
+Source4: openafs-SuidCells
+Source5: openafs-cacheinfo
+# Source6: openafs-afsmodname
+Source7: openafs-LICENSE.Sun
+Source8: openafs-README
+Source10: http://www.openafs.org/dl/openafs/%{afsvers}/RELNOTES-%{afsvers}
+Source11: http://www.openafs.org/dl/openafs/%{afsvers}/ChangeLog
+
+Source15: openafs.sysconfig
+Source16: openafs-client.init
+Source17: openafs-server.init
+
+#  from ftp://ftp.cmf.nrl.navy.mil/pub/kerberos5/afs-krb5-2.0.tar.gz
+Source20: openafs-krb5-2.0.tar.gz
+
+Source30: openafs-kernel-version.sh
+Source31: openafs-buildall.sh
+Source32: openafs-makesrc.sh
+Source33: openafs-kvers-is.sh
+
+Patch0:  openafs-1.4.0-kmodule26.patch
+#Patch1:  openafs-1.4.1-moduleparam.patch
+
+Patch10: afs-krb5-2.0-krb524.patch
+Patch11: afs-krb5-2.0-libsocket.patch
+Patch12: afs-krb5-2.0-com_err.patch
+Patch13: afs-krb5-2.0-openafs1.3.patch
+Patch14: afs-krb5-2.0-res_search.patch
+
+%description
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides common files shared across all the various
+OpenAFS packages but are not necessarily tied to a client or server.
+
+The OpenAFS SRPM can be rebuilt with the following options to control
+what gets built:
+
+ --define "kernvers 2.4.20-1.1376_FC3" Specify the specific kernel version 
+                                  to build modules against. The default is
+                                  to build against the currently-running
+                                  kernel.
+ --define "kbase /lib/modules/"   The base location to look for kernel headers
+ --define "kend /build"           The 'end' location to look for kernels
+                                  The build will define ksrvdir as
+                                  %%{kbase}<kernvers>%%{kend}
+
+ --without krb5                   Disable krb5 support (default: with krb5)
+ --with bitmap-later              Enable "bitmap later" support
+ --with bos-restricted            Enable "bos restricted" mode
+ --with fast-restart              Enable "fast restart" mode
+ --with largefiles                Enable "largefile fileserver" mode
+ --with supergroups               Enable "supergroups"
+
+ --target=i386                    The target architecture to build for.
+                                  When building for a non-default target
+                                  the build may choose whether to build
+                                  userspace or kernel modules automatically.
+                                  The defaults are probably what you want.
+
+ --define "build_userspace 1"     Request building of userspace tools
+ --define "build_modules 1"       Request building of kernel modules
+                                  You probably never need to specify these.
+
+ --define "kmoddir /lib/modules"  This is the base location where modules
+                                  will be installed.  You probably don't
+                                  need to change this ever.
+
+To a kernel module for your running kernel, just run:
+  rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{osvers}.%{pkgrel}.src.rpm
+
+##############################################################################
+#
+# build the userspace side of things if so requested
+#
+##############################################################################
+%if %{build_userspace}
+
+%package client
+Requires: binutils, openafs-kernel, openafs = %{PACKAGE_VERSION}
+Summary: OpenAFS Filesystem Client
+Group: Networking/Filesystem
+
+%description client
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides basic client support to mount and manipulate
+AFS.
+
+%package server
+Requires: openafs = %{PACKAGE_VERSION}
+Summary: OpenAFS Filesystem Server
+Group: Networking/Filesystems
+
+%description server
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides basic server support to host files in an AFS
+Cell.
+
+%package authlibs
+Summary: OpenAFS authentication shared libraries
+Group: Networking/Filesystems
+
+%description authlibs
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides a shared version of libafsrpc and libafsauthent. 
+None of the programs included with OpenAFS currently use these shared 
+libraries; however, third-party software that wishes to perform AFS 
+authentication may link against them.
+
+%package authlibs-devel
+Requires: openafs-authlibs = %{PACKAGE_VERSION}
+Requires: openafs-devel = %{PACKAGE_VERSION}
+Summary: OpenAFS shared library development
+Group: Development/Filesystems
+
+%description authlibs-devel
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package includes the static versions of libafsrpc and 
+libafsauthent, and symlinks required for building against the dynamic 
+libraries.
+
+%package devel
+Summary: OpenAFS Development Libraries and Headers
+Group: Development/Filesystems
+
+%description devel
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides static development libraries and headers needed
+to compile AFS applications.  Note: AFS currently does not provide
+shared libraries.
+
+%package docs
+Summary: OpenAFS user and administrator documentation
+Requires: openafs = %{PACKAGE_VERSION}
+Group: Networking/Filesystems
+
+%description docs
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides HTML documentation for OpenAFS users and system
+administrators.
+
+%package kernel-source
+Summary: OpenAFS Kernel Module source tree
+Group: Networking/Filesystems
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+
+%description kernel-source
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides the source code to build your own AFS kernel
+module.
+
+%package compat
+Summary: OpenAFS client compatibility symlinks
+Requires: openafs = %{PACKAGE_VERSION}, openafs-client = %{PACKAGE_VERSION}
+Group: Networking/Filesystems
+Obsoletes: openafs-client-compat
+
+%description compat
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides compatibility symlinks in /usr/afsws.  It is
+completely optional, and is only necessary to support legacy
+applications and scripts that hard-code the location of AFS client
+programs.
+
+%package kpasswd
+Summary: OpenAFS KA kpasswd support
+Requires: openafs
+Group: Networking/Filesystems
+
+%description kpasswd
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides the compatibility symlink for kpasswd, in case
+you are using KAserver instead of Krb5.
+
+%if %{krb5support}
+%package krb5
+Summary: OpenAFS programs to use with krb5
+Requires: openafs = %{PACKAGE_VERSION}
+Group: Networking/Filesystems
+BuildRequires: krb5-devel
+
+%description krb5
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides compatibility programs so you can use krb5
+to authenticate to AFS services, instead of using AFS's homegrown
+krb4 lookalike services.
+%endif
+
+%endif
+
+##############################################################################
+#
+# build the kernel modules if so requested
+#
+##############################################################################
+%if %{build_modules}
+
+%define modkversion %(echo %{kernvers} | cut -d- -f1)
+%define modkrelease %(echo %{kernvers} | cut -d- -f2)
+%define modpkgrel %{modkversion}_%{modkrelease}_%{pkgrel}
+
+%if %{up_package}
+%package kernel
+Summary: OpenAFS Kernel Module (compiled for UP)
+Release: %{modpkgrel}
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+Requires: kernel = %{kversion}
+Group: Networking/Filesystems
+
+%description kernel
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides a precompiled AFS kernel module for %{kernvers}.
+%endif
+
+%if %{smp_package}
+%package kernel-smp
+Summary: OpenAFS Kernel Module (compiled for SMP)
+Release: %{modpkgrel}
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+Requires: kernel-smp = %{kversion}
+Group: Networking/Filesystems
+
+%description kernel-smp
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides a precompiled AFS kernel module for %{kernvers}.
+%endif
+
+%if %{largesmp_package}
+%package kernel-largesmp
+Summary: OpenAFS Kernel Module (compiled for LARGESMP)
+Release: %{modpkgrel}
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+Requires: kernel-largesmp = %{kversion}
+Group: Networking/Filesystems
+
+%description kernel-largesmp
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides a precompiled AFS kernel module for %{kernvers}.
+%endif
+%if %{bigmem_package}
+%package kernel-bigmem
+Summary: OpenAFS Kernel Module (compiled for SMP & big memory support)
+Release: %{modpkgrel}
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+Requires: kernel-bigmem = %{kversion}
+Group: Networking/Filesystems
+
+%description kernel-bigmem
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides a precompiled AFS kernel module for %{kernvers}.
+%endif
+
+%if %{hugemem_package}
+%package kernel-hugemem
+Summary: OpenAFS Kernel Module (compiled for SMP & huge memory support)
+Release: %{modpkgrel}
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+Requires: kernel-hugemem = %{kversion}
+Group: Networking/Filesystems
+
+%description kernel-hugemem
+The AFS distributed filesystem.  AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides a precompiled AFS kernel module for %{kernvers}.
+%endif
+
+%endif
+
+##############################################################################
+#
+# PREP
+#
+##############################################################################
+
+%prep
+
+: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+: @@@
+: @@@ kernel version:     %{kernvers}
+: @@@ base kernel version:%{kversion}
+: @@@ kernel modules dir: %{kxmoddir}
+: @@@ kernel source dir:  %{ksrcdir}
+%if %{kvers_is_24}
+: @@@ kernel variations:  %{kvariations}
+%else
+%if %{up_package}
+: @@@ kernel type:        up
+%else
+: @@@ kernel type:        %{ktype}
+%endif
+%endif
+: @@@ PAM modules dir:    %{pamdir}
+: @@@ build userspace:    %{build_userspace}
+: @@@ build modules:      %{build_modules}
+: @@@ arch:               %{_arch}
+: @@@ target cpu:         %{_target_cpu}
+: @@@
+: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+# Install OpenAFS src and doc
+#%setup -q -n %{srcdir}
+%setup -q -b 1 -n %{srcdir}
+
+# Patch openafs to build a kernel module named "openafs" instead of "libafs"
+%patch0 -p1 -b .kmod26
+
+# Patch to work around the Linux 2.6.9 module_param function
+#%patch1 -p0 -b .modparam
+
+%if %{build_userspace}
+# Save some time -- install these if we're building userspace
+
+# Install the Krb5 Migration Kit
+%setup -q -T -D -a 20 -n %{srcdir}
+
+#
+# patch afs-krb5 migration kit to work with openafs-1.3 and krb5-1.3;
+# add some features and fix bugs
+#
+
+# krb524 is no longer in a separate library as of krb5-1.3; handle this
+%patch10 -p0 -b .krb524
+
+# make sure NETLIBS gets added to the proper programs (seems to be 
+# needed only for Solaris)
+%patch11 -p0 -b .libsocket
+
+# find an existing libcom_err and use that
+%patch12 -p0 -b .com_err
+
+# make afs-krb5 work with recent OpenAFS; includes and prototypes
+%patch13 -p0 -b .openafs13
+
+# nothing in afs-krb5 actually uses res_search
+%patch14 -p0 -b .res_search
+
+(cd afs-krb5/src && autoreconf) || exit 1
+
+%endif
+
+
+##############################################################################
+#
+# building
+#
+##############################################################################
+%build
+
+case %{kernvers} in
+   2.4.*)
+       kv='24'
+       ;;
+   2.6.*)
+       kv='26'
+       ;;
+   *)
+       echo "I don't know how to build linux-`expr ${kernvers} : \(^[0-9]*[.][0-9]*\)`"
+       exit 1
+       ;;
+esac
+
+case %{_arch} in
+       x86_64)                         sysname=amd64_linux${kv}        ;;
+       alpha*)                         sysname=alpha_linux_${kv}       ;;
+       i386|i486|i586|i686|athlon)     sysname=i386_linux${kv}         ;;
+       *)                              sysname=%{_arch}_linux${kv}     ;;
+esac
+
+%ifarch %{ix86}
+archlist="i386 i586 i686 athlon"
+%if %{bootkernelsupport}
+  archlist="${archlist} BOOT"
+%endif
+%else
+archlist=%{_arch}
+%endif
+
+#
+# PrintDefine var value statements file
+#
+PrintDefine() {
+    case $3 in
+    *ifn*)
+       echo "#ifndef $1" >> $4
+       ;;
+    esac
+    case $3 in
+    *und*)
+       echo "#undef $1" >> $4
+       ;;
+    esac
+    case $3 in
+    *def*)
+       echo "#define $1 $2" >> $4
+       ;;
+    esac
+    case $3 in
+    *end*)
+       echo "#endif" >> $4
+       ;;
+    esac
+    case $3 in
+    *inc*)
+       echo "#include $1" >> $4
+       ;;
+    esac
+    case $3 in
+    *nl*)
+       echo "" >> $4
+       ;;
+    esac
+}
+
+# PrintRedhatKernelFix arch mp file
+PrintRedhatKernelFix() {
+    arch="$1"
+    up=0
+    smp=0
+    largesmp=0
+    ent=0
+    bigmem=0
+    hugemem=0
+    boot=0
+    bootsmp=0
+
+    case "$2" in
+       up)     up=1;;
+       smp)    smp=1;;
+       largesmp) largesmp=1;;
+       bigmem) bigmem=1;;
+       hugemem) hugemem=1;;
+       *)
+               echo "$2 not supported"
+               exit 2;;
+    esac
+
+    file="$3"
+
+    rm -f $file
+    touch $file
+
+    PrintDefine "REDHAT_FIX_H" "" ifn,def,nl $file
+
+    PrintDefine __BOOT_KERNEL_ENTERPRISE $ent     und,def,nl $file
+    PrintDefine __BOOT_KERNEL_BIGMEM     $bigmem  und,def,nl $file
+    PrintDefine __BOOT_KERNEL_HUGEMEM    $hugemem und,def,nl $file
+    PrintDefine __BOOT_KERNEL_SMP        $smp     und,def,nl $file
+    PrintDefine __BOOT_KERNEL_LARGESMP   $largesmp und,def,nl $file
+    PrintDefine __BOOT_KERNEL_UP         $up      und,def,nl $file
+    PrintDefine __BOOT_KERNEL_BOOT       $boot    und,def,nl $file
+    PrintDefine __BOOT_KERNEL_BOOTSMP    $bootsmp und,def,nl $file
+
+    PrintDefine '"/boot/kernel.h"' "" inc,nl $file     # include file
+
+    for ar in $archlist ; do
+       if [ "$ar" = "$arch" ]; then
+           PrintDefine "__MODULE_KERNEL_$ar" "1" ifn,def,end $file
+       else
+           PrintDefine "__MODULE_KERNEL_$ar" "" und $file      # undef
+        fi
+    done
+    echo "" >> $file
+
+    PrintDefine "" "" end $file
+
+    if [ %{debugspec} = 1 ] ; then
+       echo "Kernel Configuration File for Red Hat kernels:"
+       cat $file
+    fi
+}
+
+config_opts="--enable-redhat-buildsys \
+       %{?_with_bitmap_later:--enable-bitmap-later} \
+       %{?_with_bos_restricted:--enable-bos-restricted-mode} \
+       %{?_with_fast_restart:--enable-fast-restart} \
+       %{?_with_largefiles:--enable-largefile-fileserver} \
+       %{?_with_supergroups:--enable-supergroups} \
+       --enable-transarc-paths"
+
+# Configure AFS
+
+CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
+
+./configure --with-afs-sysname=${sysname} \
+       --prefix=%{_prefix} \
+       --libdir=%{_libdir} \
+       --bindir=%{_bindir} \
+       --sbindir=%{_sbindir} \
+       --with-linux-kernel-headers=%{ksrcdir} \
+%if %{krb5support}
+       --with-krb5-conf \
+%endif
+       $config_opts \
+       || exit 1
+
+%if %{build_userspace}
+# Build the user-space AFS stuff
+make dest_nolibafs || exit 1
+
+# Build the libafs tree
+make only_libafs_tree || exit 1
+
+%if %{krb5support}
+# Now build ka-forwarder
+(cd afs-krb5/src &&
+       ./configure --prefix=%{_prefix} --with-krb5=%{_prefix}/kerberos \
+               --libdir=%{_libdir} \
+               --bindir=%{_bindir} \
+               --sbindir=%{_sbindir} \
+               --with-afs=`pwd`/../../${sysname}/dest/ && \
+       make all PROGS="ka-forwarder" && \
+       install -c -s ka-forwarder `pwd`/../../${sysname}/dest/etc ) \
+       || exit 1
+%endif
+
+%endif
+
+%if %{build_modules}
+%if %{kvers_is_24}
+# Build all the kernel modules for linux 2.4.x
+for variation in %{kvariations}
+do
+    if [ ${variation} = up ]
+    then
+       local_smp_def=-DREDHAT_FIX
+       suffix=
+    else
+       local_smp_def="-DAFS_SMP -DREDHAT_FIX"
+       suffix=${variation}
+    fi
+
+    PrintRedhatKernelFix %{_target_cpu} $variation src/config/redhat-fix.h
+    make dest_only_libafs LOCAL_SMP_DEF="${local_smp_def}" \
+       LINUX_MODULE_NAME="${suffix}" MPS=SP
+
+done
+rm -f src/config/redhat-fix.h
+
+%elseif %{kvers_is_26}
+# Build the kernel module for this version of linux 2.6.x
+# Notice how much easier this is than 2.4.  On the other hand,
+# we require much more external support to build multiple modules.
+
+  # the MPS=SP just means that we don't add a '.mp' to the name.
+  make dest_only_libafs MPS=SP
+
+%endif
+%endif
+
+
+##############################################################################
+#
+# installation
+#
+##############################################################################
+%install
+
+export DONT_GPRINTIFY=1
+
+[ $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT
+
+case %{kernvers} in
+   2.4.*)
+       kv='24'
+       kmodend=.o
+       ;;
+   2.6.*)
+       kv='26'
+       kmodend=.ko
+       ;;
+   *)
+       echo "I don't know how to build linux-`expr ${kernvers} : \(^[0-9]*[.][0-9]*\)`"
+       exit 1
+       ;;
+esac
+
+case %{_arch} in
+       x86_64)                         sysname=amd64_linux${kv}        ;;
+       alpha*)                         sysname=alpha_linux_${kv}       ;;
+       i386|i486|i586|i686|athlon)     sysname=i386_linux${kv}         ;;
+       *)                              sysname=%{_arch}_linux${kv}     ;;
+esac
+
+# Build install tree
+%if %{build_userspace}
+mkdir -p $RPM_BUILD_ROOT%{_sbindir}
+mkdir -p $RPM_BUILD_ROOT%{_libdir}
+mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
+mkdir -p $RPM_BUILD_ROOT%{initdir}
+mkdir -p $RPM_BUILD_ROOT/etc/openafs
+mkdir -p $RPM_BUILD_ROOT%{pamdir}
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/etc
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/logs
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/etc
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/cache
+chmod 700 $RPM_BUILD_ROOT%{_prefix}/vice/cache
+mkdir -p $RPM_BUILD_ROOT%{_mandir}
+
+# Copy files from dest to the appropriate places in BuildRoot
+tar cf - -C ${sysname}/dest bin include | tar xf - -C $RPM_BUILD_ROOT%{_prefix}
+tar cf - -C ${sysname}/dest/lib . | tar xf - -C $RPM_BUILD_ROOT%{_libdir}
+tar cf - -C ${sysname}/dest/etc . | tar xf - -C $RPM_BUILD_ROOT%{_sbindir}
+tar cf - -C ${sysname}/dest/root.server%{_prefix}/afs bin | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/afs
+tar cf - -C ${sysname}/dest/root.client%{_prefix}/vice/etc afsd | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/vice/etc
+
+# Link kpasswd to kapasswd
+ln -f $RPM_BUILD_ROOT%{_bindir}/kpasswd $RPM_BUILD_ROOT%{_bindir}/kapasswd
+
+# Copy root.client config files
+install -m 755 %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/openafs
+install -m 755 %{SOURCE16} $RPM_BUILD_ROOT%{initdir}/openafs-client
+install -m 755 %{SOURCE17} $RPM_BUILD_ROOT%{initdir}/openafs-server
+
+# Copy PAM modules
+install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT%{pamdir}
+
+# PAM symlinks
+ln -sf pam_afs.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.so
+ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.krb.so
+
+# Populate /usr/vice/etc
+uve=$RPM_BUILD_ROOT%{_prefix}/vice/etc
+install -p -m 644 %{SOURCE2} $uve/ThisCell
+install -p -m 644 %{SOURCE3} $uve/CellServDB
+install -p -m 644 %{SOURCE4} $uve/SuidCells
+install -p -m 644 %{SOURCE5} $uve/cacheinfo
+
+#
+# install kernel-source
+#
+
+# Install the kernel module source tree
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
+tar cf - -C libafs_tree . | \
+       tar xf - -C $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
+
+# Next, copy the LICENSE Files, README
+install -m 644 src/LICENSE $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
+install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
+install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/README
+
+#
+# Install DOCUMENTATION
+#
+
+# Build the DOC directory
+mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+tar cf - -C doc LICENSE html pdf | \
+    tar xf - -C $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+install -m 644 %{SOURCE11} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+
+#
+# man pages
+#
+tar cf - -C doc/man-pages man1 man5 man8 | \
+    tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+
+# Copy the uninstalled krb5 files (or delete the unused krb5 files)
+%if %{krb5support}
+mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/asetkey $RPM_BUILD_ROOT%{_sbindir}/asetkey
+%else
+rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.*
+%endif
+
+# remove unused man pages
+for x in afs_ftpd afs_inetd afs_login afs_rcp afs_rlogind afs_rsh \
+    dkload knfs package runntp; do
+       rm -f $RPM_BUILD_ROOT%{_mandir}/man1/${x}.1
+done
+
+# rename kpasswd to kapasswd
+mv $RPM_BUILD_ROOT%{_mandir}/man1/kpasswd.1 $RPM_BUILD_ROOT%{_mandir}/man1/kapasswd.1
+
+# gzip man pages
+gzip -9 $RPM_BUILD_ROOT%{_mandir}/man*/*
+
+# create list of man pages that go in the 'openafs' package
+/bin/ls $RPM_BUILD_ROOT%{_mandir}/man1 \
+       |egrep '^afs|^fs|^kas|^klog|kapasswd|pagsh|^pts|^rxdebug|scout|^sys|tokens|translate|udebug|unlog|^uss|^vos' \
+       >openafs-man1files
+
+/bin/ls $RPM_BUILD_ROOT%{_mandir}/man5 \
+       |egrep 'CellServDB|ThisCell|afsmonitor|^butc|^uss' \
+       >openafs-man5files
+
+/bin/ls $RPM_BUILD_ROOT%{_mandir}/man8 \
+       |egrep '^backup|^bos|^butc|^fms|^fstrace|^kas|^uss' \
+       >openafs-man8files
+
+#
+# create filelist
+#
+grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
+%{_bindir}/afsmonitor
+%{_bindir}/bos
+%{_bindir}/fs
+%{_bindir}/kapasswd
+%{_bindir}/kpasswd
+%{_bindir}/klog
+%{_bindir}/klog.krb
+%{_bindir}/pagsh
+%{_bindir}/pagsh.krb
+%{_bindir}/pts
+%{_bindir}/scout
+%{_bindir}/sys
+%{_bindir}/tokens
+%{_bindir}/tokens.krb
+%{_bindir}/translate_et
+%{_bindir}/udebug
+%{_bindir}/unlog
+%{_sbindir}/backup
+%{_sbindir}/butc
+%{_sbindir}/copyauth
+%{_sbindir}/fms
+%{_sbindir}/fstrace
+%{_sbindir}/kas
+%{_sbindir}/kseal
+%{_sbindir}/read_tape
+%{_sbindir}/restorevol
+%{_sbindir}/rxdebug
+%{_sbindir}/uss
+%{_sbindir}/vos
+%{_sbindir}/vsys
+EOF-openafs-file-list
+
+# add man pages to the list
+cat openafs-man1files \
+       | ( while read x; do echo "%{_mandir}/man1/$x"; done ) \
+       >>openafs-file-list
+cat openafs-man5files \
+       | ( while read x; do echo "%{_mandir}/man5/$x"; done ) \
+       >>openafs-file-list
+cat openafs-man8files \
+       | ( while read x; do echo "%{_mandir}/man8/$x"; done ) \
+       >>openafs-file-list
+
+#
+# Install compatiblity links
+#
+for d in bin:bin etc:sbin; do
+  olddir=`echo $d | sed 's/:.*$//'`
+  newdir=`echo $d | sed 's/^.*://'`
+  mkdir -p $RPM_BUILD_ROOT%{_prefix}/afsws/$olddir
+  for f in `cat openafs-file-list`; do
+    if echo $f | grep -q /$newdir/; then
+      fb=`basename $f`
+      ln -sf %{_prefix}/$newdir/$fb $RPM_BUILD_ROOT%{_prefix}/afsws/$olddir/$fb
+    fi
+  done
+done
+
+#
+# Remove files we're not installing
+#
+
+# remove duplicated files from /usr/afs/bin
+for f in bos fs kas klog klog.krb kpwvalid pts tokens tokens.krb udebug vos ; do
+  rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/$f
+done
+
+# compile_et is duplicated in e2fsprogs
+# the rest are not needed.
+for f in compile_et dlog dpass install knfs livesys xstat_cm_test xstat_fs_test ; do
+  rm -f $RPM_BUILD_ROOT%{_bindir}/$f
+done
+
+# not supported on Linux or duplicated
+for f in kdb rmtsysd kpwvalid ; do
+  rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
+done
+rm -f $RPM_BUILD_ROOT%{_sbindir}/kdump*
+
+# remove man pages from programs deleted above
+for f in 1/dlog 1/dpass 1/livesys 1/xstat_cm_test 1/xstat_fs_test 8/kdb 8/kpwvalid 8/xfs_size_check 1/package_test 5/package 8/package ; do
+  rm -f $RPM_BUILD_ROOT%{_mandir}/man$f.*
+done
+
+# PAM modules are doubly-installed  Remove the version we don't need
+for f in pam_afs.krb.so.1 pam_afs.so.1 ; do
+  rm -f $RPM_BUILD_ROOT%{_libdir}/$f
+done
+
+# Remove empty files from the krb5 migration
+for f in afs2k5db fakeka ; do
+  rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
+done
+
+%endif
+
+%if %{build_modules}
+# Install the kernel modules
+for variation in %{kvariations}
+do
+    if [ ${variation} = up ]
+    then
+       kvar=%{kxmoddir}
+       modname=libafs-%{kernvers}${kmodend}
+    else
+       kvar=%{kxmoddir}${variation}
+       modname=libafs-%{kernvers}${variation}${kmodend}
+    fi
+
+    srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
+    dstdir=$RPM_BUILD_ROOT${kvar}/kernel/fs/openafs
+
+    mkdir -p ${dstdir}
+
+    # Mark kernel modules as executable; otherwise they won't get stripped 
+    # by /usr/lib/rpm/brp-strip
+    install -m 744 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
+done
+%endif
+
+##############################################################################
+###
+### clean
+###
+##############################################################################
+%clean
+rm -f openafs-file-list
+[ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
+       rm -fr $RPM_BUILD_ROOT
+
+
+##############################################################################
+###
+### scripts
+###
+##############################################################################
+%if %{build_userspace}
+
+%pre compat
+if [ -e %{_prefix}/afsws ]; then
+        /bin/rm -fr %{_prefix}/afsws
+fi
+
+%post client
+chkconfig --add openafs-client
+if [ ! -d /afs ]; then
+       mkdir /afs
+       chown root.root /afs
+       chmod 0755 /afs
+fi
+
+echo
+echo The AFS cache is configured for 100 MB. Edit the
+echo /usr/vice/etc/cacheinfo file to change this before
+echo running AFS for the first time. You should also
+echo set your home cell in /usr/vice/etc/ThisCell.
+echo
+echo Also, you may want to edit /etc/pam.d/login and
+echo possibly others there to get an AFS token on login.
+echo Put the line:
+echo 
+echo    auth      sufficient   %{pamdir}/pam_afs.so try_first_pass ignore_root
+echo
+echo before the one for pwdb.
+echo
+
+%post server
+chkconfig --add openafs-server
+%{initdir}/openafs-server condrestart
+
+%post authlibs
+/sbin/ldconfig
+
+%postun authlibs
+/sbin/ldconfig
+
+%preun
+if [ $1 = 0 ] ; then
+       [ -d /afs ] && rmdir /afs
+fi
+
+%preun client
+if [ $1 = 0 ] ; then
+        %{initdir}/openafs-client stop
+        chkconfig --del openafs-client
+fi
+
+%preun server
+if [ $1 = 0 ] ; then
+        %{initdir}/openafs-server stop
+        chkconfig --del openafs-server
+fi
+
+%endif
+
+%if %{build_modules}
+
+%if %{up_package}
+%post kernel
+/sbin/depmod -ae %{kernvers}
+
+%postun kernel
+/sbin/depmod -ae %{kernvers}
+
+%endif
+
+%if %{smp_package}
+%post kernel-smp
+/sbin/depmod -ae %{kernvers}%{?smp_ext:%{smp_ext}}
+
+%postun kernel-smp
+/sbin/depmod -ae %{kernvers}%{?smp_ext:%{smp_ext}}
+%endif
+
+%if %{largesmp_package}
+%post kernel-largesmp
+/sbin/depmod -ae %{kernvers}%{?largesmp_ext:%{largesmp_ext}}
+
+%postun kernel-largesmp
+/sbin/depmod -ae %{kernvers}%{?largesmp_ext:%{largesmp_ext}}
+%endif
+%if %{bigmem_package}
+%post kernel-bigmem
+/sbin/depmod -ae %{kernvers}%{?bigmem_ext:%{bigmem_ext}}
+
+%postun kernel-bigmem
+/sbin/depmod -ae %{kernvers}%{?bigmem_ext:%{bigmem_ext}}
+%endif
+
+%if %{hugemem_package}
+%post kernel-hugemem
+/sbin/depmod -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
+
+%postun kernel-hugemem
+/sbin/depmod -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
+%endif
+
+%endif
+
+
+##############################################################################
+###
+### file lists
+###
+##############################################################################
+%if %{build_userspace}
+
+%files -f openafs-file-list
+%defattr(-,root,root)
+%config /etc/sysconfig/openafs
+%doc %{_docdir}/openafs-%{afsvers}/LICENSE
+
+%files docs
+%defattr(-,root,root)
+%doc %{_docdir}/openafs-%{afsvers}
+
+%files client
+%defattr(-,root,root)
+%dir %{_prefix}/vice
+%dir %{_prefix}/vice/cache
+%dir %{_prefix}/vice/etc
+%config %{_prefix}/vice/etc/CellServDB
+%config %{_prefix}/vice/etc/SuidCells
+%config %{_prefix}/vice/etc/ThisCell
+%config %{_prefix}/vice/etc/cacheinfo
+%{_bindir}/cmdebug
+%{_bindir}/up
+%{_prefix}/vice/etc/afsd
+%{pamdir}/pam_afs.krb.so.1
+%{pamdir}/pam_afs.krb.so
+%{pamdir}/pam_afs.so.1
+%{pamdir}/pam_afs.so
+%{initdir}/openafs-client
+%{_mandir}/man1/cmdebug.*
+%{_mandir}/man1/up.*
+%{_mandir}/man5/afs*
+%{_mandir}/man5/cacheinfo.*
+%{_mandir}/man8/afsd.*
+
+%files server
+%defattr(-,root,root)
+%dir %{_prefix}/afs
+%dir %{_prefix}/afs/bin
+%dir %{_prefix}/afs/etc
+%dir %{_prefix}/afs/logs
+%{_prefix}/afs/bin/bosserver
+%{_prefix}/afs/bin/bos_util
+%{_prefix}/afs/bin/buserver
+%{_prefix}/afs/bin/fileserver
+# Should we support KAServer?
+%{_prefix}/afs/bin/kaserver
+%{_prefix}/afs/bin/pt_util
+%{_prefix}/afs/bin/ptserver
+%{_prefix}/afs/bin/salvager
+%{_prefix}/afs/bin/upclient
+%{_prefix}/afs/bin/upserver
+%{_prefix}/afs/bin/vlserver
+%{_prefix}/afs/bin/volinfo
+%{_prefix}/afs/bin/volserver
+%{_sbindir}/kadb_check
+%{_sbindir}/prdb_check
+%{_sbindir}/vldb_check
+%{_sbindir}/vldb_convert
+%{_sbindir}/voldump
+%{initdir}/openafs-server
+%{_mandir}/man5/AuthLog.*
+%{_mandir}/man5/BackupLog.*
+%{_mandir}/man5/BosConfig.*
+%{_mandir}/man5/BosLog.*
+%{_mandir}/man5/FORCESALVAGE.*
+%{_mandir}/man5/FileLog.*
+%{_mandir}/man5/KeyFile.*
+%{_mandir}/man5/NetInfo.*
+%{_mandir}/man5/NetRestrict.*
+%{_mandir}/man5/NoAuth.*
+%{_mandir}/man5/SALVAGE.fs.*
+%{_mandir}/man5/SalvageLog.*
+%{_mandir}/man5/sysid.*
+%{_mandir}/man5/UserList.*
+%{_mandir}/man5/VLLog.*
+%{_mandir}/man5/VolserLog.*
+%{_mandir}/man5/bdb.DB0.*
+%{_mandir}/man5/fms.log.*
+%{_mandir}/man5/kaserver.DB0.*
+%{_mandir}/man5/kaserverauxdb.*
+%{_mandir}/man5/prdb.DB0.*
+%{_mandir}/man5/salvage.lock.*
+%{_mandir}/man5/tapeconfig.*
+%{_mandir}/man5/vldb.DB0.*
+%{_mandir}/man8/buserver.*
+%{_mandir}/man8/fileserver.*
+%{_mandir}/man8/kadb_check.*
+%{_mandir}/man8/prdb_check.*
+%{_mandir}/man8/ptserver.*
+%{_mandir}/man8/salvager.*
+%{_mandir}/man8/upclient.*
+%{_mandir}/man8/upserver.*
+%{_mandir}/man8/vldb_check.*
+%{_mandir}/man8/vlserver.*
+%{_mandir}/man8/voldump.*
+%{_mandir}/man8/volinfo.*
+%{_mandir}/man8/volserver.*
+#%{_mandir}/man8/vldb_convert.*
+
+%files authlibs
+%defattr(-,root,root)
+%{_libdir}/libafsauthent.so.*
+%{_libdir}/libafsrpc.so.*
+
+%files authlibs-devel
+%defattr(-,root,root)
+%{_libdir}/libafsauthent.a
+%{_libdir}/libafsauthent.so
+%{_libdir}/libafsrpc.a
+%{_libdir}/libafsrpc.so
+
+%files devel
+%defattr(-,root,root)
+%{_bindir}/rxgen
+%{_includedir}/afs
+%{_includedir}/des.h
+%{_includedir}/des_conf.h
+%{_includedir}/des_odd.h
+%{_includedir}/des_prototypes.h
+%{_includedir}/lock.h
+%{_includedir}/lwp.h
+%{_includedir}/mit-cpyright.h
+%{_includedir}/potpourri.h
+%{_includedir}/preempt.h
+%{_includedir}/rx
+%{_includedir}/timer.h
+%{_includedir}/ubik.h
+%{_includedir}/ubik_int.h
+%{_libdir}/afs
+%{_libdir}/libdes.a
+%{_libdir}/liblwp.a
+%{_libdir}/librx.a
+%{_libdir}/librxkad.a
+%{_libdir}/librxstat.a
+%{_libdir}/libubik.a
+%{_mandir}/man1/rxgen.*
+
+%files kernel-source
+%defattr(-,root,root)
+%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
+%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
+%{_prefix}/src/openafs-kernel-%{afsvers}/README
+%{_prefix}/src/openafs-kernel-%{afsvers}/src
+
+%files compat
+%defattr(-,root,root)
+%{_prefix}/afsws
+
+%files kpasswd
+%defattr(-,root,root)
+%{_bindir}/kpasswd
+%{_bindir}/kpwvalid
+
+%if %{krb5support}
+%files krb5
+%defattr(-,root,root)
+%{_bindir}/aklog
+%{_sbindir}/asetkey
+%{_sbindir}/ka-forwarder
+%{_mandir}/man1/aklog.*
+%{_mandir}/man8/asetkey.*
+%endif
+
+%endif
+
+%if %{build_modules}
+
+%if %{up_package}
+%files kernel
+%defattr(-,root,root)
+%{kxmoddir}/kernel/fs/openafs/openafs.*
+%endif
+
+%if %{smp_package}
+%files kernel-smp
+%defattr(-,root,root)
+%{kxmoddir}%{?smp_ext:%{smp_ext}}/kernel/fs/openafs/openafs.*
+%endif
+
+%if %{largesmp_package}
+%files kernel-largesmp
+%defattr(-,root,root)
+%{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/kernel/fs/openafs/openafs.*
+%endif
+%if %{bigmem_package}
+%files kernel-bigmem
+%defattr(-,root,root)
+%{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/kernel/fs/openafs/openafs.*
+%endif
+
+%if %{hugemem_package}
+%files kernel-hugemem
+%defattr(-,root,root)
+%{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/kernel/fs/openafs/openafs.*
+%endif
+
+%endif
+
+##############################################################################
+###
+### openafs.spec change log
+###
+##############################################################################
+%changelog
+* Sun Aug 20 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
+- update to 1.4.2
+- use installed aklog manpage.
+- moduleparam patch obsoleted.
+
+* Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
+- fix the module_param_array macro for Linux 2.6.9.
+
+* Sat Apr 15 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-1
+- update to 1.4.1 release.
+- distribute asetkey from openafs instead of krb5-migration kit
+- don't need to apply the FC5 patches because they are part of the distro.
+- install asetkey into the "proper" place
+- dont list a manpage twice.
+- package asetkey man page.  delete it when not needed.
+
+* Thu Apr  6 2006  Derek Atkins <warlord@MIT.EDU>
+- turn authlibs back on, because RT #18767 was applied to CVS.
+
+* Wed Mar 29 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1rc10-1
+- update to 1.4.1rc10, build on FC5
+- fix the man pages (distribute into various packages)
+- include patches for FC5, RT #29112 and #29122
+
+* Mon Dec 19 2005  Derek Atkins <warlord@MIT.EDU>
+- openafs-server shouldn't depend on the kernel module.
+
+* Thu Nov 17 2005  Derek Atkins <warlord@MIT.EDU>
+- patch from Mike Polek <mike at pictage.com> to run depmod for
+  the target kernel and not the running kernel.
+
+* Tue Nov  8 2005  Derek Atkins <warlord@MIT.EDU>
+- build aklog from the openafs sources, not from the krb5 migration kit.
+
+* Fri Nov  4 2005  Derek Atkins <warlord@MIT.EDU>
+- set openafs-kernel-source to Provide openafs-kernel
+
+* Thu Oct 20 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0-1
+- update afs-krb5 res_search patch: look for res_search and __res_search
+- update to 1.4.0 final
+
+* Mon Oct 10 2005  Derek Atkins <warlord@MIT.EDU>
+- remove all kdump builds.
+
+* Thu Oct  6 2005  Derek Atkins <warlord@MIT.EDU>
+- fix openafs-kernel-version.sh so it will build an RPM for the
+  currently-running kernel even if it's smp on 2.6.
+
+* Tue Sep 27 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc5-1
+- upgrade to 1.4.0rc5
+- turn off authlibs packages
+
+* Fri Sep 23 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-2
+- add kmodule26 patch: fix the kernel module name on 2.6 kernels so
+  it's called "openafs" and not "libafs".  This fixes the shutdown
+  problem.
+
+* Thu Sep 22 2005  Derek Atkins <warlord@MIT.EDU>
+- update kversis script, add 'kvers' operation
+- fix bug that 2.6 smp/hugemem kernels don't provide
+  kernel-foo = %{kernvers} with 'smp', 'hugemem', etc.
+- add patch to remove res_search from the afs-krb5 configure
+
+* Thu Sep 15 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-1
+- Update to 1.4.0rc4
+- Update the afs-krb5 krb524 patch so it actually works on
+  some older systems like RHEL3 that still need -lkrb524.
+- Update the buildall script so choose better architecture support,
+  e.g. don't build i586 on RHEL.
+- Update the rebuild information in the SPEC file.
+- Add support for finding .EL kernels in openafs-kvers-is.sh
+- Add additional error messages when kernel version/type parsing fails.
+- Update the buildall script to use the kernel srcdir directly.
+
+* Wed Sep 14 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-2
+- Add "hugemem" to 2.4 configs
+- Add checks to support scripts to determine whether to build
+  the bigmem and/or hugemem kernels for 2.4.
+
+* Mon Sep 12 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-1
+- Added some afs-krb5 patches to get the migration kit to build
+  on modern AFS and modern Kerberos.
+- Added authlibs and authlibs-devel packages as per UMich changes.
+
+* Sun Sep 11 2005  Derek Atkins <warlord@MIT.EDU>
+- Merged in some of the 2.6 changes from wingc@engin.umich.edu
+
+* Sat Sep 10 2005  Derek Atkins <warlord@MIT.EDU>
+- Merged in lots of changes from David Howells and Nalin Dahyabhai
+  from Red Hat.   Initial attempt at a release of 1.4.  Still need
+  to work in a 2.6 build system.
diff --git a/src/packaging/RedHat/openafs.sysconfig b/src/packaging/RedHat/openafs.sysconfig
new file mode 100644 (file)
index 0000000..08bac3d
--- /dev/null
@@ -0,0 +1,5 @@
+# OpenAFS Client Configuration
+AFSD_ARGS="-dynroot -fakestat"
+
+# OpenAFS Server Configuration
+BOSSERVER_ARGS=