# for real releases make pkgrel 1 (or more for extra releases)
%define pkgrel @LINUX_PKGREL@
-%{!?fedorakmod: %define fedorakmod 1}
%{!?build_dkmspkg: %define build_dkmspkg 1}
# Determine presence of rpmbuild command line --define arguments used for
%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
-# - 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
+%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
+%define depmod /usr/sbin/depmod
+%else
+%define depmod /sbin/depmod
%endif
-%if %{fedorakmod}
%define kmodtool bash %{_sourcedir}/openafs-kmodtool
%define kmod_name openafs
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")
-%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}
-
-# End legacy kernel build stuff
-%endif
-
-%define dkms_version %{pkgrel}%{?dist}
+%define dkms_version %{pkgvers}-%{pkgrel}%{?dist}
# 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 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.
-# 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 smp_ext smp
-
-%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 %{?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 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
-
-%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
-
-# 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 s390 s390x
%define build_userspace 1
%define build_modules 1
-%ifarch x86_64 ia64
+%ifarch %{ix86} 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
-
-# deal with cmdline specification
-%if %{build_userspace_on_cmdline} || %{build_modules_on_cmdline}
+%else
%if !%{build_userspace_on_cmdline}
%define build_userspace 0
%endif
Packager: OpenAFS Gatekeepers <openafs-gatekeepers@openafs.org>
Group: Networking/Filesystems
BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison
+%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
+BuildRequires: systemd-units
+%endif
+%if 0%{?fedora} >= 15 || 0%{?rhel} >= 6
+BuildRequires: perl-devel
+%endif
+BuildRequires: perl(ExtUtils::Embed)
%if %{krb5support}
BuildRequires: krb5-devel
%endif
+%if %{build_modules}
+BuildRequires: kernel-devel
+%endif
+
ExclusiveArch: %{ix86} x86_64 ia64 s390 s390x sparc64 ppc ppc64
# http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
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.2010-12-13
+Source20: https://www.central.org/dl/cellservdb/CellServDB.2016-01-01
Source30: openafs-kernel-version.sh
Source996: openafs-kvers-is.sh
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
+ --define "kernvers 3.19.3-100.fc20.i686" Specify the specific kernel version
to build modules against. The default is
to build against the currently-running
kernel.
--without krb5 Disable krb5 support (default: with krb5)
--with bitmap-later Enable "bitmap later" support
--with bos-restricted Enable "bos restricted" mode
- --with largefiles Enable "largefile fileserver" mode
--with supergroups Enable "supergroups"
--target=i386 The target architecture to build for.
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.
%package client
Requires: binutils, openafs = %{version}
+%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
+Requires: systemd-units
+Requires(post): systemd-units, systemd-sysv
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+%endif
-%if %{fedorakmod}
Requires: %{name}-kmod >= %{version}
Provides: %{name}-kmod-common = %{version}
-%else
-Requires: openafs-kernel
-%endif
Summary: OpenAFS Filesystem Client
Group: Networking/Filesystem
Requires: openafs = %{version}
Summary: OpenAFS Filesystem Server
Group: Networking/Filesystems
+%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
+Requires: systemd-units
+Requires(post): systemd-units, systemd-sysv
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+%endif
%description server
The AFS distributed filesystem. AFS is a distributed filesystem
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
%package authlibs-devel
%if %{build_authlibs}
-Requires: openafs-authlibs = %{version}
+Requires: openafs-authlibs = %{version}-%{release}
%endif
-Requires: openafs-devel = %{version}
+Requires: openafs-devel = %{version}-%{release}
Summary: OpenAFS shared library development
Group: Development/Filesystems
%package devel
Summary: OpenAFS Development Libraries and Headers
Group: Development/Filesystems
+Requires: openafs = %{version}-%{release}
%description devel
The AFS distributed filesystem. AFS is a distributed filesystem
%package docs
Summary: OpenAFS user and administrator documentation
-Requires: openafs = %{version}
+Requires: openafs = %{version}-%{release}
Group: Networking/Filesystems
%description docs
Summary: OpenAFS Kernel Module source tree
Group: Networking/Filesystems
Provides: openafs-kernel = %{version}
-%if %{fedorakmod}
Provides: %{name}-kmod = %{version}
-%endif
%description kernel-source
The AFS distributed filesystem. AFS is a distributed filesystem
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.
+This package provides the kpasswd executable, renamed to kapasswd to avoid
+clashes, for sites still using KAserver instead of Krb5.
%if %{krb5support}
%package krb5
##############################################################################
%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}
-
-%if %{up_package}
-%package kernel
-Summary: OpenAFS Kernel Module (compiled for UP)
-Release: %{modpkgrel}
-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
-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 = %{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
-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.
+%{expand:%(%{kmodtool} rpmtemplate %{kmod_name} %{kverrel} %{depmod} %{kvariants} 2>/dev/null)}
-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 = %{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
-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 = %{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
-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 = %{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
-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
-# End legacy kernel compilation code ...
%endif
##############################################################################
: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
: @@@
: @@@ kernel version: %{kernvers}
-%if %{fedorakmod}
: @@@ kernel variations: %{kvariants}
-%else
-: @@@ 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
-%endif
: @@@ PAM modules dir: %{pamdir}
: @@@ build userspace: %{build_userspace}
: @@@ build modules: %{build_modules}
#
##############################################################################
%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} ;;
+ x86_64) sysname=amd64_linux26 ;;
+ alpha*) sysname=alpha_linux_26 ;;
+ i386|i486|i586|i686|athlon) sysname=i386_linux26 ;;
+ *) sysname=%{_arch}_linux26 ;;
esac
%ifarch %{ix86}
config_opts="--enable-redhat-buildsys \
%{?_with_bitmap_later:--enable-bitmap-later} \
%{?_with_bos_restricted:--enable-bos-restricted-mode} \
- %{?_with_largefiles:--enable-largefile-fileserver} \
%{?_with_supergroups:--enable-supergroups} \
--enable-transarc-paths"
# 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
+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}
+ elif [ -d %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant} ] ; then
+ ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant}
+ else
+ ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
fi
- done
-%endif
+ fi
+done
if [ -z "$ksrc" ] ; then
ksrc=%{ksrcdir}
fi
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--disable-strip-binaries \
+ --enable-debug \
--with-linux-kernel-packaging \
%if %{build_modules}
--with-linux-kernel-headers=${ksrc} \
# Build the libafs tree
make only_libafs_tree || exit 1
+%if %{krb5support}
+%if %{?krb5config:1}%{!?krb5config:0}
+KRB5_CONFIG="%{krb5config}"
+export KRB5_CONFIG
+%endif
+%endif
+
# Configure each of our kernel modules
-%if %{fedorakmod} && %{build_modules}
+%if %{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}
+
+ elif [ -d %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant} ] ; then
+ # Fedora 20 started putting kernel sources in e.g.
+ # 3.12.5-302.fc20.i686+PAE, instead of:
+ # 3.12.5-302.fc20.i686.PAE
+ ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant}
+
else
ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
fi
--sbindir=%{_sbindir} \
--with-linux-kernel-packaging \
--with-linux-kernel-headers=${ksrc} \
- --enable-disconnected \
%if %{krb5support}
- --with-krb5-conf=/usr/kerberos/bin/krb5-config \
+ --with-krb5 \
%endif
$config_opts \
|| exit 1
%endif
%if %{build_modules}
-%if %{fedorakmod}
for kvariant in %{kvariants}
do
if [ -n "${kvariant}" ] ; then
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}
-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
-# End legacy kernel module building code
-%endif
%endif
[ $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} ;;
+ x86_64) sysname=amd64_linux26 ;;
+ alpha*) sysname=alpha_linux_26 ;;
+ i386|i486|i586|i686|athlon) sysname=i386_linux26 ;;
+ *) sysname=%{_arch}_linux26 ;;
esac
# Build install tree
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
mkdir -p $RPM_BUILD_ROOT%{_libdir}
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
mkdir -p $RPM_BUILD_ROOT%{initdir}
+%else
+mkdir -p $RPM_BUILD_ROOT%{_unitdir}
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules
+%endif
mkdir -p $RPM_BUILD_ROOT/etc/openafs
mkdir -p $RPM_BUILD_ROOT%{pamdir}
mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/etc
# 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
+# Rename kpasswd to kapasswd
+mv -f $RPM_BUILD_ROOT%{_bindir}/kpasswd $RPM_BUILD_ROOT%{_bindir}/kapasswd
# Copy root.client config files
install -m 755 src/packaging/RedHat/openafs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/openafs
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
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
+%else
+install -m 644 src/packaging/RedHat/openafs-client.service $RPM_BUILD_ROOT%{_unitdir}/openafs-client.service
+install -m 755 src/packaging/RedHat/openafs-client.modules $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules/openafs-client.modules
+install -m 644 src/packaging/RedHat/openafs-server.service $RPM_BUILD_ROOT%{_unitdir}/openafs-server.service
+%endif
# Copy PAM modules
install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT%{pamdir}
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
+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"
+MAKE[0]='./configure --with-linux-kernel-headers=${kernel_source_dir} --with-linux-kernel-packaging && make && case "${kernelver_array[0]}${kernelver[0]}" in 2.4.*) mv src/libafs/MODLOAD-*/libafs-* openafs.o ;; *) mv src/libafs/MODLOAD-*/openafs.ko . ;; esac'
CLEAN="make -C src/libafs clean"
-BUILT_MODULE_NAME[0]="\$PACKAGE_NAME"
-DEST_MODULE_LOCATION[0]="/kernel/3rdparty/\$PACKAGE_NAME/"
+BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
+DEST_MODULE_LOCATION[0]="/kernel/3rdparty/$PACKAGE_NAME/"
STRIP[0]=no
AUTOINSTALL=yes
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 LICENSE $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
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
# 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|^restorevol|^rxdebug|scout|^sys|tokens|translate|udebug|unlog|^uss|^vos' \
+ |egrep '^afs|^fs|^kas|^klog|pagsh|^pts|^restorevol|^rxdebug|scout|^sys|tokens|translate|^xstat|udebug|unlog|^uss|^vos' \
|egrep -v '^afs_compile_et' \
>openafs-man1files
>openafs-man5files
/bin/ls $RPM_BUILD_ROOT%{_mandir}/man8 \
- |egrep '^aklog_dynamic_auth|^backup|^bos|^butc|^fms|^fssync-debug|^fstrace|^kas|^read_tape|^uss' \
+ |egrep '^backup|^bos|^butc|^fms|^fssync-debug|^fstrace|^kas|^read_tape|^uss' \
>openafs-man8files
#
%{_bindir}/afsmonitor
%{_bindir}/bos
%{_bindir}/fs
-%{_bindir}/kapasswd
%{_bindir}/klog
%{_bindir}/klog.krb
%{_bindir}/pagsh
%{_bindir}/tokens
%{_bindir}/tokens.krb
%{_bindir}/translate_et
+%{_bindir}/xstat_cm_test
+%{_bindir}/xstat_fs_test
%{_bindir}/udebug
%{_bindir}/unlog
%{_sbindir}/backup
done
# the rest are not needed.
-for f in dlog dpass install knfs livesys xstat_cm_test xstat_fs_test ; do
+for f in dlog dpass install knfs livesys ; do
rm -f $RPM_BUILD_ROOT%{_bindir}/$f
done
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
+for f in 1/dlog 1/copyauth 1/dpass 1/livesys 8/rmtsysd 8/aklog_dynamic_auth 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
%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
+ elif [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP ] ; then
+ srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP
+ dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}+${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
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=openafs${kmodend}
- else
- kvar=%{kxmoddir}${variation}
- modname=openafs${kmodend}
- fi
-
- srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}${kvariant}/extra/openafs
- dstdir=$RPM_BUILD_ROOT${kvar}/fs/openafs
-
- mkdir -p ${dstdir}
-
- install -m 755 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
-done
-%endif
%endif
##############################################################################
fi
%post client
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
chkconfig --add openafs-client
+%else
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
+%endif
if [ ! -d /afs ]; then
mkdir /afs
chown root.root /afs
[ -f /usr/vice/etc/CellServDB.local ] || touch /usr/vice/etc/CellServDB.local
( cd /usr/vice/etc ; \
+ if [ -h CellServDB ]; then \
+ rm -f CellServDB; \
+ fi; \
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
-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
#on an upgrade, don't enable if we were disabled
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
if [ $1 = 1 ] ; then
chkconfig --add openafs-server
fi
%{initdir}/openafs-server condrestart
+%else
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
+%endif
%if %{build_authlibs}
%post authlibs
%preun
if [ $1 = 0 ] ; then
[ -d /afs ] && rmdir /afs
+ :
fi
%preun client
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
if [ $1 = 0 ] ; then
%{initdir}/openafs-client stop
chkconfig --del openafs-client
fi
+%else
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /bin/systemctl --no-reload disable openafs-client.service > /dev/null 2>&1 || :
+ /bin/systemctl stop openafs-client.service > /dev/null 2>&1 || :
+fi
+%endif
%preun server
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
if [ $1 = 0 ] ; then
%{initdir}/openafs-server stop
chkconfig --del openafs-server
fi
+%else
+if [ $1 -eq 0 ] ; then
+ /bin/systemctl --no-reload disable openafs-server.service > /dev/null 2>&1 || :
+ /bin/systemctl stop openafs-server.service > /dev/null 2>&1 || :
+fi
+%endif
+
+%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
+%postun client
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+
+%postun server
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+%endif
%if %{build_dkmspkg}
%post -n dkms-%{name}
%endif
%endif
-%if %{build_modules}
-%if !%{fedorakmod}
-%if %{up_package}
-%post kernel
-/sbin/depmod -ae %{kernvers}
+%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
+%triggerun -- openafs-client < 1.6.0-1
+# Save the current service runlevel info
+# User must manually run systemd-sysv-convert --apply httpd
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save openafs-client >/dev/null 2>&1 ||:
-%postun kernel
-/sbin/depmod -ae %{kernvers}
+# Run this because the SysV package being removed won't do it
+/sbin/chkconfig --del openafs-client >/dev/null 2>&1 || :
-%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}}
+%triggerun -- openafs-server < 1.6.0-1
+# Save the current service runlevel info
+# User must manually run systemd-sysv-convert --apply httpd
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save openafs-server >/dev/null 2>&1 ||:
-%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
+# Run this because the SysV package being removed won't do it
+/sbin/chkconfig --del openafs-server >/dev/null 2>&1 || :
%endif
##############################################################################
%files -f openafs-file-list
%defattr(-,root,root)
-%config /etc/sysconfig/openafs
+%config(noreplace) /etc/sysconfig/openafs
%doc %{_docdir}/openafs-%{afsvers}/LICENSE
%{_libdir}/libafshcrypto.so.*
%{_libdir}/librokenafs.so.*
%dir %{_prefix}/vice/etc
%dir %{_prefix}/vice/etc/C
%{_prefix}/vice/etc/CellServDB.dist
-%config %{_prefix}/vice/etc/ThisCell
-%config %{_prefix}/vice/etc/cacheinfo
+%config(noreplace) %{_prefix}/vice/etc/ThisCell
+%config(noreplace) %{_prefix}/vice/etc/cacheinfo
%{_bindir}/afsio
%{_bindir}/cmdebug
%{_bindir}/up
%{pamdir}/pam_afs.krb.so
%{pamdir}/pam_afs.so.1
%{pamdir}/pam_afs.so
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
%{initdir}/openafs-client
+%else
+%{_unitdir}/openafs-client.service
+%{_sysconfdir}/sysconfig/modules/openafs-client.modules
+%endif
%{_mandir}/man1/cmdebug.*
-%{_mandir}/man1/copyauth.*
%{_mandir}/man1/up.*
%{_mandir}/man5/afs.5.gz
%{_mandir}/man5/afs_cache.5.gz
%{_mandir}/man5/afszcm.cat.5.gz
%{_mandir}/man5/cacheinfo.*
%{_mandir}/man8/afsd.*
-%{_mandir}/man8/rmtsysd.*
%{_mandir}/man8/vsys.*
%{_mandir}/man5/CellAlias.*
%{_prefix}/afs/bin/upserver
%{_prefix}/afs/bin/vlserver
%{_prefix}/afs/bin/volinfo
+%{_prefix}/afs/bin/volscan
%{_prefix}/afs/bin/volserver
%{_sbindir}/kadb_check
%{_sbindir}/prdb_check
%{_sbindir}/vldb_check
%{_sbindir}/vldb_convert
%{_sbindir}/voldump
+%if 0%{?fedora} < 15 && 0%{?rhel} < 7
%{initdir}/openafs-server
+%else
+%{_unitdir}/openafs-server.service
+%endif
%{_mandir}/man5/AuthLog.*
%{_mandir}/man5/BackupLog.*
%{_mandir}/man5/BosConfig.*
%{_mandir}/man8/vlserver.*
%{_mandir}/man8/voldump.*
%{_mandir}/man8/volinfo.*
+%{_mandir}/man8/volscan.*
%{_mandir}/man8/volserver.*
%if %{build_authlibs}
%{_includedir}/afs
%{_includedir}/lock.h
%{_includedir}/lwp.h
-%{_includedir}/preempt.h
%{_includedir}/rx
%{_includedir}/timer.h
%{_includedir}/ubik.h
%{_libdir}/libafshcrypto.a
%{_libdir}/libafshcrypto.so
%{_libdir}/liblwp.a
+%{_libdir}/libopr.a
%{_libdir}/librokenafs.a
%{_libdir}/librokenafs.so
%{_libdir}/librx.a
%{_libdir}/librxkad.a
%{_libdir}/librxstat.a
%{_libdir}/libubik.a
+%{_libdir}/libubik_pthread.a
%{_mandir}/man1/rxgen.*
%{_mandir}/man1/afs_compile_et.*
%files kpasswd
%defattr(-,root,root)
-%{_bindir}/kpasswd
+%{_bindir}/kapasswd
%{_bindir}/kpwvalid
+%{_mandir}/man1/kapasswd.*
+%{_mandir}/man8/kpwvalid.*
%if %{krb5support}
%files krb5
%endif
%endif
-
-%if %{build_modules}
-
-%if !%{fedorakmod}
-%if %{up_package}
-%files kernel
-%defattr(-,root,root)
-%{kxmoddir}/fs/openafs/openafs.*
-%endif
-
-%if %{smp_package}
-%files kernel-smp
-%defattr(-,root,root)
-%{kxmoddir}%{?smp_ext:%{smp_ext}}/fs/openafs/openafs.*
-%endif
-
-%if %{largesmp_package}
-%files kernel-largesmp
-%defattr(-,root,root)
-%{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/fs/openafs/openafs.*
-%endif
-
-%if %{bigmem_package}
-%files kernel-bigmem
-%defattr(-,root,root)
-%{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/fs/openafs/openafs.*
-%endif
-
-%if %{hugemem_package}
-%files kernel-hugemem
-%defattr(-,root,root)
-%{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/fs/openafs/openafs.*
-%endif
-%endif
-
-%endif
-
##############################################################################
###
### openafs.spec change log
* 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
+* Mon 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