On Tue, Apr 24, 2007 at 11:47:16AM -0700, Ram Pai wrote:
> On Tue, 2007-04-24 at 13:29 -0500, Michael E Brown wrote:
> > On Tue, Apr 24, 2007 at 11:24:27AM -0700, Ram Pai wrote:
> > > On Tue, 2007-04-24 at 08:51 -0500, Michael E Brown wrote:
> > > >
> > > > Ram,
> > > > After mulling on this a little bit, how about this idea:
> > > >
> > > > You could create a yum plugin that sets yumvars: $kernelver and
> > > > $kernelarch. Then you could set up the repo with
> > > >
> > > > mirrorlist=http://your.site/mirror.cgi&kernelver=$kernelver&kernelarch=$kernelarch
> > > >
> > > > In your CGI script, you could detect if modules for that kenrel are
> > > > built. If they are, return the repo baseurl. If they are not, build the
> > > > packages and update the repo metadata before returning the baseurl.
> > >
> > > Interesting. Sounds like this skips the xml file download, and directly
> > > installs the rpm of interest. Am I thinking right?
> >
> > No, it doesnt. It just delays downloading the xml metadata until the new
> > package is in the repo and ready to go. Sort of a behind-the-back magic.
> >
> > The yum client says, "hey can you give me the mirrorlist, and by the
> > way, here is some other information you might be interested in
> > ($kernelver, $kernelarch, etc)"
> >
> > The cgi on the server says, "yeah, umm.... (swizzles repository in the
> > background) ... here you go. Here is the repo with everything you need."
>
> /me smiles.
>
> neat. Will try this out.
>
> This solution will still need a plug-in on the client side, to be
> downloaded from somewhere.
Take a look at:
http://linux.dell.com/repo/software
http://linux.dell.com/repo/hardware
I have a yum plugin that I package in firmware-addon-dell that sets some
variables based on the system model. You have to bootstrap the system to
have the dell-repository RPM, plus the plugin RPM. (You could possibly
put the plugin files inside your repository RPM, I had other
dependencies and could not.)
> And I am sure the cgi script has to be fast
> enough for the client to not timeout.
Well, only the first person to hit the repository with any certain
kernel version should take the hit, plus I dont think yum has a timeout
on this operation. It just does a urlopen(), and as long as the cgi
script doesnt break the connection, it should just wait there for you.
> A capability in the client tools to handle xml files, that says "I dont
> have this rpm in the repository yet, but I can make it for you if you
> demand" will be nice.
Yes. That would probably be possible using the current yum plugin
architecture. I am not quite expert enough on yum to tell you how this
could be done. I do know that the method above would most likely work
ok, even if it isnt the most efficient.
You will run into the same 'yumvars' problem that I have recently
emailed the mailing list about, though. Hopefully that will be resolved
soon.
--
Michael
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel