Linux: Tidy up packaging
[openafs.git] / src / packaging / RedHat / openafs.spec.in
index 67bb871..7234941 100644 (file)
@@ -1,26 +1,62 @@
 # Openafs Spec $Revision$
 
-%define afsvers 1.4.2
-%define pkgvers 1.4.2
-%define pkgrel 1
+%define afsvers @VERSION@
+%define pkgvers @LINUX_PKGVER@
+# for beta/rc releases make pkgrel 0.X.<tag>
+# for real releases make pkgrel 1 (or more for extra releases)
+#%define pkgrel 0.1.rc1
+%define pkgrel @LINUX_PKGREL@
 
 %if %{?osvers:0}%{!?osvers:1}
 %define osvers 1
 %endif
 
+%{!?fedorakmod: %define fedorakmod 1}
+%{!?build_dkmspkg: %define build_dkmspkg 1}
+
 # 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}
+%define build_authlibs_on_cmdline %{?build_authlibs:1}%{!?build_authlibs:0}
 
 # Determine the version of the kernel to build against
-# - automatically select the latest kernel with sources from /lib/modules
+# - automatically select running kernel if there are sources in /lib/modules
 # - note that this can be overridden on the command line
 #
 %if !%{kernvers_on_cmdline}
 %define kernvers %(%{_sourcedir}/openafs-kernel-version.sh)
 %endif
+
+# If we're building for a 2.4 series kernel, then fedora style kmods aren't
+# appropriate - disable them.
+
+%define kern24 %([ `echo "%{kernvers}" | sed -e 's/^\([0-9]*\.[0-9]*\)\..*/\1/'` = "2.4" ] && echo 1 || echo 0)
+
+%if %{kern24}
+%define fedorakmod 0
+%endif
+
+%if %{fedorakmod}
+%define kmodtool bash %{_sourcedir}/openafs-kmodtool
+
+%define kmod_name openafs
+%define kverrel %(%{kmodtool} verrel %{?kernvers} 2>/dev/null)
+
+%define upvar ""
+%{!?kvariants: %define kvariants %{?upvar}}
+
+%if %{?ksrcdir:1}%{!?ksrcdir:0}
+  if ( -d %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}) ; then
+    %define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}}
+  else
+    %define ksrcdir %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}}
+  fi
+%endif
+
+%else # Legacy kernel build stuff 
+
 %define kversis %{_sourcedir}/openafs-kvers-is.sh
 %define kvers %(%{kversis} parsev %{kernvers})
 %define kvers_is_24 %(%{kversis} %{kvers} "2.4")
 %endif
 %define kxmoddir %{kmoddir}/%{kernvers}
 
+# End legacy kernel build stuff
+%endif 
+
+%define dkms_version %{osvers}.%{pkgrel}
+
 # 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}
 # to distribute aklog and asetkey
 %define krb5support %{?_without_krb5:0}%{!?_without_krb5:1}
 
+%if %{krb5support}
+%if %{?krb5config:0}%{!?krb5config:1}
+%define krb5config /usr/kerberos/bin/krb5-config
+%endif
+%endif
+
 # 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
 
+#determine if the kernel provides an arch-specific Provides
+%define kprovidesarch %(%{kversis} provideskernelarch %{ksrcdir} %{_target_cpu})
+
 # Define the location of the PAM security module directory
 %define pamdir /%{_lib}/security
 
+%if !%{fedorakmod}
+
 # 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.
 %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 hugemem_ext hugemem
 %endif
 
-%define kvariations up smp largesmp %{?bigmem_ext:%{bigmem_ext}} %{?hugemem_ext:%{hugemem_ext}}
+%define kvariations up smp %{?bigmem_ext:%{bigmem_ext}} %{?hugemem_ext:%{hugemem_ext}}
 
 #######################################################################
 # 2.6
 %else
 %if %{kvers_is_26}
 %define kvariations up
+%ifarch s390x
+%define ktype "smp"
+%define up_package 1
+%else
 %define up_package %(%{kversis} "%{ktype}" "")
 %define smp_package %(%{kversis} "%{ktype}" "smp")
-%define largesmp_package %(%{kversis} "%{ktype}" "largesmp")
 %define hugemem_package %(%{kversis} "%{ktype}" "hugemem")
+%define largesmp_package %(%{kversis} "%{ktype}" "largesmp")
+%endif
 
 %if !%{up_package} && !%{smp_package} && !%{hugemem_package} && !%{largesmp_package}
 %error "unknown kernel type: %{ktype}"
 %endif
 %endif
 
+# End of legacy kernel module build
+%endif 
+
 #######################################################################
 # You probably don't need to change anything beyond this line
 # NOTE: If you do, please email me!!!
 # you'll need to tweak that last bit.
 %if !%{build_userspace_on_cmdline} && !%{build_modules_on_cmdline}
 
-%ifarch x86_64 ia64
+%ifarch x86_64 ia64 s390 s390x
 %define build_userspace 1
 %define build_modules 1
+%ifarch x86_64 ia64
+%define build_authlibs 1
+%else
+%define build_authlibs 0
+%endif
 %endif
 
 %ifarch %{ix86}
 %define build_userspace 0
 %define build_modules 1
+%define build_authlibs 1
 %endif
 
 %ifarch i386
 %define build_userspace 1
 %define build_modules 0
+%define build_authlibs 1
 %endif
 
 %endif
 %endif
 %endif
 
+%if !%{build_authlibs_on_cmdline}
+%if %{build_userspace_on_cmdline}
+%define build_authlibs 1
+%else
+%define build_authlibs 0
+%endif
+%endif
+
 # Make sure RPM doesn't complain about installed but non-packaged files.
 #define __check_files  %{nil}
 
@@ -177,47 +250,29 @@ Release: %{osvers}.%{pkgrel}
 License: IBM Public License
 URL: http://www.openafs.org
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
-Packager: Derek Atkins <warlord@MIT.EDU>
+Packager: OpenAFS Gatekeepers <openafs-gatekeepers@openafs.org>
 Group: Networking/Filesystems
-BuildRequires: %{?kdepend:%{kdepend}, } pam-devel
-ExclusiveArch: %{ix86} x86_64 ia64
+BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison
+%if %{krb5support}
+BuildRequires: krb5-devel
+%endif
+ExclusiveArch: %{ix86} x86_64 ia64 s390 s390x sparc64 ppc ppc64
 
 #    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
+Source20: http://dl.central.org/dl/cellservdb/CellServDB.2010-02-28
 
 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
+Source996: openafs-kvers-is.sh
+Source997: openafs-buildfedora.pl
+Source998: openafs-buildall.sh
+Source999: openafs-kmodtool
 
 %description
 The AFS distributed filesystem.  AFS is a distributed filesystem
@@ -261,6 +316,17 @@ what gets built:
                                   will be installed.  You probably don't
                                   need to change this ever.
 
+ --define "fedorakmod 0"         Disable the building of 'Fedora' style kernel 
+                                 modules, and use the old format.
+
+ --define "kvariants <variants>"  When building Fedora style kernel modules,
+                                  this defines the set of kernel variants
+                                  to build.
+                                  <variants> is a space seperated list which
+                                  may contain one or more of
+                                  '' (for the generic kernel), smp, PAE, xen
+                                  or kdump 
+
 To a kernel module for your running kernel, just run:
   rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{osvers}.%{pkgrel}.src.rpm
 
@@ -272,7 +338,15 @@ To a kernel module for your running kernel, just run:
 %if %{build_userspace}
 
 %package client
-Requires: binutils, openafs-kernel, openafs = %{PACKAGE_VERSION}
+Requires: binutils, openafs = %{version}
+
+%if %{fedorakmod}
+Requires: %{name}-kmod >= %{version}
+Provides: %{name}-kmod-common = %{version}
+%else
+Requires: openafs-kernel
+%endif
+
 Summary: OpenAFS Filesystem Client
 Group: Networking/Filesystem
 
@@ -286,7 +360,7 @@ This package provides basic client support to mount and manipulate
 AFS.
 
 %package server
-Requires: openafs = %{PACKAGE_VERSION}
+Requires: openafs = %{version}
 Summary: OpenAFS Filesystem Server
 Group: Networking/Filesystems
 
@@ -299,6 +373,30 @@ administrative management.
 This package provides basic server support to host files in an AFS
 Cell.
 
+%if %{build_dkmspkg}
+%package -n dkms-%{name}
+Summary:        DKMS-ready kernel source for AFS distributed filesystem
+Group:          Development/Kernel
+Provides:       openafs-kernel = %{version}
+%if %{fedorakmod}
+Provides: %{name}-kmod = %{version}
+%endif
+Requires(pre):  dkms
+Requires(pre):  flex
+Requires(post): dkms
+Requires:      %{name}-kmod-common = %{version}
+
+%description -n dkms-%{name}
+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 allow DKMS to build an
+AFS kernel module.
+%endif
+
+%if %{build_authlibs}
 %package authlibs
 Summary: OpenAFS authentication shared libraries
 Group: Networking/Filesystems
@@ -313,10 +411,13 @@ 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.
+%endif
 
 %package authlibs-devel
-Requires: openafs-authlibs = %{PACKAGE_VERSION}
-Requires: openafs-devel = %{PACKAGE_VERSION}
+%if %{build_authlibs}
+Requires: openafs-authlibs = %{version}
+%endif
+Requires: openafs-devel = %{version}
 Summary: OpenAFS shared library development
 Group: Development/Filesystems
 
@@ -346,7 +447,7 @@ shared libraries.
 
 %package docs
 Summary: OpenAFS user and administrator documentation
-Requires: openafs = %{PACKAGE_VERSION}
+Requires: openafs = %{version}
 Group: Networking/Filesystems
 
 %description docs
@@ -361,7 +462,10 @@ administrators.
 %package kernel-source
 Summary: OpenAFS Kernel Module source tree
 Group: Networking/Filesystems
-Provides: openafs-kernel = %{PACKAGE_VERSION}
+Provides: openafs-kernel = %{version}
+%if %{fedorakmod}
+Provides: %{name}-kmod = %{version}
+%endif
 
 %description kernel-source
 The AFS distributed filesystem.  AFS is a distributed filesystem
@@ -374,7 +478,7 @@ module.
 
 %package compat
 Summary: OpenAFS client compatibility symlinks
-Requires: openafs = %{PACKAGE_VERSION}, openafs-client = %{PACKAGE_VERSION}
+Requires: openafs = %{version}, openafs-client = %{version}
 Group: Networking/Filesystems
 Obsoletes: openafs-client-compat
 
@@ -406,7 +510,7 @@ you are using KAserver instead of Krb5.
 %if %{krb5support}
 %package krb5
 Summary: OpenAFS programs to use with krb5
-Requires: openafs = %{PACKAGE_VERSION}
+Requires: openafs = %{version}
 Group: Networking/Filesystems
 BuildRequires: krb5-devel
 
@@ -430,6 +534,12 @@ krb4 lookalike services.
 ##############################################################################
 %if %{build_modules}
 
+%if %{fedorakmod}
+%{expand:%(%{kmodtool} rpmtemplate %{kmod_name} %{kverrel} %{kvariants} 2>/dev/null)}
+
+%else
+
+# Legacy kernel compilation code here ...
 %define modkversion %(echo %{kernvers} | cut -d- -f1)
 %define modkrelease %(echo %{kernvers} | cut -d- -f2)
 %define modpkgrel %{modkversion}_%{modkrelease}_%{pkgrel}
@@ -438,9 +548,13 @@ krb4 lookalike services.
 %package kernel
 Summary: OpenAFS Kernel Module (compiled for UP)
 Release: %{modpkgrel}
-Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel = %{kversion}
 Group: Networking/Filesystems
+Provides: openafs-kernel = %{version}
+%if %{kprovidesarch}
+Requires: kernel-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}
+%endif
 
 %description kernel
 The AFS distributed filesystem.  AFS is a distributed filesystem
@@ -455,8 +569,12 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 %package kernel-smp
 Summary: OpenAFS Kernel Module (compiled for SMP)
 Release: %{modpkgrel}
-Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-smp = %{kversion}
+Provides: openafs-kernel = %{version}
+%if %{kprovidesarch}
+Requires: kernel-smp-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?smp_ext:%{smp_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-smp
@@ -472,8 +590,12 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 %package kernel-largesmp
 Summary: OpenAFS Kernel Module (compiled for LARGESMP)
 Release: %{modpkgrel}
-Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-largesmp = %{kversion}
+Provides: openafs-kernel = %{version}
+%if %{kprovidesarch}
+Requires: kernel-largesmp-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?largesmp_ext:%{largesmp_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-largesmp
@@ -489,8 +611,12 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 %package kernel-bigmem
 Summary: OpenAFS Kernel Module (compiled for SMP & big memory support)
 Release: %{modpkgrel}
-Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-bigmem = %{kversion}
+Provides: openafs-kernel = %{version}
+%if %{kprovidesarch}
+Requires: kernel-bigmem-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?bigmem_ext:%{bigmem_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-bigmem
@@ -506,8 +632,12 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 %package kernel-hugemem
 Summary: OpenAFS Kernel Module (compiled for SMP & huge memory support)
 Release: %{modpkgrel}
-Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-hugemem = %{kversion}
+Provides: openafs-kernel = %{version}
+%if %{kprovidesarch}
+Requires: kernel-hugemem-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?hugemem_ext:%{hugemem_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-hugemem
@@ -520,6 +650,8 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 %endif
 
 %endif
+# End legacy kernel compilation code ...
+%endif
 
 ##############################################################################
 #
@@ -532,6 +664,9 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 : @@@
 : @@@ kernel version:     %{kernvers}
+%if %{fedorakmod}
+: @@@ kernel variations:  %{kvariants}
+%else
 : @@@ base kernel version:%{kversion}
 : @@@ kernel modules dir: %{kxmoddir}
 : @@@ kernel source dir:  %{ksrcdir}
@@ -544,6 +679,7 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 : @@@ kernel type:        %{ktype}
 %endif
 %endif
+%endif
 : @@@ PAM modules dir:    %{pamdir}
 : @@@ build userspace:    %{build_userspace}
 : @@@ build modules:      %{build_modules}
@@ -556,44 +692,6 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 #%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
@@ -734,6 +832,26 @@ config_opts="--enable-redhat-buildsys \
 
 # Configure AFS
 
+# If we're using Fedora kmods, work out which is the best kernel module to 
+# use for the userland configuration step. If no variants have been specified,
+# then use the standard kernel. If variants are specified, use the standard kernel
+# if it's listed, otherwise pick the first listed kernel.
+ksrc=""
+%if %{fedorakmod} 
+  for kvariant in %{kvariants} ; do
+    if [ -z "${kvariant}" -o -z "$ksrc" ] ; then
+      if [ -d %{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} ] ; then
+        ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+      else
+        ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
+      fi
+    fi
+  done
+%endif
+if [ -z "$ksrc" ] ; then
+ksrc=%{ksrcdir}
+fi
+
 CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
 
 ./configure --with-afs-sysname=${sysname} \
@@ -741,36 +859,73 @@ CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
        --libdir=%{_libdir} \
        --bindir=%{_bindir} \
        --sbindir=%{_sbindir} \
-       --with-linux-kernel-headers=%{ksrcdir} \
+       --disable-strip-binaries \
+       --with-linux-kernel-packaging \
+       --enable-disconnected \
+%if %{build_modules}
+       --with-linux-kernel-headers=${ksrc} \
+%endif
 %if %{krb5support}
-       --with-krb5-conf \
+       --with-krb5-conf=%{krb5config} \
 %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
 
+# Configure each of our kernel modules
+
+%if %{fedorakmod} && %{build_modules}
+for kvariant in %{kvariants} ; do
+  if [ -n "${kvariant}" ] ; then
+    if [ -d %{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} ] ; then
+      ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+    else
+      ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
+    fi
+
+    cp -R libafs_tree _kmod_build_${kvariant}
+    pushd _kmod_build_${kvariant}
+    ./configure --with-afs-sysname=${sysname} \
+       --prefix=%{_prefix} \
+       --libdir=%{_libdir} \
+       --bindir=%{_bindir} \
+       --sbindir=%{_sbindir} \
+        --with-linux-kernel-packaging \
+       --with-linux-kernel-headers=${ksrc} \
+       --enable-disconnected \
 %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 ) \
+       --with-krb5-conf=/usr/kerberos/bin/krb5-config \
+%endif
+       $config_opts \
        || exit 1
+    popd
+  fi
+done
 %endif
 
+%if %{build_userspace}
+# Build the user-space AFS stuff
+make dest_nolibafs || exit 1
 %endif
 
 %if %{build_modules}
+%if %{fedorakmod}
+for kvariant in %{kvariants}
+do
+  if [ -n "${kvariant}" ] ; then
+    pushd _kmod_build_$kvariant;
+    make all
+    popd
+  else
+    make dest_only_libafs
+  fi
+done
+
+%else
+# Begin legacy kernel module building code
+
 %if %{kvers_is_24}
 # Build all the kernel modules for linux 2.4.x
 for variation in %{kvariations}
@@ -800,6 +955,8 @@ rm -f src/config/redhat-fix.h
   make dest_only_libafs MPS=SP
 
 %endif
+# End legacy kernel module building code
+%endif
 %endif
 
 
@@ -856,15 +1013,19 @@ 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
+tar cf - -C ${sysname}/dest/root.client%{_prefix}/vice/etc afsd C | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/vice/etc
+
+# Fix the location of restorevol, since it should be available for
+# any user in /usr/bin
+mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/restorevol $RPM_BUILD_ROOT%{_bindir}/restorevol
 
 # 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
+install -m 755 src/packaging/RedHat/openafs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/openafs
+install -m 755 src/packaging/RedHat/openafs-client.init $RPM_BUILD_ROOT%{initdir}/openafs-client
+install -m 755 src/packaging/RedHat/openafs-server.init $RPM_BUILD_ROOT%{initdir}/openafs-server
 
 # Copy PAM modules
 install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT%{pamdir}
@@ -875,10 +1036,31 @@ 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 -p -m 644 src/packaging/RedHat/openafs-ThisCell $uve/ThisCell
+install -p -m 644 %{SOURCE20} $uve/CellServDB.dist
+install -p -m 644 src/packaging/RedHat/openafs-cacheinfo $uve/cacheinfo
+
+#
+# install dkms source
+#
+install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/src
+cp -a libafs_tree $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}
+
+cat > $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}/dkms.conf <<EOF
+
+PACKAGE_VERSION="%{dkms_version}"
+
+# Items below here should not have to change with each driver version
+PACKAGE_NAME="%{name}"
+MAKE[0]="KMODNAME=openafs.ko; DSTKMOD=\\".\\"; [ \\"\\\`echo \\"\${kernelver_array[0]}\\" | sed -e 's/^\\([0-9]*\\.[0-9]*\\)\\..*/\\1/'\\\`\\" = \\"2.4\\" ] && KMODNAME=\\"libafs-*\\" && DSTKMOD=openafs.o; ./configure --enable-disconnected --with-linux-kernel-headers=\${kernel_source_dir} --with-linux-kernel-packaging; make; mv src/libafs/MODLOAD-*/\\\$KMODNAME \\\$DSTKMOD"
+CLEAN="make -C src/libafs clean"
+
+BUILT_MODULE_NAME[0]="\$PACKAGE_NAME"
+DEST_MODULE_LOCATION[0]="/kernel/3rdparty/\$PACKAGE_NAME/"
+STRIP[0]=no
+AUTOINSTALL=yes
+
+EOF
 
 #
 # install kernel-source
@@ -891,8 +1073,8 @@ tar cf - -C libafs_tree . | \
 
 # 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 -m 644 src/packaging/RedHat/openafs-LICENSE.Sun $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
+install -m 644 src/packaging/RedHat/openafs-README $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/README
 
 #
 # Install DOCUMENTATION
@@ -920,7 +1102,8 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.*
 
 # remove unused man pages
 for x in afs_ftpd afs_inetd afs_login afs_rcp afs_rlogind afs_rsh \
-    dkload knfs package runntp; do
+    dkload knfs package runntp symlink symlink_list symlink_make \
+    symlink_remove; do
        rm -f $RPM_BUILD_ROOT%{_mandir}/man1/${x}.1
 done
 
@@ -932,7 +1115,7 @@ 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' \
+       |egrep '^afs|^fs|^kas|^klog|kapasswd|pagsh|^pts|^restorevol|^rxdebug|scout|^sys|tokens|translate|udebug|unlog|^uss|^vos' \
        >openafs-man1files
 
 /bin/ls $RPM_BUILD_ROOT%{_mandir}/man5 \
@@ -940,7 +1123,7 @@ gzip -9 $RPM_BUILD_ROOT%{_mandir}/man*/*
        >openafs-man5files
 
 /bin/ls $RPM_BUILD_ROOT%{_mandir}/man8 \
-       |egrep '^backup|^bos|^butc|^fms|^fstrace|^kas|^uss' \
+       |egrep '^backup|^bos|^butc|^fms|^fstrace|^kas|^read_tape|^uss' \
        >openafs-man8files
 
 #
@@ -957,6 +1140,7 @@ grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
 %{_bindir}/pagsh
 %{_bindir}/pagsh.krb
 %{_bindir}/pts
+%{_bindir}/restorevol
 %{_bindir}/scout
 %{_bindir}/sys
 %{_bindir}/tokens
@@ -966,13 +1150,10 @@ grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
 %{_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
@@ -1014,9 +1195,8 @@ 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
+for f in dlog dpass install knfs livesys xstat_cm_test xstat_fs_test ; do
   rm -f $RPM_BUILD_ROOT%{_bindir}/$f
 done
 
@@ -1024,7 +1204,8 @@ done
 for f in kdb rmtsysd kpwvalid ; do
   rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
 done
-rm -f $RPM_BUILD_ROOT%{_sbindir}/kdump*
+# sometimes install sucks and puts down a directory. kill it all.
+rm -rf $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
@@ -1036,36 +1217,62 @@ 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
+%if !%{build_authlibs}
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so.*
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so.*
+%endif
 
 %endif
 
 %if %{build_modules}
+%if %{fedorakmod}
+for kvariant in %{kvariants}
+do
+  if [ -n "$kvariant" ] ; then
+    if [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP ] ; then
+      srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
+      dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
+    else
+      srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}.${kvariant}-SP
+      dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}.${kvariant}/extra/openafs
+    fi
+  else
+    if [ -d ${sysname}/dest/root.client/lib/modules/%{kverrel}/extra/openafs ] ; then
+      srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}/extra/openafs
+      dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}/extra/openafs
+    else
+      srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
+      dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
+    fi
+  fi
+
+  mkdir -p ${dstdir}
+  install -m 755 ${srcdir}/openafs.ko ${dstdir}/openafs.ko
+done
+%else
 # Install the kernel modules
 for variation in %{kvariations}
 do
     if [ ${variation} = up ]
     then
        kvar=%{kxmoddir}
-       modname=libafs-%{kernvers}${kmodend}
+       modname=openafs${kmodend}
     else
        kvar=%{kxmoddir}${variation}
-       modname=libafs-%{kernvers}${variation}${kmodend}
+       modname=openafs${kmodend}
     fi
 
-    srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
-    dstdir=$RPM_BUILD_ROOT${kvar}/kernel/fs/openafs
+    srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}${kvariant}/extra/openafs
+    dstdir=$RPM_BUILD_ROOT${kvar}/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}
+    install -m 755 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
 done
 %endif
+%endif
 
 ##############################################################################
 ###
@@ -1098,6 +1305,13 @@ if [ ! -d /afs ]; then
        chmod 0755 /afs
 fi
 
+# Create the CellServDB
+[ -f /usr/vice/etc/CellServDB.local ] || touch /usr/vice/etc/CellServDB.local
+
+( cd /usr/vice/etc ; \
+  cat CellServDB.local CellServDB.dist > CellServDB ; \
+  chmod 644 CellServDB )
+
 echo
 echo The AFS cache is configured for 100 MB. Edit the
 echo /usr/vice/etc/cacheinfo file to change this before
@@ -1117,11 +1331,13 @@ echo
 chkconfig --add openafs-server
 %{initdir}/openafs-server condrestart
 
+%if %{build_authlibs}
 %post authlibs
 /sbin/ldconfig
 
 %postun authlibs
 /sbin/ldconfig
+%endif
 
 %preun
 if [ $1 = 0 ] ; then
@@ -1140,10 +1356,19 @@ if [ $1 = 0 ] ; then
         chkconfig --del openafs-server
 fi
 
+%if %{build_dkmspkg}
+%post -n dkms-%{name}
+dkms add -m %{name} -v %{dkms_version} --rpm_safe_upgrade
+dkms build -m %{name} -v %{dkms_version} --rpm_safe_upgrade
+dkms install -m %{name} -v %{dkms_version} --rpm_safe_upgrade
+
+%preun -n dkms-%{name}
+dkms remove -m %{name} -v %{dkms_version} --rpm_safe_upgrade --all ||:
+%endif
 %endif
 
 %if %{build_modules}
-
+%if !%{fedorakmod}
 %if %{up_package}
 %post kernel
 /sbin/depmod -ae %{kernvers}
@@ -1184,9 +1409,8 @@ fi
 %postun kernel-hugemem
 /sbin/depmod -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
 %endif
-
 %endif
-
+%endif
 
 ##############################################################################
 ###
@@ -1209,23 +1433,28 @@ fi
 %dir %{_prefix}/vice
 %dir %{_prefix}/vice/cache
 %dir %{_prefix}/vice/etc
-%config %{_prefix}/vice/etc/CellServDB
-%config %{_prefix}/vice/etc/SuidCells
+%dir %{_prefix}/vice/etc/C
+%{_prefix}/vice/etc/CellServDB.dist
 %config %{_prefix}/vice/etc/ThisCell
 %config %{_prefix}/vice/etc/cacheinfo
 %{_bindir}/cmdebug
 %{_bindir}/up
 %{_prefix}/vice/etc/afsd
+%{_prefix}/vice/etc/C/afszcm.cat
 %{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/copyauth.*
 %{_mandir}/man1/up.*
 %{_mandir}/man5/afs*
 %{_mandir}/man5/cacheinfo.*
 %{_mandir}/man8/afsd.*
+%{_mandir}/man8/rmtsysd.*
+%{_mandir}/man8/vsys.*
+%{_mandir}/man5/CellAlias.*
 
 %files server
 %defattr(-,root,root)
@@ -1237,11 +1466,14 @@ fi
 %{_prefix}/afs/bin/bos_util
 %{_prefix}/afs/bin/buserver
 %{_prefix}/afs/bin/fileserver
+%{_prefix}/afs/bin/fssync-debug
 # Should we support KAServer?
 %{_prefix}/afs/bin/kaserver
+%{_prefix}/afs/bin/ka-forwarder
 %{_prefix}/afs/bin/pt_util
 %{_prefix}/afs/bin/ptserver
 %{_prefix}/afs/bin/salvager
+%{_prefix}/afs/bin/state_analyzer
 %{_prefix}/afs/bin/upclient
 %{_prefix}/afs/bin/upserver
 %{_prefix}/afs/bin/vlserver
@@ -1273,6 +1505,7 @@ fi
 %{_mandir}/man5/fms.log.*
 %{_mandir}/man5/kaserver.DB0.*
 %{_mandir}/man5/kaserverauxdb.*
+%{_mandir}/man5/krb.conf.*
 %{_mandir}/man5/prdb.DB0.*
 %{_mandir}/man5/salvage.lock.*
 %{_mandir}/man5/tapeconfig.*
@@ -1280,32 +1513,47 @@ fi
 %{_mandir}/man8/buserver.*
 %{_mandir}/man8/fileserver.*
 %{_mandir}/man8/kadb_check.*
+%{_mandir}/man8/ka-forwarder.*
 %{_mandir}/man8/prdb_check.*
 %{_mandir}/man8/ptserver.*
+%{_mandir}/man8/pt_util.*
 %{_mandir}/man8/salvager.*
+%{_mandir}/man8/salvageserver.*
+%{_mandir}/man8/state_analyzer.*
 %{_mandir}/man8/upclient.*
 %{_mandir}/man8/upserver.*
 %{_mandir}/man8/vldb_check.*
+%{_mandir}/man8/vldb_convert.*
 %{_mandir}/man8/vlserver.*
 %{_mandir}/man8/voldump.*
 %{_mandir}/man8/volinfo.*
 %{_mandir}/man8/volserver.*
-#%{_mandir}/man8/vldb_convert.*
 
+%if %{build_authlibs}
 %files authlibs
 %defattr(-,root,root)
 %{_libdir}/libafsauthent.so.*
 %{_libdir}/libafsrpc.so.*
+%{_libdir}/libkopenafs.so.*
+%endif
 
 %files authlibs-devel
 %defattr(-,root,root)
+%{_includedir}/kopenafs.h
 %{_libdir}/libafsauthent.a
-%{_libdir}/libafsauthent.so
 %{_libdir}/libafsrpc.a
+%{_libdir}/libafsauthent_pic.a
+%{_libdir}/libafsrpc_pic.a
+%{_libdir}/libkopenafs.a
+%if %{build_authlibs}
+%{_libdir}/libafsauthent.so
 %{_libdir}/libafsrpc.so
+%{_libdir}/libkopenafs.so
+%endif
 
 %files devel
 %defattr(-,root,root)
+%{_bindir}/afs_compile_et
 %{_bindir}/rxgen
 %{_includedir}/afs
 %{_includedir}/des.h
@@ -1329,6 +1577,13 @@ fi
 %{_libdir}/librxstat.a
 %{_libdir}/libubik.a
 %{_mandir}/man1/rxgen.*
+%{_mandir}/man1/afs_compile_et.*
+
+%if %{build_dkmspkg}
+%files -n dkms-%{name}
+%defattr(-,root,root)
+%{_prefix}/src/%{name}-%{dkms_version}
+%endif
 
 %files kernel-source
 %defattr(-,root,root)
@@ -1350,8 +1605,8 @@ fi
 %files krb5
 %defattr(-,root,root)
 %{_bindir}/aklog
+%{_bindir}/klog.krb5
 %{_sbindir}/asetkey
-%{_sbindir}/ka-forwarder
 %{_mandir}/man1/aklog.*
 %{_mandir}/man8/asetkey.*
 %endif
@@ -1360,34 +1615,36 @@ fi
 
 %if %{build_modules}
 
+%if !%{fedorakmod}
 %if %{up_package}
 %files kernel
 %defattr(-,root,root)
-%{kxmoddir}/kernel/fs/openafs/openafs.*
+%{kxmoddir}/fs/openafs/openafs.*
 %endif
 
 %if %{smp_package}
 %files kernel-smp
 %defattr(-,root,root)
-%{kxmoddir}%{?smp_ext:%{smp_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?smp_ext:%{smp_ext}}/fs/openafs/openafs.*
 %endif
 
 %if %{largesmp_package}
 %files kernel-largesmp
 %defattr(-,root,root)
-%{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/fs/openafs/openafs.*
 %endif
  
 %if %{bigmem_package}
 %files kernel-bigmem
 %defattr(-,root,root)
-%{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/fs/openafs/openafs.*
 %endif
 
 %if %{hugemem_package}
 %files kernel-hugemem
 %defattr(-,root,root)
-%{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/fs/openafs/openafs.*
+%endif
 %endif
 
 %endif
@@ -1398,11 +1655,75 @@ fi
 ###
 ##############################################################################
 %changelog
-* Sun Aug 20 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
+* Wed Dec 12 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
+- Make the RPM mockable
+
+* Tue Oct 29 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
+- Update to match the shipped 1.4.5 RPMS
+- Fix the kvariant stuff to only configure the 'standard' case once
+- Add openafs-kvers.sh back in
+
+* Wed Oct 10 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5pre1-1
+- Use Fedora style kmods, which allows us to install multiple kernel types
+
+* Thu Jun 07 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.4-3
+- Use distributed files, rather than those in packager's SOURCE directory
+- Remove SuidCells stuff, which was unused
+
+* Fri Dec 01 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-2
+- integrate s390x changes
+- allow for building libafs*.a and not libafs*.so into packages, for platforms
+  that won't build the .so files.
+
+* Wed Aug 23 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
 - update to 1.4.2
 - use installed aklog manpage.
 - moduleparam patch obsoleted.
 
+* Tue Aug 22 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.1.rc1
+- update to 1.4.2-rc1
+- hand-apply lee damon's changes to support largesmp kernels from RHEL4
+  (but only add support for 2.6 kernels.  No need for the 2.4 kernels).
+- don't need the posixlock patch anymore.
+
+* Wed Jul 12 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.beta2
+- update to 1.4.2-beta2
+- add linux2.4 posixlock API patch
+
+* Mon Jun 26 2006  Derek Atkins <warlord@MIT.EDU>
+- moduleparam and krb524 patches no longer required in OA-CVS
+
+* Wed May 17 2006  Derek Atkins <warlord@MIT.EDU>
+- change non-target-cpu kernel dep to a file dep
+- make sure we use the proper kernel version for the dependency.
+
+* Tue May 16 2006  Derek Atkins <warlord@MIT.EDU>
+- allow users to specify local CellServDB and SuidCells entries
+  don't overwrite user's changes.  Provide a .dist an let users
+  make entries in a ".local"
+- build the CellServDB and SuidCells at client startup and at
+  client install-time
+- add provideskernelarch functionality to openafs-kvers-is.sh
+- use that functionality to Require kernel{,-<type>}-targetcpu
+  to get better package safety due to RPM bugs where the kernel
+  release isn't used so you can install the kernel module against
+  any kernel of the same major version.
+
+* Mon May 15 2006  Derek Atkins <warlord@MIT.EDU>
+- update the README in openafs-kernel-source
+- fix openafs-kvers-is.sh from Alexander Bergolth's patch.
+- move kernel module from .../kernel/fs/openafs to .../fs/openafs/
+
+* Fri Apr 21 2006  Derek Atkins <warlord@MIT.EDU>
+- build requires autoconf and automake for krb5support
+  and autoconf for standard package
+- dont setup the krb5 migration kit (or patches) if we don't care.
+- require ncurses-devel to build
+
+* Wed Apr 19 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-3
+- look for krb524 functions in libkrb524 if we can't find them
+  in the standard locations.
+
 * Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
 - fix the module_param_array macro for Linux 2.6.9.