redhat: Correct permissions on systemd unit files
[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: http://dl.central.org/dl/cellservdb/CellServDB.2015-01-19
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' \
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 %if %{fedorakmod}
940 for kvariant in %{kvariants}
941 do
942   if [ -n "$kvariant" ] ; then
943     if [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP ] ; then
944       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
945       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
946     elif [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP ] ; then
947       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}+${kvariant}-SP
948       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}+${kvariant}/extra/openafs
949     else
950       srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}.${kvariant}-SP
951       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}.${kvariant}/extra/openafs
952     fi
953   else
954     if [ -d ${sysname}/dest/root.client/lib/modules/%{kverrel}/extra/openafs ] ; then
955       srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}/extra/openafs
956       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}/extra/openafs
957     else
958       srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
959       dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}/extra/openafs
960     fi
961   fi
962
963   mkdir -p ${dstdir}
964   install -m 755 ${srcdir}/openafs.ko ${dstdir}/openafs.ko
965 done
966 %else
967 # Install the kernel modules
968 for variation in %{kvariations}
969 do
970     if [ ${variation} = up ]
971     then
972        kvar=%{kxmoddir}
973        modname=openafs${kmodend}
974     else
975        kvar=%{kxmoddir}${variation}
976        modname=openafs${kmodend}
977     fi
978
979     srcdir=${sysname}/dest/root.client/lib/modules/%{kverrel}${kvariant}/extra/openafs
980     dstdir=$RPM_BUILD_ROOT${kvar}/fs/openafs
981
982     mkdir -p ${dstdir}
983
984     install -m 755 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
985 done
986 %endif
987 %endif
988
989 ##############################################################################
990 ###
991 ### clean
992 ###
993 ##############################################################################
994 %clean
995 rm -f openafs-file-list
996 [ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
997         rm -fr $RPM_BUILD_ROOT
998
999
1000 ##############################################################################
1001 ###
1002 ### scripts
1003 ###
1004 ##############################################################################
1005 %if %{build_userspace}
1006
1007 %pre compat
1008 if [ -e %{_prefix}/afsws ]; then
1009         /bin/rm -fr %{_prefix}/afsws
1010 fi
1011
1012 %post client
1013 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1014 chkconfig --add openafs-client
1015 %else
1016 if [ $1 -eq 1 ] ; then 
1017     # Initial installation 
1018     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1019 fi
1020 %endif
1021 if [ ! -d /afs ]; then
1022         mkdir /afs
1023         chown root.root /afs
1024         chmod 0755 /afs
1025         [ -x /sbin/restorecon ] && /sbin/restorecon /afs
1026 fi
1027
1028 # Create the CellServDB
1029 [ -f /usr/vice/etc/CellServDB.local ] || touch /usr/vice/etc/CellServDB.local
1030
1031 ( cd /usr/vice/etc ; \
1032   if [ -h CellServDB ]; then \
1033     rm -f CellServDB; \
1034   fi; \
1035   cat CellServDB.local CellServDB.dist > CellServDB ; \
1036   chmod 644 CellServDB )
1037
1038 %post server
1039 #on an upgrade, don't enable if we were disabled
1040 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1041 if [ $1 = 1 ] ; then
1042   chkconfig --add openafs-server
1043 fi
1044 %{initdir}/openafs-server condrestart
1045 %else
1046 if [ $1 -eq 1 ] ; then 
1047     # Initial installation 
1048     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1049 fi
1050 %endif
1051
1052 %if %{build_authlibs}
1053 %post authlibs
1054 /sbin/ldconfig
1055
1056 %postun authlibs
1057 /sbin/ldconfig
1058 %endif
1059
1060 %preun
1061 if [ $1 = 0 ] ; then
1062         [ -d /afs ] && rmdir /afs
1063         :
1064 fi
1065
1066 %preun client
1067 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1068 if [ $1 = 0 ] ; then
1069         %{initdir}/openafs-client stop
1070         chkconfig --del openafs-client
1071 fi
1072 %else
1073 if [ $1 -eq 0 ] ; then
1074         # Package removal, not upgrade
1075         /bin/systemctl --no-reload disable openafs-client.service > /dev/null 2>&1 || :
1076         /bin/systemctl stop openafs-client.service > /dev/null 2>&1 || :
1077 fi
1078 %endif
1079
1080 %preun server
1081 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1082 if [ $1 = 0 ] ; then
1083         %{initdir}/openafs-server stop
1084         chkconfig --del openafs-server
1085 fi
1086 %else
1087 if [ $1 -eq 0 ] ; then
1088         /bin/systemctl --no-reload disable openafs-server.service > /dev/null 2>&1 || :
1089         /bin/systemctl stop openafs-server.service > /dev/null 2>&1 || :
1090 fi
1091 %endif
1092
1093 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
1094 %postun client
1095 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1096
1097 %postun server
1098 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
1099 %endif
1100
1101 %if %{build_dkmspkg}
1102 %post -n dkms-%{name}
1103 dkms add -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1104 dkms build -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1105 dkms install -m %{name} -v %{dkms_version} --rpm_safe_upgrade
1106
1107 %preun -n dkms-%{name}
1108 dkms remove -m %{name} -v %{dkms_version} --rpm_safe_upgrade --all ||:
1109 %endif
1110 %endif
1111
1112 %if %{build_modules}
1113 %if !%{fedorakmod}
1114 %if %{up_package}
1115 %post kernel
1116 %{depmod} -ae %{kernvers}
1117
1118 %postun kernel
1119 %{depmod} -ae %{kernvers}
1120
1121 %endif
1122
1123 %if %{smp_package}
1124 %post kernel-smp
1125 %{depmod} -ae %{kernvers}%{?smp_ext:%{smp_ext}}
1126
1127 %postun kernel-smp
1128 %{depmod} -ae %{kernvers}%{?smp_ext:%{smp_ext}}
1129 %endif
1130
1131 %if %{largesmp_package}
1132 %post kernel-largesmp
1133 %{depmod} -ae %{kernvers}%{?largesmp_ext:%{largesmp_ext}}
1134
1135 %postun kernel-largesmp
1136 %{depmod} -ae %{kernvers}%{?largesmp_ext:%{largesmp_ext}}
1137 %endif
1138  
1139 %if %{bigmem_package}
1140 %post kernel-bigmem
1141 %{depmod} -ae %{kernvers}%{?bigmem_ext:%{bigmem_ext}}
1142
1143 %postun kernel-bigmem
1144 %{depmod} -ae %{kernvers}%{?bigmem_ext:%{bigmem_ext}}
1145 %endif
1146
1147 %if %{hugemem_package}
1148 %post kernel-hugemem
1149 %{depmod} -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
1150
1151 %postun kernel-hugemem
1152 %{depmod} -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
1153 %endif
1154 %endif
1155 %endif
1156
1157 %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
1158 %triggerun -- openafs-client < 1.6.0-1
1159 # Save the current service runlevel info
1160 # User must manually run systemd-sysv-convert --apply httpd
1161 # to migrate them to systemd targets
1162 /usr/bin/systemd-sysv-convert --save openafs-client >/dev/null 2>&1 ||:
1163
1164 # Run this because the SysV package being removed won't do it
1165 /sbin/chkconfig --del openafs-client >/dev/null 2>&1 || :
1166
1167 %triggerun -- openafs-server < 1.6.0-1
1168 # Save the current service runlevel info
1169 # User must manually run systemd-sysv-convert --apply httpd
1170 # to migrate them to systemd targets
1171 /usr/bin/systemd-sysv-convert --save openafs-server >/dev/null 2>&1 ||:
1172
1173 # Run this because the SysV package being removed won't do it
1174 /sbin/chkconfig --del openafs-server >/dev/null 2>&1 || :
1175 %endif
1176
1177 ##############################################################################
1178 ###
1179 ### file lists
1180 ###
1181 ##############################################################################
1182 %if %{build_userspace}
1183
1184 %files -f openafs-file-list
1185 %defattr(-,root,root)
1186 %config(noreplace) /etc/sysconfig/openafs
1187 %doc %{_docdir}/openafs-%{afsvers}/LICENSE
1188 %{_libdir}/libafshcrypto.so.*
1189 %{_libdir}/librokenafs.so.*
1190
1191 %files docs
1192 %defattr(-,root,root)
1193 %docdir %{_docdir}/openafs-%{afsvers}
1194 %dir %{_docdir}/openafs-%{afsvers}
1195 %{_docdir}/openafs-%{afsvers}/ChangeLog
1196 %{_docdir}/openafs-%{afsvers}/RELNOTES-%{afsvers}
1197 %{_docdir}/openafs-%{afsvers}/pdf
1198
1199 %files client
1200 %defattr(-,root,root)
1201 %dir %{_prefix}/vice
1202 %dir %{_prefix}/vice/cache
1203 %dir %{_prefix}/vice/etc
1204 %dir %{_prefix}/vice/etc/C
1205 %{_prefix}/vice/etc/CellServDB.dist
1206 %config(noreplace) %{_prefix}/vice/etc/ThisCell
1207 %config(noreplace) %{_prefix}/vice/etc/cacheinfo
1208 %{_bindir}/afsio
1209 %{_bindir}/cmdebug
1210 %{_bindir}/up
1211 %{_prefix}/vice/etc/afsd
1212 %{_prefix}/vice/etc/C/afszcm.cat
1213 %{pamdir}/pam_afs.krb.so.1
1214 %{pamdir}/pam_afs.krb.so
1215 %{pamdir}/pam_afs.so.1
1216 %{pamdir}/pam_afs.so
1217 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1218 %{initdir}/openafs-client
1219 %else
1220 %{_unitdir}/openafs-client.service
1221 %{_sysconfdir}/sysconfig/modules/openafs-client.modules
1222 %endif
1223 %{_mandir}/man1/cmdebug.*
1224 %{_mandir}/man1/up.*
1225 %{_mandir}/man5/afs.5.gz
1226 %{_mandir}/man5/afs_cache.5.gz
1227 %{_mandir}/man5/afs_volume_header.5.gz
1228 %{_mandir}/man5/afszcm.cat.5.gz
1229 %{_mandir}/man5/cacheinfo.*
1230 %{_mandir}/man8/afsd.*
1231 %{_mandir}/man8/vsys.*
1232 %{_mandir}/man5/CellAlias.*
1233
1234 %files server
1235 %defattr(-,root,root)
1236 %dir %{_prefix}/afs
1237 %dir %{_prefix}/afs/bin
1238 %dir %{_prefix}/afs/etc
1239 %dir %{_prefix}/afs/logs
1240 %{_prefix}/afs/bin/bosserver
1241 %{_prefix}/afs/bin/bos_util
1242 %{_prefix}/afs/bin/buserver
1243 %{_prefix}/afs/bin/dafileserver
1244 %{_prefix}/afs/bin/dafssync-debug
1245 %{_prefix}/afs/bin/dasalvager
1246 %{_prefix}/afs/bin/davolserver
1247 %{_prefix}/afs/bin/fileserver
1248 %{_prefix}/afs/bin/fssync-debug
1249 # Should we support KAServer?
1250 %{_prefix}/afs/bin/kaserver
1251 %{_prefix}/afs/bin/ka-forwarder
1252 %{_prefix}/afs/bin/pt_util
1253 %{_prefix}/afs/bin/ptserver
1254 %{_prefix}/afs/bin/salvager
1255 %{_prefix}/afs/bin/salvageserver
1256 %{_prefix}/afs/bin/salvsync-debug
1257 %{_prefix}/afs/bin/state_analyzer
1258 %{_prefix}/afs/bin/upclient
1259 %{_prefix}/afs/bin/upserver
1260 %{_prefix}/afs/bin/vlserver
1261 %{_prefix}/afs/bin/volinfo
1262 %{_prefix}/afs/bin/volscan
1263 %{_prefix}/afs/bin/volserver
1264 %{_sbindir}/kadb_check
1265 %{_sbindir}/prdb_check
1266 %{_sbindir}/vldb_check
1267 %{_sbindir}/vldb_convert
1268 %{_sbindir}/voldump
1269 %if 0%{?fedora} < 15 && 0%{?rhel} < 7
1270 %{initdir}/openafs-server
1271 %else
1272 %{_unitdir}/openafs-server.service
1273 %endif
1274 %{_mandir}/man5/AuthLog.*
1275 %{_mandir}/man5/BackupLog.*
1276 %{_mandir}/man5/BosConfig.*
1277 %{_mandir}/man5/BosLog.*
1278 %{_mandir}/man5/FORCESALVAGE.*
1279 %{_mandir}/man5/FileLog.*
1280 %{_mandir}/man5/KeyFile.*
1281 %{_mandir}/man5/NetInfo.*
1282 %{_mandir}/man5/NetRestrict.*
1283 %{_mandir}/man5/NoAuth.*
1284 %{_mandir}/man5/SALVAGE.fs.*
1285 %{_mandir}/man5/SalvageLog.*
1286 %{_mandir}/man5/sysid.*
1287 %{_mandir}/man5/UserList.*
1288 %{_mandir}/man5/VLLog.*
1289 %{_mandir}/man5/VolserLog.*
1290 %{_mandir}/man5/bdb.DB0.*
1291 %{_mandir}/man5/fms.log.*
1292 %{_mandir}/man5/kaserver.DB0.*
1293 %{_mandir}/man5/kaserverauxdb.*
1294 %{_mandir}/man5/krb.conf.*
1295 %{_mandir}/man5/krb.excl.*
1296 %{_mandir}/man5/prdb.DB0.*
1297 %{_mandir}/man5/salvage.lock.*
1298 %{_mandir}/man5/tapeconfig.*
1299 %{_mandir}/man5/vldb.DB0.*
1300 %{_mandir}/man8/buserver.*
1301 %{_mandir}/man8/fileserver.*
1302 %{_mandir}/man8/dafileserver.*
1303 %{_mandir}/man8/dasalvager.*
1304 %{_mandir}/man8/davolserver.*
1305 %{_mandir}/man8/kadb_check.*
1306 %{_mandir}/man8/ka-forwarder.*
1307 %{_mandir}/man8/prdb_check.*
1308 %{_mandir}/man8/ptserver.*
1309 %{_mandir}/man8/pt_util.*
1310 %{_mandir}/man8/salvager.*
1311 %{_mandir}/man8/salvageserver.*
1312 %{_mandir}/man8/state_analyzer.*
1313 %{_mandir}/man8/upclient.*
1314 %{_mandir}/man8/upserver.*
1315 %{_mandir}/man8/vldb_check.*
1316 %{_mandir}/man8/vldb_convert.*
1317 %{_mandir}/man8/vlserver.*
1318 %{_mandir}/man8/voldump.*
1319 %{_mandir}/man8/volinfo.*
1320 %{_mandir}/man8/volscan.*
1321 %{_mandir}/man8/volserver.*
1322
1323 %if %{build_authlibs}
1324 %files authlibs
1325 %defattr(-,root,root)
1326 %{_libdir}/libafsauthent.so.*
1327 %{_libdir}/libafsrpc.so.*
1328 %{_libdir}/libkopenafs.so.*
1329 %endif
1330
1331 %files authlibs-devel
1332 %defattr(-,root,root)
1333 %{_includedir}/kopenafs.h
1334 %{_libdir}/libafsauthent.a
1335 %{_libdir}/libafscp.a
1336 %{_libdir}/libafsrpc.a
1337 %{_libdir}/libafsauthent_pic.a
1338 %{_libdir}/libafsrpc_pic.a
1339 %{_libdir}/libkopenafs.a
1340 %if %{build_authlibs}
1341 %{_libdir}/libafsauthent.so
1342 %{_libdir}/libafsrpc.so
1343 %{_libdir}/libkopenafs.so
1344 %endif
1345
1346 %files devel
1347 %defattr(-,root,root)
1348 %{_bindir}/afs_compile_et
1349 %{_bindir}/rxgen
1350 %{_includedir}/afs
1351 %{_includedir}/lock.h
1352 %{_includedir}/lwp.h
1353 %{_includedir}/preempt.h
1354 %{_includedir}/rx
1355 %{_includedir}/timer.h
1356 %{_includedir}/ubik.h
1357 %{_includedir}/ubik_int.h
1358 %{_libdir}/afs
1359 %{_libdir}/libafshcrypto.a
1360 %{_libdir}/libafshcrypto.so
1361 %{_libdir}/liblwp.a
1362 %{_libdir}/libopr.a
1363 %{_libdir}/librokenafs.a
1364 %{_libdir}/librokenafs.so
1365 %{_libdir}/librx.a
1366 %{_libdir}/librxkad.a
1367 %{_libdir}/librxstat.a
1368 %{_libdir}/libubik.a
1369 %{_libdir}/libubik_pthread.a
1370 %{_mandir}/man1/rxgen.*
1371 %{_mandir}/man1/afs_compile_et.*
1372
1373 %if %{build_dkmspkg}
1374 %files -n dkms-%{name}
1375 %defattr(-,root,root)
1376 %{_prefix}/src/%{name}-%{dkms_version}
1377 %endif
1378
1379 %files kernel-source
1380 %defattr(-,root,root)
1381 %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
1382 %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
1383 %{_prefix}/src/openafs-kernel-%{afsvers}/README
1384 %{_prefix}/src/openafs-kernel-%{afsvers}/src
1385
1386 %files compat
1387 %defattr(-,root,root)
1388 %{_prefix}/afsws
1389
1390 %files kpasswd
1391 %defattr(-,root,root)
1392 %{_bindir}/kapasswd
1393 %{_bindir}/kpwvalid
1394 %{_mandir}/man1/kapasswd.*
1395 %{_mandir}/man8/kpwvalid.*
1396
1397 %if %{krb5support}
1398 %files krb5
1399 %defattr(-,root,root)
1400 %{_bindir}/aklog
1401 %{_bindir}/klog.krb5
1402 %{_sbindir}/asetkey
1403 %{_mandir}/man1/aklog.*
1404 %{_mandir}/man8/asetkey.*
1405 %endif
1406
1407 %endif
1408
1409 %if %{build_modules}
1410
1411 %if !%{fedorakmod}
1412 %if %{up_package}
1413 %files kernel
1414 %defattr(-,root,root)
1415 %{kxmoddir}/fs/openafs/openafs.*
1416 %endif
1417
1418 %if %{smp_package}
1419 %files kernel-smp
1420 %defattr(-,root,root)
1421 %{kxmoddir}%{?smp_ext:%{smp_ext}}/fs/openafs/openafs.*
1422 %endif
1423
1424 %if %{largesmp_package}
1425 %files kernel-largesmp
1426 %defattr(-,root,root)
1427 %{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/fs/openafs/openafs.*
1428 %endif
1429  
1430 %if %{bigmem_package}
1431 %files kernel-bigmem
1432 %defattr(-,root,root)
1433 %{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/fs/openafs/openafs.*
1434 %endif
1435
1436 %if %{hugemem_package}
1437 %files kernel-hugemem
1438 %defattr(-,root,root)
1439 %{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/fs/openafs/openafs.*
1440 %endif
1441 %endif
1442
1443 %endif
1444
1445 ##############################################################################
1446 ###
1447 ### openafs.spec change log
1448 ###
1449 ##############################################################################
1450 %changelog
1451 * Wed Dec 12 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
1452 - Make the RPM mockable
1453
1454 * Mon Oct 29 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5
1455 - Update to match the shipped 1.4.5 RPMS
1456 - Fix the kvariant stuff to only configure the 'standard' case once
1457 - Add openafs-kvers.sh back in
1458
1459 * Wed Oct 10 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.5pre1-1
1460 - Use Fedora style kmods, which allows us to install multiple kernel types
1461
1462 * Thu Jun 07 2007  Simon Wilkinson <simon@sxw.org.uk> 1.4.4-3
1463 - Use distributed files, rather than those in packager's SOURCE directory
1464 - Remove SuidCells stuff, which was unused
1465
1466 * Fri Dec 01 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-2
1467 - integrate s390x changes
1468 - allow for building libafs*.a and not libafs*.so into packages, for platforms
1469   that won't build the .so files.
1470
1471 * Wed Aug 23 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
1472 - update to 1.4.2
1473 - use installed aklog manpage.
1474 - moduleparam patch obsoleted.
1475
1476 * Tue Aug 22 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.1.rc1
1477 - update to 1.4.2-rc1
1478 - hand-apply lee damon's changes to support largesmp kernels from RHEL4
1479   (but only add support for 2.6 kernels.  No need for the 2.4 kernels).
1480 - don't need the posixlock patch anymore.
1481
1482 * Wed Jul 12 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.beta2
1483 - update to 1.4.2-beta2
1484 - add linux2.4 posixlock API patch
1485
1486 * Mon Jun 26 2006  Derek Atkins <warlord@MIT.EDU>
1487 - moduleparam and krb524 patches no longer required in OA-CVS
1488
1489 * Wed May 17 2006  Derek Atkins <warlord@MIT.EDU>
1490 - change non-target-cpu kernel dep to a file dep
1491 - make sure we use the proper kernel version for the dependency.
1492
1493 * Tue May 16 2006  Derek Atkins <warlord@MIT.EDU>
1494 - allow users to specify local CellServDB and SuidCells entries
1495   don't overwrite user's changes.  Provide a .dist an let users
1496   make entries in a ".local"
1497 - build the CellServDB and SuidCells at client startup and at
1498   client install-time
1499 - add provideskernelarch functionality to openafs-kvers-is.sh
1500 - use that functionality to Require kernel{,-<type>}-targetcpu
1501   to get better package safety due to RPM bugs where the kernel
1502   release isn't used so you can install the kernel module against
1503   any kernel of the same major version.
1504
1505 * Mon May 15 2006  Derek Atkins <warlord@MIT.EDU>
1506 - update the README in openafs-kernel-source
1507 - fix openafs-kvers-is.sh from Alexander Bergolth's patch.
1508 - move kernel module from .../kernel/fs/openafs to .../fs/openafs/
1509
1510 * Fri Apr 21 2006  Derek Atkins <warlord@MIT.EDU>
1511 - build requires autoconf and automake for krb5support
1512   and autoconf for standard package
1513 - dont setup the krb5 migration kit (or patches) if we don't care.
1514 - require ncurses-devel to build
1515
1516 * Wed Apr 19 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-3
1517 - look for krb524 functions in libkrb524 if we can't find them
1518   in the standard locations.
1519
1520 * Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
1521 - fix the module_param_array macro for Linux 2.6.9.
1522
1523 * Sat Apr 15 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-1
1524 - update to 1.4.1 release.
1525 - distribute asetkey from openafs instead of krb5-migration kit
1526 - don't need to apply the FC5 patches because they are part of the distro.
1527 - install asetkey into the "proper" place
1528 - dont list a manpage twice.
1529 - package asetkey man page.  delete it when not needed.
1530
1531 * Thu Apr  6 2006  Derek Atkins <warlord@MIT.EDU>
1532 - turn authlibs back on, because RT #18767 was applied to CVS.
1533
1534 * Wed Mar 29 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1rc10-1
1535 - update to 1.4.1rc10, build on FC5
1536 - fix the man pages (distribute into various packages)
1537 - include patches for FC5, RT #29112 and #29122
1538
1539 * Mon Dec 19 2005  Derek Atkins <warlord@MIT.EDU>
1540 - openafs-server shouldn't depend on the kernel module.
1541
1542 * Thu Nov 17 2005  Derek Atkins <warlord@MIT.EDU>
1543 - patch from Mike Polek <mike at pictage.com> to run depmod for
1544   the target kernel and not the running kernel.
1545
1546 * Tue Nov  8 2005  Derek Atkins <warlord@MIT.EDU>
1547 - build aklog from the openafs sources, not from the krb5 migration kit.
1548
1549 * Fri Nov  4 2005  Derek Atkins <warlord@MIT.EDU>
1550 - set openafs-kernel-source to Provide openafs-kernel
1551
1552 * Thu Oct 20 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0-1
1553 - update afs-krb5 res_search patch: look for res_search and __res_search
1554 - update to 1.4.0 final
1555
1556 * Mon Oct 10 2005  Derek Atkins <warlord@MIT.EDU>
1557 - remove all kdump builds.
1558
1559 * Thu Oct  6 2005  Derek Atkins <warlord@MIT.EDU>
1560 - fix openafs-kernel-version.sh so it will build an RPM for the
1561   currently-running kernel even if it's smp on 2.6.
1562
1563 * Tue Sep 27 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc5-1
1564 - upgrade to 1.4.0rc5
1565 - turn off authlibs packages
1566
1567 * Fri Sep 23 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-2
1568 - add kmodule26 patch: fix the kernel module name on 2.6 kernels so
1569   it's called "openafs" and not "libafs".  This fixes the shutdown
1570   problem.
1571
1572 * Thu Sep 22 2005  Derek Atkins <warlord@MIT.EDU>
1573 - update kversis script, add 'kvers' operation
1574 - fix bug that 2.6 smp/hugemem kernels don't provide
1575   kernel-foo = %{kernvers} with 'smp', 'hugemem', etc.
1576 - add patch to remove res_search from the afs-krb5 configure
1577
1578 * Thu Sep 15 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-1
1579 - Update to 1.4.0rc4
1580 - Update the afs-krb5 krb524 patch so it actually works on
1581   some older systems like RHEL3 that still need -lkrb524.
1582 - Update the buildall script so choose better architecture support,
1583   e.g. don't build i586 on RHEL.
1584 - Update the rebuild information in the SPEC file.
1585 - Add support for finding .EL kernels in openafs-kvers-is.sh
1586 - Add additional error messages when kernel version/type parsing fails.
1587 - Update the buildall script to use the kernel srcdir directly.
1588
1589 * Wed Sep 14 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-2
1590 - Add "hugemem" to 2.4 configs
1591 - Add checks to support scripts to determine whether to build
1592   the bigmem and/or hugemem kernels for 2.4.
1593
1594 * Mon Sep 12 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-1
1595 - Added some afs-krb5 patches to get the migration kit to build
1596   on modern AFS and modern Kerberos.
1597 - Added authlibs and authlibs-devel packages as per UMich changes.
1598
1599 * Sun Sep 11 2005  Derek Atkins <warlord@MIT.EDU>
1600 - Merged in some of the 2.6 changes from wingc@engin.umich.edu
1601
1602 * Sat Sep 10 2005  Derek Atkins <warlord@MIT.EDU>
1603 - Merged in lots of changes from David Howells and Nalin Dahyabhai
1604   from Red Hat.   Initial attempt at a release of 1.4.  Still need
1605   to work in a 2.6 build system.