[Yum-devel] [GSoC] Avahi repositories for yum

James Antill james at fedoraproject.org
Wed Mar 23 17:12:43 UTC 2011


On Mon, 2011-03-21 at 01:48 +0800, Yin Qiu wrote:
> Hi,
> 
> I'm Yin from China. As the subject line says, I'd like to apply for
> the summer project of adding automatic repo discovery for yum. I've
> personally contacted Roland McGrath, who is supposed to be the mentor
> for this project, and he told me to discuss this with the community. I
> don't have idea which mailing list is best suitable for this
> discussion, so I'm sorry for my cross-posting.
> 
> I'll briefly talk about my understanding about the idea. In the spirit
> of "dividing the project into separate pieces", I suggest the final
> deliverables include:

 Just as an FYI to everybody, this is the original idea as posted:

http://fedoraproject.org/wiki/Summer_coding_ideas_for_2011#Avahi_yum_repositories

...this is notably different from previous POC avahi ideas, the idea of
both was more that avahi could be used to "share" a sub-set of a repo.
that had already been downloaded.

 The main RFEs seem to be:

1. Only required change on client is installing a plugin.

2. Plugin will "use avahi" to find mirrors for "repos", and add those
URLs to the mirrorlist.

3. Plugin will "include proper NFS support", which means if the URL is
nfs:/blah ... the plugin will make sure that NFS location is mounted
somewhere, and then pass the file:/ URLs to yum.

4. Tool for servers to advertise that they have a mirror of repo. XYZ.

5. Get plugin installed for anaconda environment.

> 1) a script to help repositories that reside on nfs or http servers to
> advertise their presence. Does this mean we shall add a new service
> type, say _yum._tcp, to zeroconf?

 I don't think you can be that generic, with this proposal. As it's all
about mirroring specific repos. So you need to be able to keep the avahi
advertised mirrors for "fedora" and "updates" away from each other.
 The other problem is how you identify the repos. ... the obvious answer
would be to use the Repo id's ... except that doesn't work for Anaconda,
AIUI ... and isn't 100% for other usecases I bet Roland is thinking
about.

 The way my attempt at avahi worked was to go super generic and have a
CAS (http://en.wikipedia.org/wiki/Content-addressable_storage), and then
whenever yum would want to download something it'd ask any of the avahi
providers if they had it (over simple http/ftp/file/whatever).
 This solves all the repo. identification problems, because you don't
care ... if they have the bits, you get them locally.


 Roland might even be happy(ier) here with some work on MirrorManager so
that you can easily create private mirrors, using a command line tool
(although that would remove yum and avahi, so is a very different
proposal).

> 2) a plugin that, once enabled, automatically discovers published yum
> services and adds it to the pool.

 Kind of, you'd need to get two pieces of information:

1. What is the repo.
2. What is the mirror URL.

...and then lookup the repo. object given #1 and add the mirror URL #2
to it.

> 3) modification to anaconda to incorporate automatic yum repo
> detection.

 This should be the fairly simple case of getting the anaconda guys to
include the plugin (assuming you can can make it work in the anaconda
environment).



More information about the Yum-devel mailing list