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