[Yum-devel] rfc - plugin to integrate hardware inventory into yum

Michael E Brown Michael_E_Brown at dell.com
Tue Aug 14 17:38:04 UTC 2007


On Tue, Aug 14, 2007 at 01:12:23PM -0400, seth vidal wrote:
> On Tue, 2007-08-14 at 12:02 -0500, Michael E Brown wrote:
> 
> >     I'd like to extend this to be more automatic.  One of the ideas that
> > I had was a yum plugin that could automatically add the package names to
> > the system RPM list as sort of 'virtual packages'.  This way, each time
> > the user runs yum, if new packages are available, they will be
> > automatically downloaded. The current situation requires the user to
> > manually run bootstrap_firmware to find new packages.
> > 
> >     Basically, to do this, I would write a simple yum plugin that
> > runs bootstrap_firmware and injects these as yum packages. The nice
> > thing here is that firmware-tools is mostly python code, so this
> > integration will be pretty easy.
> > 
> >     What I need is feedback to see if the yum developers think this is
> > sane, plus any tips on writing this kind of plugin, as I havent started
> > yet, but from my prior plugin experience think it should take about a
> > week to write.
> > 
> >     Other things this would be useful for:
> > 
> > -- Intel wireless firmware. If the wireless firmware is tagged with a
> > 'pci_firmware_ven_0x9999_dev_0x9999' (matching the pci ids of the
> > devices it supports), then the user would *automatically* get the
> > correct wireless firmware installed for free, without any additional
> > work. If this plugin were loaded in anaconda, then the system would get
> > it installed at system install-time.
> > 
> 
> 
> Let me make sure I grok this:
> 
>  You want to have this plugin dynamically generate fake rpm packages
> which specify the hw on the box? Why do you need the fake rpm? Why not
> just have the plugin be able to know what hw is available and install
> the appropriate items accordingly? What do you get out of having a fake
> package in the rpmdb?

Ok, I maybe assumed too much when I wrote this. Let me restate my
question more generically. I am asking the best way to do this, with my
preconceived notion embedded in the question. If there is a better way,
I'd like to know.

Right now:

Users must run 'bootstrap_firmware' to get the candidate list of
"provides" to feed to yum, which in turn will download matching
packages.

What I want to improve:

I would like a way that yum automatically searches for new packages
every time it is run.

I suggested injection of fake packages, as this seemed most logical to
me. If there is a better way, I am not wedded to the idea. Here are a
couple of other points:

There are two type of inventory packages
    -- bootstrap packages -- these are packages that we think *might*
    exist in the repository. Populated with a list matching all the pci
    ids in the system, plus other vendor-specific stuff. USB/SCSI in the
    future. These will look like "pci_firmware_ven_0x9999_dev_0x9999".

    -- Actual inventory packages -- If we have a utility on the system
    that can actually determine the firmware version for a specific
    device. For example, if you have the dell-lsi inventory utility,
    then you can find out the exact version of lsi raid card you have.
    In this case, the package will look like
    "pci_firmware_ven_0x9999_dev_0x9999 = Version#"

--
Michael



More information about the Yum-devel mailing list