Re: Re: [Yum-devel] Dynamic yum respositories?

Michael E Brown <[email protected]>
Newsgroups gmane.linux.rpm.yum,gmane.linux.rpm.yum.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.