[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ABI handling for linux-2.6



On Thu, Jun 08, 2006 at 01:24:49AM +0200, Goswin von Brederlow wrote:
> > 2. Remove the ABI information from the package file names, possibly even
> > renaming the linux-image packages to linux-image-2.6-arch-flavor to 
> > avoid NEW runs even on new minor releases. 
> 
> Move the package ABI from the package name into provides.
> 
> > To accomplish this, we need to take care of the following:
> >
> > - Build the out of tree modules along with the linux-2.6 package.
> 
> Out of tree modules can just use the provided abi just like they use
> the name now.
> 
> > - Remove the ABI from the packages files names.
> >
> > - Have the out-of-tree modules Depends: linux-2.6.x-arch-flavor (== 2.6.x-x).
> 
> Right, move them into provides and get make-kpkg / module assistant to
> pick that provides as dependecy for out of tree modules.

That is a most interesting proposition. It does not account for having
separate kernels installed at the same time, but it does solve the abi thingy
nicely.

In the ocaml team we have been using this trick since 5 years or so, and it
works nicely, except for a few snags.

Autobuilders don't know how to install virtual packages, since they believe
that provides are only there to provide alternatives, and don't want to make a
decision on which one to chose. They don't understand that there may be use
for a abi-providing virtual package, and that in this case, for a given
archive, there is a 1:1 mapping between this virtual package and the real
package.

When we first implemented this in ocaml, i got an over-haugthy mail from elmo
strongly discouraging us to go this way (along the lines of 'virtual packages
cannot be used as build-deps, this is the way it is and won't change anytime
soon'), and since then the buildd's needed to be individually hinted each time
there is an ocaml abi change.

This would be less problematic for the kernel package proper, but the problems
happens more for the out-of-tree modules, whose buildd will not notice quickly
enough that there was a kernel package abi change, and thus only shift the
same problem elsewhere.

Notice that it is already the non-deterministic-many-month NEW delay of back
then which pushed us to go with the provides route, and that this is a rather
nice way to go.

I would encourage that each packages does a : 

  Provides: linux-abi-2.6.16-2

And that this one is used as dependency for out-of-tree modules, even though
not as build-dependencies. This dependency should be generated automatically,
with a control file substitution variable. Again we have examples of this in
the ocaml packages.

Friendly,

Sven Luther



Reply to: