[OpenAFS] In the RPM spec file, what is the goal of the special fedora option?

Simon Wilkinson sxw@inf.ed.ac.uk
Tue, 12 Feb 2008 22:32:46 +0000

On 12 Feb 2008, at 21:58, Paul Johnson wrote:
> Now I notice in the 1.4.6 spec file an option for fedora, but I can't
> quite understand what benefit there is in this approach.  The only
> thing I can tell for sure is it builds the kernel module into a
> package called kmod-openafs.  I don't understand what the benefit of
> that change is.

Before Fedora decided they weren't going to do out-of-tree kernel  
modules at all, kmod-<package> was the standard mechanism for  
packaging kernel modules in both Fedora and RHEL. The kmod package  
descriptions are built using a standard script, and will, in theory,  
be identical for all kernel modules that are part of the  
distribution. The kmod-* packages have better dependency resolution,  
and support installing both building and installing kernel modules  
for multiple kernel variants (so you can have Xen and PAE modules for  
the same kernel).

Of course, some add-on vendors decided that kmod wasn't good enough,  
and use their own kernel module packaging schemes. The disadvantage  
of these are that they either require additional bundles of RPM  
macros to build, or that they break upgrade depedency checks. kmod  
seems to strike a reasonable balance between complexity and correctness.

The other benefit of kmods is that they are easy to automatically  
build. We're now doing automated nightly builds for all Fedora and  
RHEL distributions that we support, on a single machine, with a  
single build script, and building for all kernel versions variants  
that kernel-devel packages have been published for (around 700  
different kernels, at the last count). This simply wasn't possible  
with the old-style kernel module packaging.

The spec file that's currently in CVS makes fedora kmods the default  
for all RPM builds (it can still be overridden by those building for  
other distributions)