[Yum-devel] [PATCH 6/6] Implement parallel downloads for regular RPMs

Zdenek Pavlas zpavlas at redhat.com
Fri Jul 15 10:50:18 UTC 2011

> From: "tim lauridsen" <tim.lauridsen at gmail.com>
> Maybe, some client/server solution, where we spawn a download server
> there is doing the parallel download and communicate over stdin/stdout
> with yum.

I didn't want to separate the downloader too much, since it relies
on quite a lot of config stuff (mirrorlists, timeouts, retires, reget
methods etc), most of that repo-specific.  If it's a separate program
(or a full blown download server), we'd have to duplicate the whole
config processing, and I'm still not sure it's necessary.

Moreover, the 'server' would need some policy of when to start/stop,
and security people might consider it a gaping security hole(?)

> This way you dont have to share yum internals with the downloader and
> you can just kill the downloader helper process if you want to abort
> the downloading.

I was thinking of something much simpler- pass yum '--no-download' 
or similar option, and then instead of downloading packages, it'd 
just print the download list to stdout, and exit() with an error.
The output could be piped to any downloader.  When cache dirs
are popullated with required RPMs, run yum one more time.

> using base64 and pickle makes it easy to transfer python data
> structures over stdin/stdout pipe.

Nah, rather not! pickle.loads("cos\nsystem\n(S'cat /etc/passwd'\ntR.")


More information about the Yum-devel mailing list