> > The changes that this patch makes are:
> >
> >   (1) The only kernel modules built are all appropriate to the
> > currently       running kernel version and the target CPU specified
> > on the command line.
> 
> I like everything but this.  Right now I can build modules for multiple 
> kernels on one box by firing off the rpm build and coming back later 
> when then are all built.  Of course I must have all of the 
> kernel-source RPMs installed, and I do.

Hmmm...

It would be quite easy to make it so that the kernel version being built for
is not the one running, I think.

The whole "what kernel?" question is resolved in the first few lines of the
revised spec file by the following:

        %define krpmvers %(rpm -q --whatprovides kernel | sort | tail -1)

Actually, I got that wrong - it's not the "running kernel" but the "latest
installed version" that gets used.

If this line is changed to the following four:

        %define krpmvers_on_cmdline %{?krpmvers:1}%{!?krpmvers:0}
        %if !%{krpmvers_on_cmdline}
        %define krpmvers %(rpm -q --whatprovides kernel | sort | tail -1)
        %endif

Then the kernel to build for can also be specified on the command line, and
should build provided the appropriate sources are available:

        rpmbuild -bb \
                --target=i386 \
                --define "krpmvers kernel-2.4.20-1.1931.2.231.2.11.ent" \
                /usr/src/redhat/SPECS/openafs.spec 

Then you just need a shell script to go through the list of installed kernels
and build them all:

        #!/bin/sh

        rpm -q --whatprovides kernel |
        sed -e 's/^kernel[a-z-]*-/kernel-/' |
        sort -u |
        while read krpmvers
        do
                for cpu in i686 athlon
                do
                        rpmbuild -bb \
                                --target=$cpu \
                                --define "krpmvers $krpmvers" \
                                /usr/src/redhat/SPECS/openafs.spec 
                done
        done

And you only need one set of userspace RPMs and one source RPM:

        rpmbuild -ba --target i386 /usr/src/redhat/SPECS/openafs.spec

> I would prefer that we still be able to build this way, since I (at 
> least) do not have a build farm running each kernel,

Our build farm (I think) only runs the latest version of the kernel for any
given distribution.

> but I still need to provide kernel modules to allow for AFS to run on any of
> the kernels for a given Red Hat version.

That's a _lot_ of kernels from where I sit.

David
_______________________________________________
OpenAFS-devel mailing list
[EMAIL PROTECTED]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to