redhat: fix whitespace errors in the rpm spec file
[openafs.git] / src / packaging / RedHat / openafs.spec.in
1 # Openafs Spec $Revision$
2
3 %define afsvers @VERSION@
4 %define pkgvers @LINUX_PKGVER@
5 # for beta/rc releases make pkgrel 0.<tag>
6 # for real releases make pkgrel 1 (or more for extra releases)
7 %define pkgrel @LINUX_PKGREL@
8
9 %{!?build_dkmspkg: %define build_dkmspkg 1}
10
11 # Determine presence of rpmbuild command line --define arguments used for
12 # option specification
13 %define kernvers_on_cmdline %{?kernvers:1}%{!?kernvers:0}
14 %define build_userspace_on_cmdline %{?build_userspace:1}%{!?build_userspace:0}
15 %define build_modules_on_cmdline %{?build_modules:1}%{!?build_modules:0}
16 %define build_authlibs_on_cmdline %{?build_authlibs:1}%{!?build_authlibs:0}
17
18 %if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
19 %define depmod /usr/sbin/depmod
20 %else
21 %define depmod /sbin/depmod
22 %endif
23
24 %define kmodtool bash %{_sourcedir}/openafs-kmodtool
25
26 %define kmod_name openafs
27 %define kverrel %(%{kmodtool} verrel %{?kernvers} 2>/dev/null)
28
29 %define upvar ""
30 %{!?kvariants: %define kvariants %{?upvar}}
31
32 %if %{?ksrcdir:1}%{!?ksrcdir:0}
33   if ( -d %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}) ; then
34     %define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}}
35   else
36     %define ksrcdir %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}}
37   fi
38 %endif
39
40 %define dkms_version %{pkgvers}-%{pkgrel}%{?dist}
41
42 # Set 'debugspec' to 1 if you want to debug the spec file.  This will
43 # not remove the installed tree as part of the %clean operation
44 %if %{?debugspec:0}%{!?debugspec:1}
45 %define debugspec 0
46 %endif
47
48 # Set 'krb5support' to 1 if you want to build the openafs-krb5 package
49 # to distribute aklog and asetkey
50 %define krb5support %{?_without_krb5:0}%{!?_without_krb5:1}
51
52 # Set 'bootkernelsupport' to 1 if you want to build the
53 # kernel module for Red Hat BOOT Kernels on x86.
54 %define bootkernelsupport %{?_with_bootkernel:1}%{!?_with_bootkernel:0}
55
56 # Define the location of your init.d directory
57 %define initdir /etc/rc.d/init.d
58
59 #determine if the kernel provides an arch-specific Provides
60 %define kprovidesarch %(%{kversis} provideskernelarch %{ksrcdir} %{_target_cpu})
61
62 # Define the location of the PAM security module directory
63 %define pamdir /%{_lib}/security
64
65 #######################################################################
66 # You probably don't need to change anything beyond this line
67 # NOTE: If you do, please email me!!!
68
69 # Determine which elements of OpenAFS to build.  For non-x86 arches
70 # (subject to the ExclusiveArch setting, below), we build both userspace
71 # and modules.  For most x86 arches, we build just the kernel modules.  For
72 # i386, we build just the userspace.  If you're running an i386 kernel,
73 # you'll need to tweak that last bit.
74 %if !%{build_userspace_on_cmdline} && !%{build_modules_on_cmdline}
75
76 %define build_userspace 1
77 %define build_modules 1
78 %ifarch %{ix86} x86_64 ia64
79 %define build_authlibs 1
80 %else
81 %define build_authlibs 0
82 %endif
83
84 %else
85 %if !%{build_userspace_on_cmdline}
86 %define build_userspace 0
87 %endif
88 %if !%{build_modules_on_cmdline}
89 %define build_modules 0
90 %endif
91 %endif
92
93 %if !%{build_authlibs_on_cmdline}
94 %if %{build_userspace_on_cmdline}
95 %define build_authlibs 1
96 %else
97 %define build_authlibs 0
98 %endif
99 %endif
100
101 # Make sure RPM doesn't complain about installed but non-packaged files.
102 #define __check_files  %{nil}
103
104 Summary: OpenAFS distributed filesystem
105 Name: openafs
106 Version: %{pkgvers}
107 Release: %{pkgrel}%{?dist}
108 License: IBM Public License
109 URL: http://www.openafs.org
110 BuildRoot: %{_tmppath}/%{name}-%{version}-root
111 Packager: OpenAFS Gatekeepers <openafs-gatekeepers@openafs.org>
112 Group: Networking/Filesystems
113 BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison
114 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
115 BuildRequires: systemd-units
116 %endif
117 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 6
118 BuildRequires: perl-devel
119 %endif
120 BuildRequires: perl(ExtUtils::Embed)
121 %if %{krb5support}
122 BuildRequires: krb5-devel
123 %endif
124 %if %{build_modules}
125 BuildRequires: kernel-devel
126 %endif
127
128 ExclusiveArch: %{ix86} x86_64 ia64 s390 s390x sparc64 ppc ppc64
129
130 #    http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
131 Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
132 Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar.bz2
133 %define srcdir openafs-%{afsvers}
134
135 Source10: http://www.openafs.org/dl/openafs/%{afsvers}/RELNOTES-%{afsvers}
136 Source11: http://www.openafs.org/dl/openafs/%{afsvers}/ChangeLog
137
138 Source20: https://www.central.org/dl/cellservdb/CellServDB.2016-01-01
139
140 Source30: openafs-kernel-version.sh
141 Source996: openafs-kvers-is.sh
142 Source997: openafs-buildfedora.pl
143 Source998: openafs-buildall.sh
144 Source999: openafs-kmodtool
145
146 %description
147 The AFS distributed filesystem.  AFS is a distributed filesystem
148 allowing cross-platform sharing of files among multiple computers.
149 Facilities are provided for access control, authentication, backup and
150 administrative management.
151
152 This package provides common files shared across all the various
153 OpenAFS packages but are not necessarily tied to a client or server.
154
155 The OpenAFS SRPM can be rebuilt with the following options to control
156 what gets built:
157
158  --define "kernvers 3.19.3-100.fc20.i686" Specify the specific kernel version
159                                   to build modules against. The default is
160                                   to build against the currently-running
161                                   kernel.
162  --define "kbase /lib/modules/"   The base location to look for kernel headers
163  --define "kend /build"           The 'end' location to look for kernels
164                                   The build will define ksrvdir as
165                                   %%{kbase}<kernvers>%%{kend}
166
167  --without krb5                   Disable krb5 support (default: with krb5)
168  --with bitmap-later              Enable "bitmap later" support
169  --with bos-restricted            Enable "bos restricted" mode
170  --with supergroups               Enable "supergroups"
171
172  --target=i386                    The target architecture to build for.
173                                   When building for a non-default target
174                                   the build may choose whether to build
175                                   userspace or kernel modules automatically.
176                                   The defaults are probably what you want.
177
178  --define "build_userspace 1"     Request building of userspace tools
179  --define "build_modules 1"       Request building of kernel modules
180                                   You probably never need to specify these.
181
182  --define "kmoddir /lib/modules"  This is the base location where modules
183                                   will be installed.  You probably don't
184                                   need to change this ever.
185
186  --define "kvariants <variants>"  When building Fedora style kernel modules,
187                                   this defines the set of kernel variants
188                                   to build.
189                                   <variants> is a space seperated list which
190                                   may contain one or more of
191                                   '' (for the generic kernel), smp, PAE, xen
192                                   or kdump
193
194 To a kernel module for your running kernel, just run:
195   rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{pkgrel}%{?dist}.src.rpm
196
197 ##############################################################################
198 #
199 # build the userspace side of things if so requested
200 #
201 ##############################################################################
202 %if %{build_userspace}
203
204 %package client
205 Requires: binutils, openafs = %{version}
206 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
207 Requires: systemd-units
208 Requires(post): systemd-units, systemd-sysv
209 Requires(preun): systemd-units
210 Requires(postun): systemd-units
211 %endif
212
213 Requires: %{name}-kmod >= %{version}
214 Provides: %{name}-kmod-common = %{version}
215
216 Summary: OpenAFS Filesystem Client
217 Group: Networking/Filesystem
218
219 %description client
220 The AFS distributed filesystem.  AFS is a distributed filesystem
221 allowing cross-platform sharing of files among multiple computers.
222 Facilities are provided for access control, authentication, backup and
223 administrative management.
224
225 This package provides basic client support to mount and manipulate
226 AFS.
227
228 %package server
229 Requires: openafs = %{version}
230 Summary: OpenAFS Filesystem Server
231 Group: Networking/Filesystems
232 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
233 Requires: systemd-units
234 Requires(post): systemd-units, systemd-sysv
235 Requires(preun): systemd-units
236 Requires(postun): systemd-units
237 %endif
238
239 %description server
240 The AFS distributed filesystem.  AFS is a distributed filesystem
241 allowing cross-platform sharing of files among multiple computers.
242 Facilities are provided for access control, authentication, backup and
243 administrative management.
244
245 This package provides basic server support to host files in an AFS
246 Cell.
247
248 %if %{build_dkmspkg}
249 %package -n dkms-%{name}
250 Summary:        DKMS-ready kernel source for AFS distributed filesystem
251 Group:          Development/Kernel
252 Provides:       openafs-kernel = %{version}
253 Provides: %{name}-kmod = %{version}
254 Requires(pre):  dkms
255 Requires(pre):  flex
256 Requires(post): dkms
257 Requires:       %{name}-kmod-common = %{version}
258
259 %description -n dkms-%{name}
260 The AFS distributed filesystem.  AFS is a distributed filesystem
261 allowing cross-platform sharing of files among multiple computers.
262 Facilities are provided for access control, authentication, backup and
263 administrative management.
264
265 This package provides the source code to allow DKMS to build an
266 AFS kernel module.
267 %endif
268
269 %if %{build_authlibs}
270 %package authlibs
271 Summary: OpenAFS authentication shared libraries
272 Group: Networking/Filesystems
273
274 %description authlibs
275 The AFS distributed filesystem.  AFS is a distributed filesystem
276 allowing cross-platform sharing of files among multiple computers.
277 Facilities are provided for access control, authentication, backup and
278 administrative management.
279
280 This package provides a shared version of libafsrpc and libafsauthent.
281 None of the programs included with OpenAFS currently use these shared
282 libraries; however, third-party software that wishes to perform AFS
283 authentication may link against them.
284 %endif
285
286 %package authlibs-devel
287 %if %{build_authlibs}
288 Requires: openafs-authlibs = %{version}-%{release}
289 %endif
290 Requires: openafs-devel = %{version}-%{release}
291 Summary: OpenAFS shared library development
292 Group: Development/Filesystems
293
294 %description authlibs-devel
295 The AFS distributed filesystem.  AFS is a distributed filesystem
296 allowing cross-platform sharing of files among multiple computers.
297 Facilities are provided for access control, authentication, backup and
298 administrative management.
299
300 This package includes the static versions of libafsrpc and
301 libafsauthent, and symlinks required for building against the dynamic
302 libraries.
303
304 %package devel
305 Summary: OpenAFS Development Libraries and Headers
306 Group: Development/Filesystems
307 Requires: openafs = %{version}-%{release}
308
309 %description devel
310 The AFS distributed filesystem.  AFS is a distributed filesystem
311 allowing cross-platform sharing of files among multiple computers.
312 Facilities are provided for access control, authentication, backup and
313 administrative management.
314
315 This package provides static development libraries and headers needed
316 to compile AFS applications.  Note: AFS currently does not provide
317 shared libraries.
318
319 %package docs
320 Summary: OpenAFS user and administrator documentation
321 Requires: openafs = %{version}-%{release}
322 Group: Networking/Filesystems
323
324 %description docs
325 The AFS distributed filesystem.  AFS is a distributed filesystem
326 allowing cross-platform sharing of files among multiple computers.
327 Facilities are provided for access control, authentication, backup and
328 administrative management.
329
330 This package provides HTML documentation for OpenAFS users and system
331 administrators.
332
333 %package kernel-source
334 Summary: OpenAFS Kernel Module source tree
335 Group: Networking/Filesystems
336 Provides: openafs-kernel = %{version}
337 Provides: %{name}-kmod = %{version}
338
339 %description kernel-source
340 The AFS distributed filesystem.  AFS is a distributed filesystem
341 allowing cross-platform sharing of files among multiple computers.
342 Facilities are provided for access control, authentication, backup and
343 administrative management.
344
345 This package provides the source code to build your own AFS kernel
346 module.
347
348 %package compat
349 Summary: OpenAFS client compatibility symlinks
350 Requires: openafs = %{version}, openafs-client = %{version}
351 Group: Networking/Filesystems
352 Obsoletes: openafs-client-compat
353
354 %description compat
355 The AFS distributed filesystem.  AFS is a distributed filesystem
356 allowing cross-platform sharing of files among multiple computers.
357 Facilities are provided for access control, authentication, backup and
358 administrative management.
359
360 This package provides compatibility symlinks in /usr/afsws.  It is
361 completely optional, and is only necessary to support legacy
362 applications and scripts that hard-code the location of AFS client
363 programs.
364
365 %package kpasswd
366 Summary: OpenAFS KA kpasswd support
367 Requires: openafs
368 Group: Networking/Filesystems
369
370 %description kpasswd
371 The AFS distributed filesystem.  AFS is a distributed filesystem
372 allowing cross-platform sharing of files among multiple computers.
373 Facilities are provided for access control, authentication, backup and
374 administrative management.
375
376 This package provides the kpasswd executable, renamed to kapasswd to avoid
377 clashes, for sites still using KAserver instead of Krb5.
378
379 %if %{krb5support}
380 %package krb5
381 Summary: OpenAFS programs to use with krb5
382 Requires: openafs = %{version}
383 Group: Networking/Filesystems
384 BuildRequires: krb5-devel
385
386 %description krb5
387 The AFS distributed filesystem.  AFS is a distributed filesystem
388 allowing cross-platform sharing of files among multiple computers.
389 Facilities are provided for access control, authentication, backup and
390 administrative management.
391
392 This package provides compatibility programs so you can use krb5
393 to authenticate to AFS services, instead of using AFS's homegrown
394 krb4 lookalike services.
395 %endif
396
397 %endif
398
399 ##############################################################################
400 #
401 # build the kernel modules if so requested
402 #
403 ##############################################################################
404 %if %{build_modules}
405
406 %{expand:%(%{kmodtool} rpmtemplate %{kmod_name} %{kverrel} %{depmod} %{kvariants} 2>/dev/null)}
407
408 %endif
409
410 ##############################################################################
411 #
412 # PREP
413 #
414 ##############################################################################
415
416 %prep
417
418 : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
419 : @@@
420 : @@@ kernel version:     %{kernvers}
421 : @@@ kernel variations:  %{kvariants}
422 : @@@ PAM modules dir:    %{pamdir}
423 : @@@ build userspace:    %{build_userspace}
424 : @@@ build modules:      %{build_modules}
425 : @@@ arch:               %{_arch}
426 : @@@ target cpu:         %{_target_cpu}
427 : @@@
428 : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
429
430 # Install OpenAFS src and doc
431 #%setup -q -n %{srcdir}
432 %setup -q -b 1 -n %{srcdir}
433
434 ##############################################################################
435 #
436 # building
437 #
438 ##############################################################################
439 %build
440 case %{_arch} in
441        x86_64)                         sysname=amd64_linux26        ;;
442        alpha*)                         sysname=alpha_linux_26       ;;
443        i386|i486|i586|i686|athlon)     sysname=i386_linux26         ;;
444        *)                              sysname=%{_arch}_linux26     ;;
445 esac
446
447 %ifarch %{ix86}
448 archlist="i386 i586 i686 athlon"
449 %if %{bootkernelsupport}
450   archlist="${archlist} BOOT"
451 %endif
452 %else
453 archlist=%{_arch}
454 %endif
455
456 #
457 # PrintDefine var value statements file
458 #
459 PrintDefine() {
460     case $3 in
461     *ifn*)
462         echo "#ifndef $1" >> $4
463         ;;
464     esac
465     case $3 in
466     *und*)
467         echo "#undef $1" >> $4
468         ;;
469     esac
470     case $3 in
471     *def*)
472         echo "#define $1 $2" >> $4
473         ;;
474     esac
475     case $3 in
476     *end*)
477         echo "#endif" >> $4
478         ;;
479     esac
480     case $3 in
481     *inc*)
482         echo "#include $1" >> $4
483         ;;
484     esac
485     case $3 in
486     *nl*)
487         echo "" >> $4
488         ;;
489     esac
490 }
491
492 # PrintRedhatKernelFix arch mp file
493 PrintRedhatKernelFix() {
494     arch="$1"
495     up=0
496     smp=0
497     largesmp=0
498     ent=0
499     bigmem=0
500     hugemem=0
501     boot=0
502     bootsmp=0
503
504     case "$2" in
505        up)     up=1;;
506        smp)    smp=1;;
507        largesmp) largesmp=1;;
508        bigmem) bigmem=1;;
509        hugemem) hugemem=1;;
510        *)
511                echo "$2 not supported"
512                exit 2;;
513     esac
514
515     file="$3"
516
517     rm -f $file
518     touch $file
519
520     PrintDefine "REDHAT_FIX_H" "" ifn,def,nl $file
521
522     PrintDefine __BOOT_KERNEL_ENTERPRISE $ent     und,def,nl $file
523     PrintDefine __BOOT_KERNEL_BIGMEM     $bigmem  und,def,nl $file
524     PrintDefine __BOOT_KERNEL_HUGEMEM    $hugemem und,def,nl $file
525     PrintDefine __BOOT_KERNEL_SMP        $smp     und,def,nl $file
526     PrintDefine __BOOT_KERNEL_LARGESMP   $largesmp und,def,nl $file
527     PrintDefine __BOOT_KERNEL_UP         $up      und,def,nl $file
528     PrintDefine __BOOT_KERNEL_BOOT       $boot    und,def,nl $file
529     PrintDefine __BOOT_KERNEL_BOOTSMP    $bootsmp und,def,nl $file
530
531     PrintDefine '"/boot/kernel.h"' "" inc,nl $file      # include file
532
533     for ar in $archlist ; do
534         if [ "$ar" = "$arch" ]; then
535             PrintDefine "__MODULE_KERNEL_$ar" "1" ifn,def,end $file
536         else
537             PrintDefine "__MODULE_KERNEL_$ar" "" und $file      # undef
538         fi
539     done
540     echo "" >> $file
541
542     PrintDefine "" "" end $file
543
544     if [ %{debugspec} = 1 ] ; then
545         echo "Kernel Configuration File for Red Hat kernels:"
546         cat $file
547     fi
548 }
549
550 config_opts="--enable-redhat-buildsys \
551         %{?_with_bitmap_later:--enable-bitmap-later} \
552         %{?_with_bos_restricted:--enable-bos-restricted-mode} \
553         %{?_with_supergroups:--enable-supergroups} \
554         --enable-transarc-paths"
555
556 # Configure AFS
557
558 # If we're using Fedora kmods, work out which is the best kernel module to
559 # use for the userland configuration step. If no variants have been specified,
560 # then use the standard kernel. If variants are specified, use the standard kernel
561 # if it's listed, otherwise pick the first listed kernel.
562 ksrc=""
563 for kvariant in %{kvariants} ; do
564   if [ -z "${kvariant}" -o -z "$ksrc" ] ; then
565     if [ -d %{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} ] ; then
566       ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
567     elif [ -d %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant} ] ; then
568       ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant}
569     else
570       ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
571     fi
572   fi
573 done
574 if [ -z "$ksrc" ] ; then
575 ksrc=%{ksrcdir}
576 fi
577
578 CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
579
580 %if %{krb5support}
581 %if %{?krb5config:1}%{!?krb5config:0}
582 KRB5_CONFIG="%{krb5config}"
583 export KRB5_CONFIG
584 %endif
585 %endif
586
587 ./configure --with-afs-sysname=${sysname} \
588        --prefix=%{_prefix} \
589        --libdir=%{_libdir} \
590        --bindir=%{_bindir} \
591        --sbindir=%{_sbindir} \
592        --disable-strip-binaries \
593        --enable-debug \
594        --with-linux-kernel-packaging \
595 %if %{build_modules}
596        --with-linux-kernel-headers=${ksrc} \
597 %endif
598 %if %{krb5support}
599         --with-krb5 \
600 %endif
601        $config_opts \
602        || exit 1
603
604 # Build the libafs tree
605 make only_libafs_tree || exit 1
606
607 %if %{krb5support}
608 %if %{?krb5config:1}%{!?krb5config:0}
609 KRB5_CONFIG="%{krb5config}"
610 export KRB5_CONFIG
611 %endif
612 %endif
613
614 # Configure each of our kernel modules
615
616 %if %{build_modules}
617 for kvariant in %{kvariants} ; do
618   if [ -n "${kvariant}" ] ; then
619
620     if [ -d %{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} ] ; then
621       ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
622
623     elif [ -d %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant} ] ; then
624       # Fedora 20 started putting kernel sources in e.g.
625       # 3.12.5-302.fc20.i686+PAE, instead of:
626       # 3.12.5-302.fc20.i686.PAE
627       ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:++$kvariant}
628
629     else
630       ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
631     fi
632
633     cp -R libafs_tree _kmod_build_${kvariant}
634     pushd _kmod_build_${kvariant}
635     ./configure --with-afs-sysname=${sysname} \
636         --prefix=%{_prefix} \
637         --libdir=%{_libdir} \
638         --bindir=%{_bindir} \
639         --sbindir=%{_sbindir} \
640         --with-linux-kernel-packaging \
641         --with-linux-kernel-headers=${ksrc} \
642 %if %{krb5support}
643         --with-krb5 \
644 %endif
645         $config_opts \
646         || exit 1
647     popd
648   fi
649 done
650 %endif
651
652 %if %{build_userspace}
653 # Build the user-space AFS stuff
654 make dest_nolibafs || exit 1
655 %endif
656
657 %if %{build_modules}
658 for kvariant in %{kvariants}
659 do
660   if [ -n "${kvariant}" ] ; then
661     pushd _kmod_build_$kvariant;
662     make all
663     popd
664   else
665     make dest_only_libafs
666   fi
667 done
668 %endif
669
670
671 ##############################################################################
672 #
673 # installation
674 #
675 ##############################################################################
676 %install
677
678 export DONT_GPRINTIFY=1
679
680 [ $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT
681
682 case %{_arch} in
683        x86_64)                         sysname=amd64_linux26        ;;
684        alpha*)                         sysname=alpha_linux_26       ;;
685        i386|i486|i586|i686|athlon)     sysname=i386_linux26         ;;
686        *)                              sysname=%{_arch}_linux26     ;;
687 esac
688
689 # Build install tree
690 %if %{build_userspace}
691 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
692 mkdir -p $RPM_BUILD_ROOT%{_libdir}
693 mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
694 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
695 mkdir -p $RPM_BUILD_ROOT%{initdir}
696 %else
697 mkdir -p $RPM_BUILD_ROOT%{_unitdir}
698 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules
699 %endif
700 mkdir -p $RPM_BUILD_ROOT/etc/openafs
701 mkdir -p $RPM_BUILD_ROOT%{pamdir}
702 mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/etc
703 mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/logs
704 mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/etc
705 mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/cache
706 chmod 700 $RPM_BUILD_ROOT%{_prefix}/vice/cache
707 mkdir -p $RPM_BUILD_ROOT%{_mandir}
708
709 # Copy files from dest to the appropriate places in BuildRoot
710 tar cf - -C ${sysname}/dest bin include | tar xf - -C $RPM_BUILD_ROOT%{_prefix}
711 tar cf - -C ${sysname}/dest/lib . | tar xf - -C $RPM_BUILD_ROOT%{_libdir}
712 tar cf - -C ${sysname}/dest/etc . | tar xf - -C $RPM_BUILD_ROOT%{_sbindir}
713 tar cf - -C ${sysname}/dest/root.server%{_prefix}/afs bin | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/afs
714 tar cf - -C ${sysname}/dest/root.client%{_prefix}/vice/etc afsd C | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/vice/etc
715
716 # Set the executable bit on libraries in libdir, so rpmbuild knows to
717 # create "Provides" entries in the package metadata for the libraries
718 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
719
720 # Fix the location of restorevol, since it should be available for
721 # any user in /usr/bin
722 mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/restorevol $RPM_BUILD_ROOT%{_bindir}/restorevol
723
724 # Rename kpasswd to kapasswd
725 mv -f $RPM_BUILD_ROOT%{_bindir}/kpasswd $RPM_BUILD_ROOT%{_bindir}/kapasswd
726
727 # Copy root.client config files
728 install -m 755 src/packaging/RedHat/openafs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/openafs
729 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
730 install -m 755 src/packaging/RedHat/openafs-client.init $RPM_BUILD_ROOT%{initdir}/openafs-client
731 install -m 755 src/packaging/RedHat/openafs-server.init $RPM_BUILD_ROOT%{initdir}/openafs-server
732 %else
733 install -m 644 src/packaging/RedHat/openafs-client.service $RPM_BUILD_ROOT%{_unitdir}/openafs-client.service
734 install -m 755 src/packaging/RedHat/openafs-client.modules $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules/openafs-client.modules
735 install -m 644 src/packaging/RedHat/openafs-server.service $RPM_BUILD_ROOT%{_unitdir}/openafs-server.service
736 %endif
737
738 # Copy PAM modules
739 install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT%{pamdir}
740
741 # PAM symlinks
742 ln -sf pam_afs.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.so
743 ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.krb.so
744
745 # Populate /usr/vice/etc
746 uve=$RPM_BUILD_ROOT%{_prefix}/vice/etc
747 install -p -m 644 src/packaging/RedHat/openafs-ThisCell $uve/ThisCell
748 install -p -m 644 %{SOURCE20} $uve/CellServDB.dist
749 install -p -m 644 src/packaging/RedHat/openafs-cacheinfo $uve/cacheinfo
750
751 #
752 # install dkms source
753 #
754 install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/src
755 cp -a libafs_tree $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}
756
757 cat > $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}/dkms.conf <<"EOF"
758
759 PACKAGE_VERSION="%{dkms_version}"
760
761 # Items below here should not have to change with each driver version
762 PACKAGE_NAME="%{name}"
763 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'
764 CLEAN="make -C src/libafs clean"
765
766 BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
767 DEST_MODULE_LOCATION[0]="/kernel/3rdparty/$PACKAGE_NAME/"
768 STRIP[0]=no
769 AUTOINSTALL=yes
770
771 EOF
772
773 #
774 # install kernel-source
775 #
776
777 # Install the kernel module source tree
778 mkdir -p $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
779 tar cf - -C libafs_tree . | \
780         tar xf - -C $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
781
782 # Next, copy the LICENSE Files, README
783 install -m 644 LICENSE $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
784 install -m 644 src/packaging/RedHat/openafs-LICENSE.Sun $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
785 install -m 644 src/packaging/RedHat/openafs-README $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/README
786
787 #
788 # Install DOCUMENTATION
789 #
790
791 # Build the DOC directory
792 mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
793 tar cf - -C doc LICENSE html pdf | \
794     tar xf - -C $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
795 install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
796 install -m 644 %{SOURCE11} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
797
798 #
799 # man pages
800 #
801 tar cf - -C doc/man-pages man1 man5 man8 | \
802     tar xf - -C $RPM_BUILD_ROOT%{_mandir}
803
804 # Copy the uninstalled krb5 files (or delete the unused krb5 files)
805 %if %{krb5support}
806 mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/asetkey $RPM_BUILD_ROOT%{_sbindir}/asetkey
807 %else
808 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.*
809 %endif
810
811 # remove unused man pages
812 for x in afs_ftpd afs_inetd afs_login afs_rcp afs_rlogind afs_rsh \
813     dkload knfs package runntp symlink symlink_list symlink_make \
814     symlink_remove; do
815         rm -f $RPM_BUILD_ROOT%{_mandir}/man1/${x}.1
816 done
817
818 # rename kpasswd to kapasswd
819 mv $RPM_BUILD_ROOT%{_mandir}/man1/kpasswd.1 $RPM_BUILD_ROOT%{_mandir}/man1/kapasswd.1
820
821 # gzip man pages
822 gzip -9 $RPM_BUILD_ROOT%{_mandir}/man*/*
823
824 # create list of man pages that go in the 'openafs' package
825 /bin/ls $RPM_BUILD_ROOT%{_mandir}/man1 \
826         |egrep '^afs|^fs|^kas|^klog|pagsh|^pts|^restorevol|^rxdebug|scout|^sys|tokens|translate|^xstat|udebug|unlog|^uss|^vos' \
827         |egrep -v '^afs_compile_et|^klog\.krb5' \
828         >openafs-man1files
829
830 /bin/ls $RPM_BUILD_ROOT%{_mandir}/man5 \
831         |egrep 'CellServDB|ThisCell|afsmonitor|^butc|^uss' \
832         >openafs-man5files
833
834 /bin/ls $RPM_BUILD_ROOT%{_mandir}/man8 \
835         |egrep '^backup|^bos|^butc|^fms|^fssync-debug|^fstrace|^kas|^read_tape|^uss' \
836         >openafs-man8files
837
838 #
839 # create filelist
840 #
841 grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
842 %{_bindir}/afsmonitor
843 %{_bindir}/bos
844 %{_bindir}/fs
845 %{_bindir}/klog
846 %{_bindir}/klog.krb
847 %{_bindir}/pagsh
848 %{_bindir}/pagsh.krb
849 %{_bindir}/pts
850 %{_bindir}/restorevol
851 %{_bindir}/scout
852 %{_bindir}/sys
853 %{_bindir}/tokens
854 %{_bindir}/tokens.krb
855 %{_bindir}/translate_et
856 %{_bindir}/xstat_cm_test
857 %{_bindir}/xstat_fs_test
858 %{_bindir}/udebug
859 %{_bindir}/unlog
860 %{_sbindir}/backup
861 %{_sbindir}/butc
862 %{_sbindir}/fms
863 %{_sbindir}/fstrace
864 %{_sbindir}/kas
865 %{_sbindir}/read_tape
866 %{_sbindir}/rxdebug
867 %{_sbindir}/uss
868 %{_sbindir}/vos
869 %{_sbindir}/vsys
870 EOF-openafs-file-list
871
872 # add man pages to the list
873 cat openafs-man1files \
874         | ( while read x; do echo "%{_mandir}/man1/$x"; done ) \
875         >>openafs-file-list
876 cat openafs-man5files \
877         | ( while read x; do echo "%{_mandir}/man5/$x"; done ) \
878         >>openafs-file-list
879 cat openafs-man8files \
880         | ( while read x; do echo "%{_mandir}/man8/$x"; done ) \
881         >>openafs-file-list
882
883 #
884 # Install compatiblity links
885 #
886 for d in bin:bin etc:sbin; do
887   olddir=`echo $d | sed 's/:.*$//'`
888   newdir=`echo $d | sed 's/^.*://'`
889   mkdir -p $RPM_BUILD_ROOT%{_prefix}/afsws/$olddir
890   for f in `cat openafs-file-list`; do
891     if echo $f | grep -q /$newdir/; then
892       fb=`basename $f`
893       ln -sf %{_prefix}/$newdir/$fb $RPM_BUILD_ROOT%{_prefix}/afsws/$olddir/$fb
894     fi
895   done
896 done
897
898 #
899 # Remove files we're not installing
900 #
901
902 # remove duplicated files from /usr/afs/bin
903 for f in bos fs kas klog klog.krb kpwvalid pts tokens tokens.krb udebug vos ; do
904   rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/$f
905 done
906
907 # the rest are not needed.
908 for f in dlog dpass install knfs livesys ; do
909   rm -f $RPM_BUILD_ROOT%{_bindir}/$f
910 done
911
912 # not supported on Linux or duplicated
913 for f in kdb rmtsysd kpwvalid ; do
914   rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
915 done
916 # sometimes install sucks and puts down a directory. kill it all.
917 rm -rf $RPM_BUILD_ROOT%{_sbindir}/kdump*
918
919 # remove man pages from programs deleted above
920 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
921   rm -f $RPM_BUILD_ROOT%{_mandir}/man$f.*
922 done
923
924 # PAM modules are doubly-installed  Remove the version we don't need
925 for f in pam_afs.krb.so.1 pam_afs.so.1 ; do
926   rm -f $RPM_BUILD_ROOT%{_libdir}/$f
927 done
928
929 %if !%{build_authlibs}
930 rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so
931 rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
932 rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so.*
933 rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so.*
934 %endif
935
936 %endif
937
938 %if %{build_modules}
939 for kvariant in %{kvariants}
940 do
941   if [ -n "$kvariant" ] ; then
942     if [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP ] ; then
943       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
944       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
945     elif [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP ] ; then
946       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP
947       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}+${kvariant}/extra/openafs
948     else
949       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}.${kvariant}-SP
950       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}.${kvariant}/extra/openafs
951     fi
952   else
953     if [ -d ${sysname}/dest/root.client/lib/modules/%{kverrel}/extra/openafs ] ; then
954       srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}/extra/openafs
955       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}/extra/openafs
956     else
957       srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
958       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
959     fi
960   fi
961
962   mkdir -p ${dstdir}
963   install -m 755 ${srcdir}/openafs.ko ${dstdir}/openafs.ko
964 done
965 %endif
966
967 ##############################################################################
968 ###
969 ### clean
970 ###
971 ##############################################################################
972 %clean
973 rm -f openafs-file-list
974 [ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
975         rm -fr $RPM_BUILD_ROOT
976
977
978 ##############################################################################
979 ###
980 ### scripts
981 ###
982 ##############################################################################
983 %if %{build_userspace}
984
985 %pre compat
986 if [ -e %{_prefix}/afsws ]; then
987         /bin/rm -fr %{_prefix}/afsws
988 fi
989
990 %post client
991 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
992 chkconfig --add openafs-client
993 %else
994 if [ $1 -eq 1 ] ; then
995     # Initial installation
996     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
997 fi
998 %endif
999 if [ ! -d /afs ]; then
1000         mkdir /afs
1001         chown root.root /afs
1002         chmod 0755 /afs
1003         [ -x /sbin/restorecon ] && /sbin/restorecon /afs
1004 fi
1005
1006 # Create the CellServDB
1007 [ -f /usr/vice/etc/CellServDB.local ] || touch /usr/vice/etc/CellServDB.local
1008
1009 ( cd /usr/vice/etc ; \
1010   if [ -h CellServDB ]; then \
1011     rm -f CellServDB; \
1012   fi; \
1013   cat CellServDB.local CellServDB.dist > CellServDB ; \
1014   chmod 644 CellServDB )
1015
1016 %post server
1017 #on an upgrade, don't enable if we were disabled
1018 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1019 if [ $1 = 1 ] ; then
1020   chkconfig --add openafs-server
1021 fi
1022 %{initdir}/openafs-server condrestart
1023 %else
1024 if [ $1 -eq 1 ] ; then
1025     # Initial installation
1026     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1027 fi
1028 %endif
1029
1030 %if %{build_authlibs}
1031 %post authlibs
1032 /sbin/ldconfig
1033
1034 %postun authlibs
1035 /sbin/ldconfig
1036 %endif
1037
1038 %preun
1039 if [ $1 = 0 ] ; then
1040         [ -d /afs ] && rmdir /afs
1041         :
1042 fi
1043
1044 %preun client
1045 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1046 if [ $1 = 0 ] ; then
1047         %{initdir}/openafs-client stop
1048         chkconfig --del openafs-client
1049 fi
1050 %else
1051 if [ $1 -eq 0 ] ; then
1052         # Package removal, not upgrade
1053         /bin/systemctl --no-reload disable openafs-client.service > /dev/null 2>&1 || :
1054         /bin/systemctl stop openafs-client.service > /dev/null 2>&1 || :
1055 fi
1056 %endif
1057
1058 %preun server
1059 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1060 if [ $1 = 0 ] ; then
1061         %{initdir}/openafs-server stop
1062         chkconfig --del openafs-server
1063 fi
1064 %else
1065 if [ $1 -eq 0 ] ; then
1066         /bin/systemctl --no-reload disable openafs-server.service > /dev/null 2>&1 || :
1067         /bin/systemctl stop openafs-server.service > /dev/null 2>&1 || :
1068 fi
1069 %endif
1070
1071 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
1072 %postun client
1073 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1074
1075 %postun server
1076 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1077 %endif
1078
1079 %if %{build_dkmspkg}
1080 %post -n dkms-%{name}
1081 dkms add -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1082 dkms build -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1083 dkms install -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1084
1085 %preun -n dkms-%{name}
1086 dkms remove -m %{name} -v %{dkms_version} --rpm_safe_upgrade --all ||:
1087 %endif
1088 %endif
1089
1090 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
1091 %triggerun -- openafs-client < 1.6.0-1
1092 # Save the current service runlevel info
1093 # User must manually run systemd-sysv-convert --apply httpd
1094 # to migrate them to systemd targets
1095 /usr/bin/systemd-sysv-convert --save openafs-client >/dev/null 2>&1 ||:
1096
1097 # Run this because the SysV package being removed won't do it
1098 /sbin/chkconfig --del openafs-client >/dev/null 2>&1 || :
1099
1100 %triggerun -- openafs-server < 1.6.0-1
1101 # Save the current service runlevel info
1102 # User must manually run systemd-sysv-convert --apply httpd
1103 # to migrate them to systemd targets
1104 /usr/bin/systemd-sysv-convert --save openafs-server >/dev/null 2>&1 ||:
1105
1106 # Run this because the SysV package being removed won't do it
1107 /sbin/chkconfig --del openafs-server >/dev/null 2>&1 || :
1108 %endif
1109
1110 ##############################################################################
1111 ###
1112 ### file lists
1113 ###
1114 ##############################################################################
1115 %if %{build_userspace}
1116
1117 %files -f openafs-file-list
1118 %defattr(-,root,root)
1119 %config(noreplace) /etc/sysconfig/openafs
1120 %doc %{_docdir}/openafs-%{afsvers}/LICENSE
1121 %{_libdir}/libafshcrypto.so.*
1122 %{_libdir}/librokenafs.so.*
1123
1124 %files docs
1125 %defattr(-,root,root)
1126 %docdir %{_docdir}/openafs-%{afsvers}
1127 %dir %{_docdir}/openafs-%{afsvers}
1128 %{_docdir}/openafs-%{afsvers}/ChangeLog
1129 %{_docdir}/openafs-%{afsvers}/RELNOTES-%{afsvers}
1130 %{_docdir}/openafs-%{afsvers}/pdf
1131
1132 %files client
1133 %defattr(-,root,root)
1134 %dir %{_prefix}/vice
1135 %dir %{_prefix}/vice/cache
1136 %dir %{_prefix}/vice/etc
1137 %dir %{_prefix}/vice/etc/C
1138 %{_prefix}/vice/etc/CellServDB.dist
1139 %config(noreplace) %{_prefix}/vice/etc/ThisCell
1140 %config(noreplace) %{_prefix}/vice/etc/cacheinfo
1141 %{_bindir}/afsio
1142 %{_bindir}/cmdebug
1143 %{_bindir}/up
1144 %{_prefix}/vice/etc/afsd
1145 %{_prefix}/vice/etc/C/afszcm.cat
1146 %{pamdir}/pam_afs.krb.so.1
1147 %{pamdir}/pam_afs.krb.so
1148 %{pamdir}/pam_afs.so.1
1149 %{pamdir}/pam_afs.so
1150 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1151 %{initdir}/openafs-client
1152 %else
1153 %{_unitdir}/openafs-client.service
1154 %{_sysconfdir}/sysconfig/modules/openafs-client.modules
1155 %endif
1156 %{_mandir}/man1/cmdebug.*
1157 %{_mandir}/man1/up.*
1158 %{_mandir}/man5/afs.5.gz
1159 %{_mandir}/man5/afs_cache.5.gz
1160 %{_mandir}/man5/afs_volume_header.5.gz
1161 %{_mandir}/man5/afszcm.cat.5.gz
1162 %{_mandir}/man5/cacheinfo.*
1163 %{_mandir}/man8/afsd.*
1164 %{_mandir}/man8/vsys.*
1165 %{_mandir}/man5/CellAlias.*
1166
1167 %files server
1168 %defattr(-,root,root)
1169 %dir %{_prefix}/afs
1170 %dir %{_prefix}/afs/bin
1171 %dir %{_prefix}/afs/etc
1172 %dir %{_prefix}/afs/logs
1173 %{_prefix}/afs/bin/bosserver
1174 %{_prefix}/afs/bin/bos_util
1175 %{_prefix}/afs/bin/buserver
1176 %{_prefix}/afs/bin/dafileserver
1177 %{_prefix}/afs/bin/dafssync-debug
1178 %{_prefix}/afs/bin/dasalvager
1179 %{_prefix}/afs/bin/davolserver
1180 %{_prefix}/afs/bin/fileserver
1181 %{_prefix}/afs/bin/fssync-debug
1182 # Should we support KAServer?
1183 %{_prefix}/afs/bin/kaserver
1184 %{_prefix}/afs/bin/ka-forwarder
1185 %{_prefix}/afs/bin/pt_util
1186 %{_prefix}/afs/bin/ptserver
1187 %{_prefix}/afs/bin/salvager
1188 %{_prefix}/afs/bin/salvageserver
1189 %{_prefix}/afs/bin/salvsync-debug
1190 %{_prefix}/afs/bin/state_analyzer
1191 %{_prefix}/afs/bin/upclient
1192 %{_prefix}/afs/bin/upserver
1193 %{_prefix}/afs/bin/vlserver
1194 %{_prefix}/afs/bin/volinfo
1195 %{_prefix}/afs/bin/volscan
1196 %{_prefix}/afs/bin/volserver
1197 %{_sbindir}/kadb_check
1198 %{_sbindir}/prdb_check
1199 %{_sbindir}/vldb_check
1200 %{_sbindir}/vldb_convert
1201 %{_sbindir}/voldump
1202 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1203 %{initdir}/openafs-server
1204 %else
1205 %{_unitdir}/openafs-server.service
1206 %endif
1207 %{_mandir}/man5/AuthLog.*
1208 %{_mandir}/man5/BackupLog.*
1209 %{_mandir}/man5/BosConfig.*
1210 %{_mandir}/man5/BosLog.*
1211 %{_mandir}/man5/FORCESALVAGE.*
1212 %{_mandir}/man5/FileLog.*
1213 %{_mandir}/man5/KeyFile.*
1214 %{_mandir}/man5/NetInfo.*
1215 %{_mandir}/man5/NetRestrict.*
1216 %{_mandir}/man5/NoAuth.*
1217 %{_mandir}/man5/SALVAGE.fs.*
1218 %{_mandir}/man5/SalvageLog.*
1219 %{_mandir}/man5/sysid.*
1220 %{_mandir}/man5/UserList.*
1221 %{_mandir}/man5/VLLog.*
1222 %{_mandir}/man5/VolserLog.*
1223 %{_mandir}/man5/bdb.DB0.*
1224 %{_mandir}/man5/fms.log.*
1225 %{_mandir}/man5/kaserver.DB0.*
1226 %{_mandir}/man5/kaserverauxdb.*
1227 %{_mandir}/man5/krb.conf.*
1228 %{_mandir}/man5/krb.excl.*
1229 %{_mandir}/man5/prdb.DB0.*
1230 %{_mandir}/man5/salvage.lock.*
1231 %{_mandir}/man5/tapeconfig.*
1232 %{_mandir}/man5/vldb.DB0.*
1233 %{_mandir}/man8/buserver.*
1234 %{_mandir}/man8/fileserver.*
1235 %{_mandir}/man8/dafileserver.*
1236 %{_mandir}/man8/dasalvager.*
1237 %{_mandir}/man8/davolserver.*
1238 %{_mandir}/man8/kadb_check.*
1239 %{_mandir}/man8/ka-forwarder.*
1240 %{_mandir}/man8/prdb_check.*
1241 %{_mandir}/man8/ptserver.*
1242 %{_mandir}/man8/pt_util.*
1243 %{_mandir}/man8/salvager.*
1244 %{_mandir}/man8/salvageserver.*
1245 %{_mandir}/man8/state_analyzer.*
1246 %{_mandir}/man8/upclient.*
1247 %{_mandir}/man8/upserver.*
1248 %{_mandir}/man8/vldb_check.*
1249 %{_mandir}/man8/vldb_convert.*
1250 %{_mandir}/man8/vlserver.*
1251 %{_mandir}/man8/voldump.*
1252 %{_mandir}/man8/volinfo.*
1253 %{_mandir}/man8/volscan.*
1254 %{_mandir}/man8/volserver.*
1255
1256 %if %{build_authlibs}
1257 %files authlibs
1258 %defattr(-,root,root)
1259 %{_libdir}/libafsauthent.so.*
1260 %{_libdir}/libafsrpc.so.*
1261 %{_libdir}/libkopenafs.so.*
1262 %endif
1263
1264 %files authlibs-devel
1265 %defattr(-,root,root)
1266 %{_includedir}/kopenafs.h
1267 %{_libdir}/libafsauthent.a
1268 %{_libdir}/libafscp.a
1269 %{_libdir}/libafsrpc.a
1270 %{_libdir}/libafsauthent_pic.a
1271 %{_libdir}/libafsrpc_pic.a
1272 %{_libdir}/libkopenafs.a
1273 %if %{build_authlibs}
1274 %{_libdir}/libafsauthent.so
1275 %{_libdir}/libafsrpc.so
1276 %{_libdir}/libkopenafs.so
1277 %endif
1278
1279 %files devel
1280 %defattr(-,root,root)
1281 %{_bindir}/afs_compile_et
1282 %{_bindir}/rxgen
1283 %{_includedir}/afs
1284 %{_includedir}/lock.h
1285 %{_includedir}/lwp.h
1286 %{_includedir}/rx
1287 %{_includedir}/timer.h
1288 %{_includedir}/ubik.h
1289 %{_includedir}/ubik_int.h
1290 %{_libdir}/afs
1291 %{_libdir}/libafshcrypto.a
1292 %{_libdir}/libafshcrypto.so
1293 %{_libdir}/liblwp.a
1294 %{_libdir}/libopr.a
1295 %{_libdir}/librokenafs.a
1296 %{_libdir}/librokenafs.so
1297 %{_libdir}/librx.a
1298 %{_libdir}/librxkad.a
1299 %{_libdir}/librxstat.a
1300 %{_libdir}/libubik.a
1301 %{_libdir}/libubik_pthread.a
1302 %{_mandir}/man1/rxgen.*
1303 %{_mandir}/man1/afs_compile_et.*
1304
1305 %if %{build_dkmspkg}
1306 %files -n dkms-%{name}
1307 %defattr(-,root,root)
1308 %{_prefix}/src/%{name}-%{dkms_version}
1309 %endif
1310
1311 %files kernel-source
1312 %defattr(-,root,root)
1313 %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
1314 %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
1315 %{_prefix}/src/openafs-kernel-%{afsvers}/README
1316 %{_prefix}/src/openafs-kernel-%{afsvers}/src
1317
1318 %files compat
1319 %defattr(-,root,root)
1320 %{_prefix}/afsws
1321
1322 %files kpasswd
1323 %defattr(-,root,root)
1324 %{_bindir}/kapasswd
1325 %{_bindir}/kpwvalid
1326 %{_mandir}/man1/kapasswd.*
1327 %{_mandir}/man8/kpwvalid.*
1328
1329 %if %{krb5support}
1330 %files krb5
1331 %defattr(-,root,root)
1332 %{_bindir}/aklog
1333 %{_bindir}/klog.krb5
1334 %{_sbindir}/asetkey
1335 %{_mandir}/man1/aklog.*
1336 %{_mandir}/man1/klog.krb5.*
1337 %{_mandir}/man8/asetkey.*
1338 %endif
1339
1340 %endif
1341 ##############################################################################
1342 ###
1343 ### openafs.spec change log
1344 ###
1345 ##############################################################################
1346 %changelog
1347 * Wed Dec 12 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
1348 - Make the RPM mockable
1349
1350 * Mon Oct 29 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
1351 - Update to match the shipped 1.4.5 RPMS
1352 - Fix the kvariant stuff to only configure the 'standard' case once
1353 - Add openafs-kvers.sh back in
1354
1355 * Wed Oct 10 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5pre1-1
1356 - Use Fedora style kmods, which allows us to install multiple kernel types
1357
1358 * Thu Jun 07 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.4-3
1359 - Use distributed files, rather than those in packager's SOURCE directory
1360 - Remove SuidCells stuff, which was unused
1361
1362 * Fri Dec 01 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-2
1363 - integrate s390x changes
1364 - allow for building libafs*.a and not libafs*.so into packages, for platforms
1365   that won't build the .so files.
1366
1367 * Wed Aug 23 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
1368 - update to 1.4.2
1369 - use installed aklog manpage.
1370 - moduleparam patch obsoleted.
1371
1372 * Tue Aug 22 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.1.rc1
1373 - update to 1.4.2-rc1
1374 - hand-apply lee damon's changes to support largesmp kernels from RHEL4
1375   (but only add support for 2.6 kernels.  No need for the 2.4 kernels).
1376 - don't need the posixlock patch anymore.
1377
1378 * Wed Jul 12 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.beta2
1379 - update to 1.4.2-beta2
1380 - add linux2.4 posixlock API patch
1381
1382 * Mon Jun 26 2006  Derek Atkins <warlord@MIT.EDU>
1383 - moduleparam and krb524 patches no longer required in OA-CVS
1384
1385 * Wed May 17 2006  Derek Atkins <warlord@MIT.EDU>
1386 - change non-target-cpu kernel dep to a file dep
1387 - make sure we use the proper kernel version for the dependency.
1388
1389 * Tue May 16 2006  Derek Atkins <warlord@MIT.EDU>
1390 - allow users to specify local CellServDB and SuidCells entries
1391   don't overwrite user's changes.  Provide a .dist an let users
1392   make entries in a ".local"
1393 - build the CellServDB and SuidCells at client startup and at
1394   client install-time
1395 - add provideskernelarch functionality to openafs-kvers-is.sh
1396 - use that functionality to Require kernel{,-<type>}-targetcpu
1397   to get better package safety due to RPM bugs where the kernel
1398   release isn't used so you can install the kernel module against
1399   any kernel of the same major version.
1400
1401 * Mon May 15 2006  Derek Atkins <warlord@MIT.EDU>
1402 - update the README in openafs-kernel-source
1403 - fix openafs-kvers-is.sh from Alexander Bergolth's patch.
1404 - move kernel module from .../kernel/fs/openafs to .../fs/openafs/
1405
1406 * Fri Apr 21 2006  Derek Atkins <warlord@MIT.EDU>
1407 - build requires autoconf and automake for krb5support
1408   and autoconf for standard package
1409 - dont setup the krb5 migration kit (or patches) if we don't care.
1410 - require ncurses-devel to build
1411
1412 * Wed Apr 19 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-3
1413 - look for krb524 functions in libkrb524 if we can't find them
1414   in the standard locations.
1415
1416 * Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
1417 - fix the module_param_array macro for Linux 2.6.9.
1418
1419 * Sat Apr 15 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-1
1420 - update to 1.4.1 release.
1421 - distribute asetkey from openafs instead of krb5-migration kit
1422 - don't need to apply the FC5 patches because they are part of the distro.
1423 - install asetkey into the "proper" place
1424 - dont list a manpage twice.
1425 - package asetkey man page.  delete it when not needed.
1426
1427 * Thu Apr  6 2006  Derek Atkins <warlord@MIT.EDU>
1428 - turn authlibs back on, because RT #18767 was applied to CVS.
1429
1430 * Wed Mar 29 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1rc10-1
1431 - update to 1.4.1rc10, build on FC5
1432 - fix the man pages (distribute into various packages)
1433 - include patches for FC5, RT #29112 and #29122
1434
1435 * Mon Dec 19 2005  Derek Atkins <warlord@MIT.EDU>
1436 - openafs-server shouldn't depend on the kernel module.
1437
1438 * Thu Nov 17 2005  Derek Atkins <warlord@MIT.EDU>
1439 - patch from Mike Polek <mike at pictage.com> to run depmod for
1440   the target kernel and not the running kernel.
1441
1442 * Tue Nov  8 2005  Derek Atkins <warlord@MIT.EDU>
1443 - build aklog from the openafs sources, not from the krb5 migration kit.
1444
1445 * Fri Nov  4 2005  Derek Atkins <warlord@MIT.EDU>
1446 - set openafs-kernel-source to Provide openafs-kernel
1447
1448 * Thu Oct 20 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0-1
1449 - update afs-krb5 res_search patch: look for res_search and __res_search
1450 - update to 1.4.0 final
1451
1452 * Mon Oct 10 2005  Derek Atkins <warlord@MIT.EDU>
1453 - remove all kdump builds.
1454
1455 * Thu Oct  6 2005  Derek Atkins <warlord@MIT.EDU>
1456 - fix openafs-kernel-version.sh so it will build an RPM for the
1457   currently-running kernel even if it's smp on 2.6.
1458
1459 * Tue Sep 27 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc5-1
1460 - upgrade to 1.4.0rc5
1461 - turn off authlibs packages
1462
1463 * Fri Sep 23 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-2
1464 - add kmodule26 patch: fix the kernel module name on 2.6 kernels so
1465   it's called "openafs" and not "libafs".  This fixes the shutdown
1466   problem.
1467
1468 * Thu Sep 22 2005  Derek Atkins <warlord@MIT.EDU>
1469 - update kversis script, add 'kvers' operation
1470 - fix bug that 2.6 smp/hugemem kernels don't provide
1471   kernel-foo = %{kernvers} with 'smp', 'hugemem', etc.
1472 - add patch to remove res_search from the afs-krb5 configure
1473
1474 * Thu Sep 15 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-1
1475 - Update to 1.4.0rc4
1476 - Update the afs-krb5 krb524 patch so it actually works on
1477   some older systems like RHEL3 that still need -lkrb524.
1478 - Update the buildall script so choose better architecture support,
1479   e.g. don't build i586 on RHEL.
1480 - Update the rebuild information in the SPEC file.
1481 - Add support for finding .EL kernels in openafs-kvers-is.sh
1482 - Add additional error messages when kernel version/type parsing fails.
1483 - Update the buildall script to use the kernel srcdir directly.
1484
1485 * Wed Sep 14 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-2
1486 - Add "hugemem" to 2.4 configs
1487 - Add checks to support scripts to determine whether to build
1488   the bigmem and/or hugemem kernels for 2.4.
1489
1490 * Mon Sep 12 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-1
1491 - Added some afs-krb5 patches to get the migration kit to build
1492   on modern AFS and modern Kerberos.
1493 - Added authlibs and authlibs-devel packages as per UMich changes.
1494
1495 * Sun Sep 11 2005  Derek Atkins <warlord@MIT.EDU>
1496 - Merged in some of the 2.6 changes from wingc@engin.umich.edu
1497
1498 * Sat Sep 10 2005  Derek Atkins <warlord@MIT.EDU>
1499 - Merged in lots of changes from David Howells and Nalin Dahyabhai
1500   from Red Hat.   Initial attempt at a release of 1.4.  Still need
1501   to work in a 2.6 build system.