90ceb53751427660708ec9729ba4a51ba1819874
[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 all_nolibafs
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 libafs
666   fi
667 done
668 %endif
669
670
671 ##############################################################################
672 ###
673 ### install
674 ###
675 ##############################################################################
676 %install
677
678 export DONT_GPRINTIFY=1 # Do not modify initscripts.
679
680 [ $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT
681
682 ##############################################################################
683 ###
684 ### Install userspace
685 ###
686 ##############################################################################
687 %if %{build_userspace}
688
689 #-----------------------------------------------------------------------------
690 # Install userspace files
691 #-----------------------------------------------------------------------------
692 make install_nolibafs DESTDIR="$RPM_BUILD_ROOT"
693
694 # Set the executable bit on libraries in libdir, so rpmbuild knows to
695 # create "Provides" entries in the package metadata for the libraries
696 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
697
698 # Exclude duplicated files.
699 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/bos
700 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/fs
701 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/kas
702 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/klog
703 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/klog.krb
704 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/kpwvalid
705 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/pts
706 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/tokens
707 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/tokens.krb
708 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/udebug
709 rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/vos
710
711 # Exclude obsolete or unused files.
712 rm -f $RPM_BUILD_ROOT%{_bindir}/dlog
713 rm -f $RPM_BUILD_ROOT%{_bindir}/dpass
714 rm -f $RPM_BUILD_ROOT%{_bindir}/install
715 rm -f $RPM_BUILD_ROOT%{_bindir}/knfs
716 rm -f $RPM_BUILD_ROOT%{_bindir}/livesys
717 rm -f $RPM_BUILD_ROOT%{_sbindir}/kdb
718 rm -f $RPM_BUILD_ROOT%{_sbindir}/rmtsysd
719 rm -f $RPM_BUILD_ROOT%{_sbindir}/kpwvalid
720 rm -rf $RPM_BUILD_ROOT%{_sbindir}/kdump*
721 %if !%{build_authlibs}
722 rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so*
723 rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so*
724 %endif
725
726 # Relocate admin utilities to a modern path.
727 mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/restorevol $RPM_BUILD_ROOT%{_bindir}/restorevol
728 %if %{krb5support}
729 mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/asetkey $RPM_BUILD_ROOT%{_sbindir}/asetkey
730 %endif
731
732 # Relocate PAM files to the standard PAM module path.
733 mkdir -p $RPM_BUILD_ROOT%{pamdir}
734 mv $RPM_BUILD_ROOT%{_libdir}/pam_afs.krb.so $RPM_BUILD_ROOT%{pamdir}
735 mv $RPM_BUILD_ROOT%{_libdir}/pam_afs.so $RPM_BUILD_ROOT%{pamdir}
736 ln -sf pam_afs.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.so
737 ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.krb.so
738
739 # Rename kpasswd to avoid conflicting with krb5 kpasswd.
740 mv $RPM_BUILD_ROOT%{_bindir}/kpasswd $RPM_BUILD_ROOT%{_bindir}/kapasswd
741 mv $RPM_BUILD_ROOT%{_mandir}/man1/kpasswd.1 $RPM_BUILD_ROOT%{_mandir}/man1/kapasswd.1
742
743 # Exclude obsolete or unused man pages.
744 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/afs_ftpd.1
745 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/afs_inetd.1
746 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/afs_login.1
747 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/afs_rcp.1
748 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/afs_rlogind.1
749 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/afs_rsh.1
750 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/dkload.1
751 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/knfs.1
752 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/package.1
753 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/runntp.1
754 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/symlink.1
755 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/symlink_list.1
756 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/symlink_make.1
757 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/symlink_remove.1
758 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/dlog.*
759 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/copyauth.*
760 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/dpass.*
761 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/livesys.*
762 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rmtsysd.*
763 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/aklog_dynamic_auth.*
764 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/kdb.*
765 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/kpwvalid.*
766 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/xfs_size_check.*
767 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/package_test.*
768 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/package.*
769 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/package.*
770 %if !%{krb5support}
771 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.*
772 %endif
773
774 #-----------------------------------------------------------------------------
775 # Install client and server initscripts/systemd files
776 #-----------------------------------------------------------------------------
777 mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
778 install -m 755 src/packaging/RedHat/openafs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/openafs
779 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
780 mkdir -p $RPM_BUILD_ROOT%{initdir}
781 install -m 755 src/packaging/RedHat/openafs-client.init $RPM_BUILD_ROOT%{initdir}/openafs-client
782 install -m 755 src/packaging/RedHat/openafs-server.init $RPM_BUILD_ROOT%{initdir}/openafs-server
783 %else
784 mkdir -p $RPM_BUILD_ROOT%{_unitdir}
785 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules
786 install -m 644 src/packaging/RedHat/openafs-client.service $RPM_BUILD_ROOT%{_unitdir}/openafs-client.service
787 install -m 755 src/packaging/RedHat/openafs-client.modules $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules/openafs-client.modules
788 install -m 644 src/packaging/RedHat/openafs-server.service $RPM_BUILD_ROOT%{_unitdir}/openafs-server.service
789 %endif
790
791 #-----------------------------------------------------------------------------
792 # Install server directories.
793 #-----------------------------------------------------------------------------
794 mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/etc
795 mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/logs
796
797 #-----------------------------------------------------------------------------
798 # Install client directories and config files.
799 #-----------------------------------------------------------------------------
800 mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/etc
801 mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/cache
802 chmod 700 $RPM_BUILD_ROOT%{_prefix}/vice/cache
803 install -p -m 644 src/packaging/RedHat/openafs-ThisCell $RPM_BUILD_ROOT%{_prefix}/vice/etc/ThisCell
804 install -p -m 644 %{SOURCE20} $RPM_BUILD_ROOT%{_prefix}/vice/etc/CellServDB.dist
805 install -p -m 644 src/packaging/RedHat/openafs-cacheinfo $RPM_BUILD_ROOT%{_prefix}/vice/etc/cacheinfo
806
807 #-----------------------------------------------------------------------------
808 # Install DKMS source.
809 #-----------------------------------------------------------------------------
810 install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/src
811 cp -a libafs_tree $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}
812
813 cat > $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}/dkms.conf <<"EOF"
814
815 PACKAGE_VERSION="%{dkms_version}"
816
817 # Items below here should not have to change with each driver version.
818 PACKAGE_NAME="%{name}"
819 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'
820 CLEAN="make -C src/libafs clean"
821
822 BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
823 DEST_MODULE_LOCATION[0]="/kernel/3rdparty/$PACKAGE_NAME/"
824 STRIP[0]=no
825 AUTOINSTALL=yes
826
827 EOF
828
829 #-----------------------------------------------------------------------------
830 # Install the kernel module source tree.
831 #-----------------------------------------------------------------------------
832 mkdir -p $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
833 tar cf - -C libafs_tree . | \
834         tar xf - -C $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
835 install -m 644 LICENSE $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
836 install -m 644 src/packaging/RedHat/openafs-LICENSE.Sun $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
837 install -m 644 src/packaging/RedHat/openafs-README $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/README
838
839 #-----------------------------------------------------------------------------
840 # Install documentation.
841 #-----------------------------------------------------------------------------
842 mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
843 tar cf - -C doc LICENSE html pdf | \
844     tar xf - -C $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
845 install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
846 install -m 644 %{SOURCE11} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
847
848 #-----------------------------------------------------------------------------
849 # Install compatiblity links.
850 #-----------------------------------------------------------------------------
851 mkdir -p $RPM_BUILD_ROOT%{_prefix}/afsws/bin
852 mkdir -p $RPM_BUILD_ROOT%{_prefix}/afsws/etc
853 ln -sf %{_prefix}/bin/afsmonitor    $RPM_BUILD_ROOT%{_prefix}/afsws/bin/afsmonitor
854 ln -sf %{_prefix}/bin/bos           $RPM_BUILD_ROOT%{_prefix}/afsws/bin/bos
855 ln -sf %{_prefix}/bin/fs            $RPM_BUILD_ROOT%{_prefix}/afsws/bin/fs
856 ln -sf %{_prefix}/bin/kapasswd      $RPM_BUILD_ROOT%{_prefix}/afsws/bin/kapasswd
857 ln -sf %{_prefix}/bin/klog          $RPM_BUILD_ROOT%{_prefix}/afsws/bin/klog
858 ln -sf %{_prefix}/bin/klog.krb      $RPM_BUILD_ROOT%{_prefix}/afsws/bin/klog.krb
859 ln -sf %{_prefix}/bin/pagsh         $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pagsh
860 ln -sf %{_prefix}/bin/pagsh.krb     $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pagsh.krb
861 ln -sf %{_prefix}/bin/pts           $RPM_BUILD_ROOT%{_prefix}/afsws/bin/pts
862 ln -sf %{_prefix}/bin/restorevol    $RPM_BUILD_ROOT%{_prefix}/afsws/bin/restorevol
863 ln -sf %{_prefix}/bin/scout         $RPM_BUILD_ROOT%{_prefix}/afsws/bin/scout
864 ln -sf %{_prefix}/bin/sys           $RPM_BUILD_ROOT%{_prefix}/afsws/bin/sys
865 ln -sf %{_prefix}/bin/tokens        $RPM_BUILD_ROOT%{_prefix}/afsws/bin/tokens
866 ln -sf %{_prefix}/bin/tokens.krb    $RPM_BUILD_ROOT%{_prefix}/afsws/bin/tokens.krb
867 ln -sf %{_prefix}/bin/translate_et  $RPM_BUILD_ROOT%{_prefix}/afsws/bin/translate_et
868 ln -sf %{_prefix}/bin/xstat_cm_test $RPM_BUILD_ROOT%{_prefix}/afsws/bin/xstat_cm_test
869 ln -sf %{_prefix}/bin/xstat_fs_test $RPM_BUILD_ROOT%{_prefix}/afsws/bin/xstat_fs_test
870 ln -sf %{_prefix}/bin/udebug        $RPM_BUILD_ROOT%{_prefix}/afsws/bin/udebug
871 ln -sf %{_prefix}/bin/unlog         $RPM_BUILD_ROOT%{_prefix}/afsws/bin/unlog
872 ln -sf %{_prefix}/sbin/backup       $RPM_BUILD_ROOT%{_prefix}/afsws/etc/backup
873 ln -sf %{_prefix}/sbin/butc         $RPM_BUILD_ROOT%{_prefix}/afsws/etc/butc
874 ln -sf %{_prefix}/sbin/fms          $RPM_BUILD_ROOT%{_prefix}/afsws/etc/fms
875 ln -sf %{_prefix}/sbin/fstrace      $RPM_BUILD_ROOT%{_prefix}/afsws/etc/fstrace
876 ln -sf %{_prefix}/sbin/kas          $RPM_BUILD_ROOT%{_prefix}/afsws/etc/kas
877 ln -sf %{_prefix}/sbin/read_tape    $RPM_BUILD_ROOT%{_prefix}/afsws/etc/read_tape
878 ln -sf %{_prefix}/sbin/rxdebug      $RPM_BUILD_ROOT%{_prefix}/afsws/etc/rxdebug
879 ln -sf %{_prefix}/sbin/uss          $RPM_BUILD_ROOT%{_prefix}/afsws/etc/uss
880 ln -sf %{_prefix}/sbin/vos          $RPM_BUILD_ROOT%{_prefix}/afsws/etc/vos
881 ln -sf %{_prefix}/sbin/vsys         $RPM_BUILD_ROOT%{_prefix}/afsws/etc/vsys
882
883 %endif
884
885 ##############################################################################
886 ###
887 ### Install modules
888 ###
889 ##############################################################################
890 %if %{build_modules}
891
892 for kvariant in %{kvariants}
893 do
894   if [ -n "$kvariant" ] ; then
895     if [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP ] ; then
896       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
897       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
898     elif [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP ] ; then
899       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP
900       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}+${kvariant}/extra/openafs
901     else
902       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}.${kvariant}-SP
903       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}.${kvariant}/extra/openafs
904     fi
905   else
906     if [ -d src/libafs/MODLOAD-%{kverrel}-SP ] ; then
907       srcdir=src/libafs/MODLOAD-%{kverrel}-SP
908       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}/extra/openafs
909     else
910       srcdir=src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}-SP
911       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
912     fi
913   fi
914
915   mkdir -p ${dstdir}
916   install -m 755 ${srcdir}/openafs.ko ${dstdir}/openafs.ko
917 done
918 %endif
919
920 ##############################################################################
921 ###
922 ### clean
923 ###
924 ##############################################################################
925 %clean
926 [ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
927         rm -fr $RPM_BUILD_ROOT
928
929
930 ##############################################################################
931 ###
932 ### scripts
933 ###
934 ##############################################################################
935 %if %{build_userspace}
936
937 %pre compat
938 if [ -e %{_prefix}/afsws ]; then
939         /bin/rm -fr %{_prefix}/afsws
940 fi
941
942 %post client
943 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
944 chkconfig --add openafs-client
945 %else
946 if [ $1 -eq 1 ] ; then
947     # Initial installation
948     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
949 fi
950 %endif
951 if [ ! -d /afs ]; then
952         mkdir /afs
953         chown root.root /afs
954         chmod 0755 /afs
955         [ -x /sbin/restorecon ] && /sbin/restorecon /afs
956 fi
957
958 # Create the CellServDB
959 [ -f /usr/vice/etc/CellServDB.local ] || touch /usr/vice/etc/CellServDB.local
960
961 ( cd /usr/vice/etc ; \
962   if [ -h CellServDB ]; then \
963     rm -f CellServDB; \
964   fi; \
965   cat CellServDB.local CellServDB.dist > CellServDB ; \
966   chmod 644 CellServDB )
967
968 %post server
969 #on an upgrade, don't enable if we were disabled
970 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
971 if [ $1 = 1 ] ; then
972   chkconfig --add openafs-server
973 fi
974 %{initdir}/openafs-server condrestart
975 %else
976 if [ $1 -eq 1 ] ; then
977     # Initial installation
978     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
979 fi
980 %endif
981
982 %if %{build_authlibs}
983 %post authlibs
984 /sbin/ldconfig
985
986 %postun authlibs
987 /sbin/ldconfig
988 %endif
989
990 %preun
991 if [ $1 = 0 ] ; then
992         [ -d /afs ] && rmdir /afs
993         :
994 fi
995
996 %preun client
997 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
998 if [ $1 = 0 ] ; then
999         %{initdir}/openafs-client stop
1000         chkconfig --del openafs-client
1001 fi
1002 %else
1003 if [ $1 -eq 0 ] ; then
1004         # Package removal, not upgrade
1005         /bin/systemctl --no-reload disable openafs-client.service > /dev/null 2>&1 || :
1006         /bin/systemctl stop openafs-client.service > /dev/null 2>&1 || :
1007 fi
1008 %endif
1009
1010 %preun server
1011 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1012 if [ $1 = 0 ] ; then
1013         %{initdir}/openafs-server stop
1014         chkconfig --del openafs-server
1015 fi
1016 %else
1017 if [ $1 -eq 0 ] ; then
1018         /bin/systemctl --no-reload disable openafs-server.service > /dev/null 2>&1 || :
1019         /bin/systemctl stop openafs-server.service > /dev/null 2>&1 || :
1020 fi
1021 %endif
1022
1023 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
1024 %postun client
1025 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1026
1027 %postun server
1028 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1029 %endif
1030
1031 %if %{build_dkmspkg}
1032 %post -n dkms-%{name}
1033 dkms add -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1034 dkms build -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1035 dkms install -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1036
1037 %preun -n dkms-%{name}
1038 dkms remove -m %{name} -v %{dkms_version} --rpm_safe_upgrade --all ||:
1039 %endif
1040 %endif
1041
1042 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
1043 %triggerun -- openafs-client < 1.6.0-1
1044 # Save the current service runlevel info
1045 # User must manually run systemd-sysv-convert --apply httpd
1046 # to migrate them to systemd targets
1047 /usr/bin/systemd-sysv-convert --save openafs-client >/dev/null 2>&1 ||:
1048
1049 # Run this because the SysV package being removed won't do it
1050 /sbin/chkconfig --del openafs-client >/dev/null 2>&1 || :
1051
1052 %triggerun -- openafs-server < 1.6.0-1
1053 # Save the current service runlevel info
1054 # User must manually run systemd-sysv-convert --apply httpd
1055 # to migrate them to systemd targets
1056 /usr/bin/systemd-sysv-convert --save openafs-server >/dev/null 2>&1 ||:
1057
1058 # Run this because the SysV package being removed won't do it
1059 /sbin/chkconfig --del openafs-server >/dev/null 2>&1 || :
1060 %endif
1061
1062 ##############################################################################
1063 ###
1064 ### file lists
1065 ###
1066 ##############################################################################
1067 %if %{build_userspace}
1068
1069 %files
1070 %defattr(-,root,root)
1071 %config(noreplace) /etc/sysconfig/openafs
1072 %doc %{_docdir}/openafs-%{afsvers}/LICENSE
1073 %exclude %{_mandir}/man1/klog.krb5.*
1074 %{_bindir}/afsmonitor
1075 %{_bindir}/bos
1076 %{_bindir}/fs
1077 %{_bindir}/klog
1078 %{_bindir}/klog.krb
1079 %{_bindir}/pagsh
1080 %{_bindir}/pagsh.krb
1081 %{_bindir}/pts
1082 %{_bindir}/restorevol
1083 %{_bindir}/scout
1084 %{_bindir}/sys
1085 %{_bindir}/tokens
1086 %{_bindir}/tokens.krb
1087 %{_bindir}/translate_et
1088 %{_bindir}/xstat_cm_test
1089 %{_bindir}/xstat_fs_test
1090 %{_bindir}/udebug
1091 %{_bindir}/unlog
1092 %{_sbindir}/backup
1093 %{_sbindir}/butc
1094 %{_sbindir}/fms
1095 %{_sbindir}/fstrace
1096 %{_sbindir}/kas
1097 %{_sbindir}/read_tape
1098 %{_sbindir}/rxdebug
1099 %{_sbindir}/uss
1100 %{_sbindir}/vos
1101 %{_sbindir}/vsys
1102 %{_libdir}/libafshcrypto.so.*
1103 %{_libdir}/librokenafs.so.*
1104 %{_mandir}/man1/afs.*
1105 %{_mandir}/man1/afsmonitor.*
1106 %{_mandir}/man1/fs.*
1107 %{_mandir}/man1/fs_*.*
1108 %{_mandir}/man1/klog.*
1109 %{_mandir}/man1/pagsh.*
1110 %{_mandir}/man1/pts.*
1111 %{_mandir}/man1/pts_*.*
1112 %{_mandir}/man1/restorevol.*
1113 %{_mandir}/man1/rxdebug.*
1114 %{_mandir}/man1/scout.*
1115 %{_mandir}/man1/sys.*
1116 %{_mandir}/man1/tokens.*
1117 %{_mandir}/man1/translate_et.*
1118 %{_mandir}/man1/udebug.*
1119 %{_mandir}/man1/unlog.*
1120 %{_mandir}/man1/vos.*
1121 %{_mandir}/man1/vos_*.*
1122 %{_mandir}/man1/xstat_cm_test.*
1123 %{_mandir}/man1/xstat_fs_test.*
1124 %{_mandir}/man5/CellServDB.*
1125 %{_mandir}/man5/ThisCell.*
1126 %{_mandir}/man5/afsmonitor.*
1127 %{_mandir}/man5/butc.*
1128 %{_mandir}/man5/butc_logs.*
1129 %{_mandir}/man5/uss.*
1130 %{_mandir}/man5/uss_bulk.*
1131 %{_mandir}/man8/backup.*
1132 %{_mandir}/man8/backup_*.*
1133 %{_mandir}/man8/bos.*
1134 %{_mandir}/man8/bos_*.*
1135 %{_mandir}/man8/bosserver.*
1136 %{_mandir}/man8/butc.*
1137 %{_mandir}/man8/fms.*
1138 %{_mandir}/man8/fssync-debug.*
1139 %{_mandir}/man8/fssync-debug_*.*
1140 %{_mandir}/man8/fstrace.*
1141 %{_mandir}/man8/fstrace_*.*
1142 %{_mandir}/man8/kas.*
1143 %{_mandir}/man8/kas_*.*
1144 %{_mandir}/man8/kaserver.*
1145 %{_mandir}/man8/read_tape.*
1146 %{_mandir}/man8/uss.*
1147 %{_mandir}/man8/uss_*.*
1148
1149 %files docs
1150 %defattr(-,root,root)
1151 %docdir %{_docdir}/openafs-%{afsvers}
1152 %dir %{_docdir}/openafs-%{afsvers}
1153 %{_docdir}/openafs-%{afsvers}/ChangeLog
1154 %{_docdir}/openafs-%{afsvers}/RELNOTES-%{afsvers}
1155 %{_docdir}/openafs-%{afsvers}/pdf
1156
1157 %files client
1158 %defattr(-,root,root)
1159 %dir %{_prefix}/vice
1160 %dir %{_prefix}/vice/cache
1161 %dir %{_prefix}/vice/etc
1162 %dir %{_prefix}/vice/etc/C
1163 %{_prefix}/vice/etc/CellServDB.dist
1164 %config(noreplace) %{_prefix}/vice/etc/ThisCell
1165 %config(noreplace) %{_prefix}/vice/etc/cacheinfo
1166 %{_bindir}/afsio
1167 %{_bindir}/cmdebug
1168 %{_bindir}/up
1169 %{_prefix}/vice/etc/afsd
1170 %{_prefix}/vice/etc/C/afszcm.cat
1171 %{pamdir}/pam_afs.krb.so.1
1172 %{pamdir}/pam_afs.krb.so
1173 %{pamdir}/pam_afs.so.1
1174 %{pamdir}/pam_afs.so
1175 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1176 %{initdir}/openafs-client
1177 %else
1178 %{_unitdir}/openafs-client.service
1179 %{_sysconfdir}/sysconfig/modules/openafs-client.modules
1180 %endif
1181 %{_mandir}/man1/cmdebug.*
1182 %{_mandir}/man1/up.*
1183 %{_mandir}/man5/afs.5.gz
1184 %{_mandir}/man5/afs_cache.5.gz
1185 %{_mandir}/man5/afs_volume_header.5.gz
1186 %{_mandir}/man5/afszcm.cat.5.gz
1187 %{_mandir}/man5/cacheinfo.*
1188 %{_mandir}/man8/afsd.*
1189 %{_mandir}/man8/vsys.*
1190 %{_mandir}/man5/CellAlias.*
1191
1192 %files server
1193 %defattr(-,root,root)
1194 %dir %{_prefix}/afs
1195 %dir %{_prefix}/afs/bin
1196 %dir %{_prefix}/afs/etc
1197 %dir %{_prefix}/afs/logs
1198 %{_prefix}/afs/bin/bosserver
1199 %{_prefix}/afs/bin/bos_util
1200 %{_prefix}/afs/bin/buserver
1201 %{_prefix}/afs/bin/dafileserver
1202 %{_prefix}/afs/bin/dafssync-debug
1203 %{_prefix}/afs/bin/dasalvager
1204 %{_prefix}/afs/bin/davolserver
1205 %{_prefix}/afs/bin/fileserver
1206 %{_prefix}/afs/bin/fssync-debug
1207 # Should we support KAServer?
1208 %{_prefix}/afs/bin/kaserver
1209 %{_prefix}/afs/bin/ka-forwarder
1210 %{_prefix}/afs/bin/pt_util
1211 %{_prefix}/afs/bin/ptserver
1212 %{_prefix}/afs/bin/salvager
1213 %{_prefix}/afs/bin/salvageserver
1214 %{_prefix}/afs/bin/salvsync-debug
1215 %{_prefix}/afs/bin/state_analyzer
1216 %{_prefix}/afs/bin/upclient
1217 %{_prefix}/afs/bin/upserver
1218 %{_prefix}/afs/bin/vlserver
1219 %{_prefix}/afs/bin/volinfo
1220 %{_prefix}/afs/bin/volscan
1221 %{_prefix}/afs/bin/volserver
1222 %{_sbindir}/kadb_check
1223 %{_sbindir}/prdb_check
1224 %{_sbindir}/vldb_check
1225 %{_sbindir}/vldb_convert
1226 %{_sbindir}/voldump
1227 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1228 %{initdir}/openafs-server
1229 %else
1230 %{_unitdir}/openafs-server.service
1231 %endif
1232 %{_mandir}/man5/AuthLog.*
1233 %{_mandir}/man5/BackupLog.*
1234 %{_mandir}/man5/BosConfig.*
1235 %{_mandir}/man5/BosLog.*
1236 %{_mandir}/man5/FORCESALVAGE.*
1237 %{_mandir}/man5/FileLog.*
1238 %{_mandir}/man5/KeyFile.*
1239 %{_mandir}/man5/NetInfo.*
1240 %{_mandir}/man5/NetRestrict.*
1241 %{_mandir}/man5/NoAuth.*
1242 %{_mandir}/man5/SALVAGE.fs.*
1243 %{_mandir}/man5/SalvageLog.*
1244 %{_mandir}/man5/sysid.*
1245 %{_mandir}/man5/UserList.*
1246 %{_mandir}/man5/VLLog.*
1247 %{_mandir}/man5/VolserLog.*
1248 %{_mandir}/man5/bdb.DB0.*
1249 %{_mandir}/man5/fms.log.*
1250 %{_mandir}/man5/kaserver.DB0.*
1251 %{_mandir}/man5/kaserverauxdb.*
1252 %{_mandir}/man5/krb.conf.*
1253 %{_mandir}/man5/krb.excl.*
1254 %{_mandir}/man5/prdb.DB0.*
1255 %{_mandir}/man5/salvage.lock.*
1256 %{_mandir}/man5/tapeconfig.*
1257 %{_mandir}/man5/vldb.DB0.*
1258 %{_mandir}/man8/buserver.*
1259 %{_mandir}/man8/fileserver.*
1260 %{_mandir}/man8/dafileserver.*
1261 %{_mandir}/man8/dasalvager.*
1262 %{_mandir}/man8/davolserver.*
1263 %{_mandir}/man8/kadb_check.*
1264 %{_mandir}/man8/ka-forwarder.*
1265 %{_mandir}/man8/prdb_check.*
1266 %{_mandir}/man8/ptserver.*
1267 %{_mandir}/man8/pt_util.*
1268 %{_mandir}/man8/salvager.*
1269 %{_mandir}/man8/salvageserver.*
1270 %{_mandir}/man8/state_analyzer.*
1271 %{_mandir}/man8/upclient.*
1272 %{_mandir}/man8/upserver.*
1273 %{_mandir}/man8/vldb_check.*
1274 %{_mandir}/man8/vldb_convert.*
1275 %{_mandir}/man8/vlserver.*
1276 %{_mandir}/man8/voldump.*
1277 %{_mandir}/man8/volinfo.*
1278 %{_mandir}/man8/volscan.*
1279 %{_mandir}/man8/volserver.*
1280
1281 %if %{build_authlibs}
1282 %files authlibs
1283 %defattr(-,root,root)
1284 %{_libdir}/libafsauthent.so.*
1285 %{_libdir}/libafsrpc.so.*
1286 %{_libdir}/libkopenafs.so.*
1287 %endif
1288
1289 %files authlibs-devel
1290 %defattr(-,root,root)
1291 %{_includedir}/kopenafs.h
1292 %{_libdir}/libafsauthent.a
1293 %{_libdir}/libafscp.a
1294 %{_libdir}/libafsrpc.a
1295 %{_libdir}/libafsauthent_pic.a
1296 %{_libdir}/libafsrpc_pic.a
1297 %{_libdir}/libkopenafs.a
1298 %if %{build_authlibs}
1299 %{_libdir}/libafsauthent.so
1300 %{_libdir}/libafsrpc.so
1301 %{_libdir}/libkopenafs.so
1302 %endif
1303
1304 %files devel
1305 %defattr(-,root,root)
1306 %{_bindir}/afs_compile_et
1307 %{_bindir}/rxgen
1308 %{_includedir}/afs
1309 %{_includedir}/lock.h
1310 %{_includedir}/lwp.h
1311 %{_includedir}/rx
1312 %{_includedir}/timer.h
1313 %{_includedir}/ubik.h
1314 %{_includedir}/ubik_int.h
1315 %{_libdir}/afs
1316 %{_libdir}/libafshcrypto.a
1317 %{_libdir}/libafshcrypto.so
1318 %{_libdir}/liblwp.a
1319 %{_libdir}/libopr.a
1320 %{_libdir}/librokenafs.a
1321 %{_libdir}/librokenafs.so
1322 %{_libdir}/librx.a
1323 %{_libdir}/librxkad.a
1324 %{_libdir}/librxstat.a
1325 %{_libdir}/libubik.a
1326 %{_libdir}/libubik_pthread.a
1327 %{_mandir}/man1/rxgen.*
1328 %{_mandir}/man1/afs_compile_et.*
1329
1330 %if %{build_dkmspkg}
1331 %files -n dkms-%{name}
1332 %defattr(-,root,root)
1333 %{_prefix}/src/%{name}-%{dkms_version}
1334 %endif
1335
1336 %files kernel-source
1337 %defattr(-,root,root)
1338 %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
1339 %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
1340 %{_prefix}/src/openafs-kernel-%{afsvers}/README
1341 %{_prefix}/src/openafs-kernel-%{afsvers}/src
1342
1343 %files compat
1344 %defattr(-,root,root)
1345 %{_prefix}/afsws
1346
1347 %files kpasswd
1348 %defattr(-,root,root)
1349 %{_bindir}/kapasswd
1350 %{_bindir}/kpwvalid
1351 %{_mandir}/man1/kapasswd.*
1352 %{_mandir}/man8/kpwvalid.*
1353
1354 %if %{krb5support}
1355 %files krb5
1356 %defattr(-,root,root)
1357 %{_bindir}/aklog
1358 %{_bindir}/klog.krb5
1359 %{_sbindir}/asetkey
1360 %{_mandir}/man1/aklog.*
1361 %{_mandir}/man1/klog.krb5.*
1362 %{_mandir}/man8/asetkey.*
1363 %endif
1364
1365 %endif
1366 ##############################################################################
1367 ###
1368 ### openafs.spec change log
1369 ###
1370 ##############################################################################
1371 %changelog
1372 * Wed Dec 12 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
1373 - Make the RPM mockable
1374
1375 * Mon Oct 29 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
1376 - Update to match the shipped 1.4.5 RPMS
1377 - Fix the kvariant stuff to only configure the 'standard' case once
1378 - Add openafs-kvers.sh back in
1379
1380 * Wed Oct 10 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5pre1-1
1381 - Use Fedora style kmods, which allows us to install multiple kernel types
1382
1383 * Thu Jun 07 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.4-3
1384 - Use distributed files, rather than those in packager's SOURCE directory
1385 - Remove SuidCells stuff, which was unused
1386
1387 * Fri Dec 01 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-2
1388 - integrate s390x changes
1389 - allow for building libafs*.a and not libafs*.so into packages, for platforms
1390   that won't build the .so files.
1391
1392 * Wed Aug 23 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
1393 - update to 1.4.2
1394 - use installed aklog manpage.
1395 - moduleparam patch obsoleted.
1396
1397 * Tue Aug 22 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.1.rc1
1398 - update to 1.4.2-rc1
1399 - hand-apply lee damon's changes to support largesmp kernels from RHEL4
1400   (but only add support for 2.6 kernels.  No need for the 2.4 kernels).
1401 - don't need the posixlock patch anymore.
1402
1403 * Wed Jul 12 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.beta2
1404 - update to 1.4.2-beta2
1405 - add linux2.4 posixlock API patch
1406
1407 * Mon Jun 26 2006  Derek Atkins <warlord@MIT.EDU>
1408 - moduleparam and krb524 patches no longer required in OA-CVS
1409
1410 * Wed May 17 2006  Derek Atkins <warlord@MIT.EDU>
1411 - change non-target-cpu kernel dep to a file dep
1412 - make sure we use the proper kernel version for the dependency.
1413
1414 * Tue May 16 2006  Derek Atkins <warlord@MIT.EDU>
1415 - allow users to specify local CellServDB and SuidCells entries
1416   don't overwrite user's changes.  Provide a .dist an let users
1417   make entries in a ".local"
1418 - build the CellServDB and SuidCells at client startup and at
1419   client install-time
1420 - add provideskernelarch functionality to openafs-kvers-is.sh
1421 - use that functionality to Require kernel{,-<type>}-targetcpu
1422   to get better package safety due to RPM bugs where the kernel
1423   release isn't used so you can install the kernel module against
1424   any kernel of the same major version.
1425
1426 * Mon May 15 2006  Derek Atkins <warlord@MIT.EDU>
1427 - update the README in openafs-kernel-source
1428 - fix openafs-kvers-is.sh from Alexander Bergolth's patch.
1429 - move kernel module from .../kernel/fs/openafs to .../fs/openafs/
1430
1431 * Fri Apr 21 2006  Derek Atkins <warlord@MIT.EDU>
1432 - build requires autoconf and automake for krb5support
1433   and autoconf for standard package
1434 - dont setup the krb5 migration kit (or patches) if we don't care.
1435 - require ncurses-devel to build
1436
1437 * Wed Apr 19 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-3
1438 - look for krb524 functions in libkrb524 if we can't find them
1439   in the standard locations.
1440
1441 * Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
1442 - fix the module_param_array macro for Linux 2.6.9.
1443
1444 * Sat Apr 15 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-1
1445 - update to 1.4.1 release.
1446 - distribute asetkey from openafs instead of krb5-migration kit
1447 - don't need to apply the FC5 patches because they are part of the distro.
1448 - install asetkey into the "proper" place
1449 - dont list a manpage twice.
1450 - package asetkey man page.  delete it when not needed.
1451
1452 * Thu Apr  6 2006  Derek Atkins <warlord@MIT.EDU>
1453 - turn authlibs back on, because RT #18767 was applied to CVS.
1454
1455 * Wed Mar 29 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1rc10-1
1456 - update to 1.4.1rc10, build on FC5
1457 - fix the man pages (distribute into various packages)
1458 - include patches for FC5, RT #29112 and #29122
1459
1460 * Mon Dec 19 2005  Derek Atkins <warlord@MIT.EDU>
1461 - openafs-server shouldn't depend on the kernel module.
1462
1463 * Thu Nov 17 2005  Derek Atkins <warlord@MIT.EDU>
1464 - patch from Mike Polek <mike at pictage.com> to run depmod for
1465   the target kernel and not the running kernel.
1466
1467 * Tue Nov  8 2005  Derek Atkins <warlord@MIT.EDU>
1468 - build aklog from the openafs sources, not from the krb5 migration kit.
1469
1470 * Fri Nov  4 2005  Derek Atkins <warlord@MIT.EDU>
1471 - set openafs-kernel-source to Provide openafs-kernel
1472
1473 * Thu Oct 20 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0-1
1474 - update afs-krb5 res_search patch: look for res_search and __res_search
1475 - update to 1.4.0 final
1476
1477 * Mon Oct 10 2005  Derek Atkins <warlord@MIT.EDU>
1478 - remove all kdump builds.
1479
1480 * Thu Oct  6 2005  Derek Atkins <warlord@MIT.EDU>
1481 - fix openafs-kernel-version.sh so it will build an RPM for the
1482   currently-running kernel even if it's smp on 2.6.
1483
1484 * Tue Sep 27 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc5-1
1485 - upgrade to 1.4.0rc5
1486 - turn off authlibs packages
1487
1488 * Fri Sep 23 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-2
1489 - add kmodule26 patch: fix the kernel module name on 2.6 kernels so
1490   it's called "openafs" and not "libafs".  This fixes the shutdown
1491   problem.
1492
1493 * Thu Sep 22 2005  Derek Atkins <warlord@MIT.EDU>
1494 - update kversis script, add 'kvers' operation
1495 - fix bug that 2.6 smp/hugemem kernels don't provide
1496   kernel-foo = %{kernvers} with 'smp', 'hugemem', etc.
1497 - add patch to remove res_search from the afs-krb5 configure
1498
1499 * Thu Sep 15 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-1
1500 - Update to 1.4.0rc4
1501 - Update the afs-krb5 krb524 patch so it actually works on
1502   some older systems like RHEL3 that still need -lkrb524.
1503 - Update the buildall script so choose better architecture support,
1504   e.g. don't build i586 on RHEL.
1505 - Update the rebuild information in the SPEC file.
1506 - Add support for finding .EL kernels in openafs-kvers-is.sh
1507 - Add additional error messages when kernel version/type parsing fails.
1508 - Update the buildall script to use the kernel srcdir directly.
1509
1510 * Wed Sep 14 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-2
1511 - Add "hugemem" to 2.4 configs
1512 - Add checks to support scripts to determine whether to build
1513   the bigmem and/or hugemem kernels for 2.4.
1514
1515 * Mon Sep 12 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-1
1516 - Added some afs-krb5 patches to get the migration kit to build
1517   on modern AFS and modern Kerberos.
1518 - Added authlibs and authlibs-devel packages as per UMich changes.
1519
1520 * Sun Sep 11 2005  Derek Atkins <warlord@MIT.EDU>
1521 - Merged in some of the 2.6 changes from wingc@engin.umich.edu
1522
1523 * Sat Sep 10 2005  Derek Atkins <warlord@MIT.EDU>
1524 - Merged in lots of changes from David Howells and Nalin Dahyabhai
1525   from Red Hat.   Initial attempt at a release of 1.4.  Still need
1526   to work in a 2.6 build system.