SCIENTIFIC-LINUX-DEVEL Archives

December 2006

SCIENTIFIC-LINUX-DEVEL@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Stephan Wiesand <[log in to unmask]>
Reply To:
Stephan Wiesand <[log in to unmask]>
Date:
Mon, 4 Dec 2006 23:51:10 +0100
Content-Type:
TEXT/PLAIN
Parts/Attachments:
TEXT/PLAIN (114 lines)
Hi Troy, Marc, All,

On Mon, 4 Dec 2006, Troy Dawson wrote:

> Marc W. Mengel wrote:
> > Troy Dawson wrote:
> > 
> > > kmdl - What Axel Thimm has developed and implemented
> > > kernel-module - What we currently are doing, although I believe the idea
> > > was originally from livna
> > 
> > It sounds to me like kmdl and kernel-module are similar, modulo the
> > actual naming convention -- for a migration path, would it make sense
> > to do a merged plugin that accepts either naming convention?  That way
> > we can migrate from one convention to the other more smoothly(?)

Yes, that seems feasible. I looked into the code, and I think the kmdl 
plugin could be extended to deal with kernel-modules as well quite 
easily. It uses a regular expression to identify kmdls, something like
(.*)-kmdl-.*, and by duplicating a few lines of code (the whole thing is 
some 100 lines) in two subs, using a different regex - probably something
like kernel-module-(.*)-[^-]+-[^-+], it should work for both kmdls and 
kernel-modules.

Once at it, one could also add the missing kernel flavour (PAE) to the 
list coded into the plugin (I think I fetched the most recent version, 
from the EL5 ATRPMS repository, and it's missing).

> > Or are there more devilish details there than I've gleaned from the
> > discussion so far?

A message on scientific-linux-users today indicates that there may 
be a problem with yumex if the kmdl plugin is installed. That's 
unconfirmed, of course. And on SL5, we'll have pirut and may not need 
yumex anymore. But then, has the kmdl plugin been tested together with 
pirut? Pup? ...

And both the kmdl plugin and the kernel-module one (which is much 
more out of date, with several kernel flavours present on SL4 and SL5 not 
being handled) will throw deprecation messages at you when run on SL5. And 
unlike the merge, which is straightforward to do, getting rid of those 
will require some knowledge of yum internals. It may or may not be 
possible to create a plugin that works on both SL4 and SL5, I don't know.

Yum is a moving target, as are kernel flavours. Maintaining a plugin is 
a significant burden. And even more so if one considers possible 
interaction with other tools.

> > Marc
> 
> Actually, I had thought of just having both plugin's installed, or at least
> available.  It shouldn't hurt anything, and allow people to install whichever
> one they want.
> But as a developer, maintaining both ways is rather painful.

Right. And, frankly, needing one plugin is bad enough. Even if one doesn't 
care about each plugin adding significantly to the amount of work done in 
YUM's resolve phase (after all, YUM is really fast, isn't it ;-)


So I've been pondering the thought of getting by without plugins, while 
having the best of kmod/kmdl/kernel-module, without their drawbacks, and 
without much overhead. And maybe it's possible, although I admit
it seems a little weird at first glance:

 o Keep doing kernel-modules. It could be kmdls as well, but it makes no
   difference except in rpm/yum queries.

   This means updated kernel modules can be provided for obsolete kernels
   (I think SL has never done it, but that's different from being
   unable to do it by design), and will be installed automatically.

   And modules will not be wiped out accidentally, which is the other flaw
   of kmod as it stands today.

 o In addition, provide a "stub" kmod (yes...) package for each 
   kernel-module package with a new kernel. The only functional line in
   the spec would be
     Requires: kernel-module-xyz-<uname -r>
   which makes it pull in the actual modules package. No content.

   Like kmod, this gets the most frequent and important case right,
   without the need for a plugin: The add-on modules for a new kernel
   will be installed automatically when this package is updated.

No need to touch existing specs (although it seems natural to add the 
stub kmod package), and no need to maintain python code for an evolving 
API.

It can coexist with "real" kmods, kmdls, and "plain" kernel-modules (for 
which no stub kmod is provided), on the same system, whether or not 
plugins for those are installed.

It will work with any (future) package update tool, out of the box.

If there'd ever be a working plugin for kmods (the one in CVS will have 
very useful features - like preventing kernel upgrades from happening 
if modules are missing - if it ever gets finished), or corresponding 
functionality is added to rpm and/or yum, SL would benefit immediately,
without the need to change anything.

All at the cost of a trivial stub kmod per kernel-module.


I guess someone's going to tell me now why this idea is crazy...

  Stephan

-- 
Stephan Wiesand
  DESY - DV -
  Platanenallee 6
  15738 Zeuthen, Germany

ATOM RSS1 RSS2