Nameing guideline for external kernel-modules in fedora(.us)

Ville Skyttä ville.skytta at iki.fi
Wed Dec 17 20:57:46 UTC 2003


On Wed, 2003-12-17 at 22:10, Fernando Pablo Lopez-Lezcano wrote:

> > It's like that currently. But with SMP and UP in a single package, it's
> > impossible to pick the wrong one. The package just gets larger.
> 
> And it is still possible to pick the wrong one (wrong architecture, or
> even wrong kernel, SMP and UP are not the only choices AFAIK). 

Agreed, bundling is ugly.  It would probably also result in trouble with
custom kernels.

About upgrade functionality, I see the FC1 up2date has

  pkgsToInstallNotUpdate[comment]=A list of provides names or package
  names of packages to install not update
  pkgsToInstallNotUpdate=kernel;kernel-modules;

Ok, so this is sort of obvious.  But it may be a slight PITA: suppose
kernel-module-foo-1.0-1 which "Provides: kernel-modules" is built for
x.y-z kernel and installs modules somewhere under /lib/modules/x.y-z. 
Then, we discover a packaging bug in kernel-module-foo so it needs to be
rebuilt bumping the release tag, or a new upstream version surfaces. 
When releasing the updated package without the kernel version changed
meanwhile, *boom*, conflicts.

Suggestions how this should be handled?  Install everything from
kernel-module-foo-i.j-k into fully versioned directories or filenames
(ie. %{name}-%{version}-%{release} included) somewhere so that the
conflicts don't occur, and ensure somehow that it is deterministic which
version is seen by insmod and friends if kernel-module-foo-1.0-1 and
2.0-1 are simultaneously installed for the same kernel version?  Eek...
I'm getting the feeling that the "kernel-modules" provision is really
only useful with packages whose life cycle is tightly bound to the
kernel's.

The current (somewhat unfinished) fedora.us guidelines basically stuff
the `uname -r` of the kernel into kernel module packages' %{name}, that
results in butt-ugly but functional naming which I believe is pretty
cleanly supported by all package managers out there, without any
additional magic.  Even the rpm CLI does the right thing with those:
when a real update to a kernel-module-foo package is made, we want the
package managers to grok it and upgrade from the previous version
instead of installing a new one alongside the old.  But when the same
kernel-module-foo package is rebuilt for a new kernel, we don't want
upgrade but install.  I think this is still a useful scheme, but it
smells like trouble if the up2date kernel-modules provision would be
tried to be used with it.

A whole different issue is cleanly tweaking modules.conf.  Think about
the possibility where we have kernel versions A, B and C installed and
kernel-module-foo for only A and C of those, possibly in fully versioned
dirs somewhere as guessed above.  Kernel B should not "see"
kernel-module-foo's modules.conf snippets.  Some raw thoughts about how
to handle this (surprise, a modules.conf.d -like structure using `uname
-r` some way): https://bugzilla.fedora.us/show_bug.cgi?id=503





More information about the fedora-devel-list mailing list