# Openafs Spec $Revision$
+# TEMPORARY fix for patch fuzz so we can build on Fedora 10
+%define _default_patch_fuzz 2
+
%define afsvers @VERSION@
%define pkgvers @LINUX_PKGVER@
# for beta/rc releases make pkgrel 0.X.<tag>
%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 running kernel if there are sources in /lib/modules
%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 upvar ""
%{!?kvariants: %define kvariants %{?upvar}}
-%{!?ksrcdir: %define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}}
+%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
%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}
Source10: http://www.openafs.org/dl/openafs/%{afsvers}/RELNOTES-%{afsvers}
Source11: http://www.openafs.org/dl/openafs/%{afsvers}/ChangeLog
-Source20: http://dl.central.org/dl/cellservdb/CellServDB.2007-10-25
+Source20: http://dl.central.org/dl/cellservdb/CellServDB.2008-11-07
Source30: openafs-kernel-version.sh
Source996: openafs-kvers-is.sh
Source998: openafs-buildall.sh
Source999: openafs-kmodtool
-Patch0: openafs-1.4.0-kmodule26.patch
-
%description
The AFS distributed filesystem. AFS is a distributed filesystem
allowing cross-platform sharing of files among multiple computers.
#%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
-
##############################################################################
#
# building
%if %{fedorakmod}
for kvariant in %{kvariants} ; do
if [ -z "${kvariant}" -o -z "$ksrc" ] ; then
- ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+ 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
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--disable-strip-binaries \
+ --with-linux-kernel-packaging \
+ --enable-disconnected \
%if %{build_modules}
--with-linux-kernel-headers=${ksrc} \
%endif
%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} \
--libdir=%{_libdir} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
- --with-linux-kernel-headers=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} \
+ --with-linux-kernel-packaging \
+ --with-linux-kernel-headers=${ksrc} \
+ --enable-disconnected \
%if %{krb5support}
--with-krb5-conf=/usr/kerberos/bin/krb5-config \
%endif
do
if [ -n "${kvariant}" ] ; then
pushd _kmod_build_$kvariant;
- make all MPS=SP
+ make all
popd
else
- make dest_only_libafs MPS=SP
+ make dest_only_libafs
fi
done
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
# Link kpasswd to kapasswd
ln -f $RPM_BUILD_ROOT%{_bindir}/kpasswd $RPM_BUILD_ROOT%{_bindir}/kapasswd
# Items below here should not have to change with each driver version
PACKAGE_NAME="%{name}"
-MAKE[0]="SMP=SP; eval \\\`grep CONFIG_SMP /boot/config-\${kernelver_array[0]}\\\`; [ -n \"\\\$CONFIG_SMP\" ] && SMP=MP; ./configure --with-linux-kernel-headers=\${kernel_source_dir}; make MPS=\\\$SMP; mv src/libafs/MODLOAD-*/openafs.ko ."
+MAKE[0]="SMP=SP; eval \\\`grep CONFIG_SMP /boot/config-\${kernelver_array[0]}\\\`; [ -n \"\\\$CONFIG_SMP\" ] && SMP=MP; 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}; make MPS=\\\$SMP; 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
%{_bindir}/pagsh
%{_bindir}/pagsh.krb
%{_bindir}/pts
+%{_bindir}/restorevol
%{_bindir}/scout
%{_bindir}/sys
%{_bindir}/tokens
%{_bindir}/unlog
%{_sbindir}/backup
%{_sbindir}/butc
-%{_sbindir}/copyauth
%{_sbindir}/fms
%{_sbindir}/fstrace
%{_sbindir}/kas
%{_sbindir}/read_tape
-%{_sbindir}/restorevol
%{_sbindir}/rxdebug
%{_sbindir}/uss
%{_sbindir}/vos
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
for kvariant in %{kvariants}
do
if [ -n "$kvariant" ] ; then
- srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
+ 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
- srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
+ 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
- dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
mkdir -p ${dstdir}
- install -m 755 ${srcdir}/libafs-%{kverrel}${kvariant}.ko $dstdir/openafs.ko
+ install -m 755 ${srcdir}/openafs.ko ${dstdir}/openafs.ko
done
%else
# Install the kernel modules
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
+ srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}${kvariant}/extra/openafs
dstdir=$RPM_BUILD_ROOT${kvar}/fs/openafs
mkdir -p ${dstdir}
dkms install -m %{name} -v %{dkms_version} --rpm_safe_upgrade
%preun -n dkms-%{name}
-dkms remove -m %{namee} -v %{dkms_version} --rpm_safe_upgrade --all ||:
+dkms remove -m %{name} -v %{dkms_version} --rpm_safe_upgrade --all ||:
%endif
%endif
%dir %{_prefix}/vice
%dir %{_prefix}/vice/cache
%dir %{_prefix}/vice/etc
+%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.*
+%{_mandir}/man5/afszcm.cat.*
%files server
%defattr(-,root,root)
%{_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
%{_sbindir}/vldb_convert
%{_sbindir}/voldump
%{initdir}/openafs-server
+%{_mandir}/man1/restorevol.*
%{_mandir}/man5/AuthLog.*
%{_mandir}/man5/BackupLog.*
%{_mandir}/man5/BosConfig.*
%{_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.*
%{_mandir}/man8/ptserver.*
%{_mandir}/man8/pt_util.*
%{_mandir}/man8/salvager.*
+%{_mandir}/man8/salvageserver.*
%{_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.a
%{_libdir}/libafsrpc.a
+%{_libdir}/libafsauthent_pic.a
+%{_libdir}/libafsrpc_pic.a
%if %{build_authlibs}
%{_libdir}/libafsauthent.so
%{_libdir}/libafsrpc.so
%{_libdir}/librxstat.a
%{_libdir}/libubik.a
%{_mandir}/man1/rxgen.*
+%{_mandir}/man1/afs_compile_et.*
%if %{build_dkmspkg}
%files -n dkms-%{name}
%files krb5
%defattr(-,root,root)
%{_bindir}/aklog
+%{_bindir}/klog.krb5
%{_sbindir}/asetkey
%{_mandir}/man1/aklog.*
%{_mandir}/man8/asetkey.*