Repository feature proposal

Nicolas Mailhot Nicolas.Mailhot at laPoste.net
Sun Oct 19 19:59:49 UTC 2003


Le dim 19/10/2003 à 21:22, seth vidal a écrit :
> >  <mirrorset>
> >   <provider>Red Hat</provider>
> >   <description> ....
> >   </description>
> >   <mirror url="ftp://ftp.redhat.com/...."
> >           arch="x86"
> >           every="3h"/>
> >   <mirror url="rsync://opteronium.redhat.com/...."
> >           arch="opteronium"
> >           every="24h"/>
> >   ....
> >   <mirror url="http://sources.redhat.com/...."
> >           arch="src"
> >           every="3h"/>
> >  </mirrorset>
> > 
> let me say now, for the record, branding a channel/repo as only for one
> arch is a bad bad bad bad bad idea.
> 
> you will get into far more trouble here than any other place as pkg
> coloring becomes more obvious/prevalent.

I hate to say it - but if you want to spread the load you'll need
massive mirroring and there's no way all mirrors will host all obscure
arch people have been talking about (and some will not carry all
available streams/channels)

Having more mirror sources for some arches is ok - x86 for example is
massively more used, all arches were not created equal.

If anything I suspect this proposal is not fine-grained enough for the
mirror people.

> Also - what you're describing above appears to be configuration ABOUT a
> repository - rather than purely descriptive of a repository.

I purely converted the kind of info one can fine in a fedora.us apt
sources.list for example. Weren't we talking about exactly this ?

> I think repository information that will be on a server shouldn't have
> too much prescriptive information.

Well in my mind it was more informative than prescriptive:)

> also - the mirroring information is tricky b/c most mirrors won't know
> about the other ones - mirroring information is probably best left OUT
> of the information for any one repository.

But the core org knows about it's official mirrors. And this official
mirror list should be made available to the end-users download manager
so it can choose automatically the closest/less loaded available mirror
(maybe even spread the load between several mirrors).

Relying on the users to uncomment a mirror in a list means most people
won't bother and just hit the mother site.

Allowing people to add private mirrors to the upstream list is really
easy : just change the core descriptor to

***

<repository id="fedora">
 <name>Fedora</name>
 <description>.....</description>
 <description lang="klingon">.....</description>
 <stream id="core">
  <name>Core Packages</name>
  <description>....</description>
 </stream>
 <stream id="updates">
  <name>Core Packages</name>
  <description>....</description>
 </stream>
 ...
 <stream id="unstable">
 ...
 </stream>

 <mirrorset>
  <provider>Red Hat</provider>
  <description> ....
  </description>
  <mirror url="ftp://ftp.redhat.com/...."
          arch="x86"
          every="3h"/>
  <mirror url="rsync://opteronium.redhat.com/...."
          arch="opteronium"
          every="24h"/>
  ....
  <mirror url="http://sources.redhat.com/...."
          arch="src"
          every="3h"/>
 </mirrorset>

 <mirrorset>
  <provider>Foo University</provider>
  <provider lang="fr">Université Foo</provider>
  <description>Only .edus please</description>
  <description lang="fr">Réservé au monde éducatif</description>
  <stream refid="core"/>
  <stream refid="updates"/>
  <mirror url="ftp://foo.edu/x86/...."
          arch="x86"
          every="24h"/>
  <mirror url="ftp://foo1.edu/sparc/...."
          arch="sparc"
          every="2d"/>
  <mirror url="ftp://foo2.edu/sparc/...."
          arch="sparc"
          every="2d"/>
 </mirrorset>
***

And allow people to drop files like :

***

<repository refid="fedora">
  <mirrorset>
  <provider>My org</provider>
  <description>My intranet private mirror</description>
  <stream refid="core"/>
  <stream refid="updates"/>
  <mirror url="ftp://192.168.1.2/...."
          arch="x86"
          every="24h"/>
 </mirrorset>

***

If the download manager logic is properly implemented it will always use
the new mirror instead of the others, because if you won't have added it
to the list if it's worst than the official ones (ie it will always be
closer/have more bandwidth available than the others).

Apt is pretty good at it - I have a several sources declared, including
my own private mirror and after querying sources apt will always pull
stuff from my mirror (except when another source synced with upstream
more recently than my cron, in which case a few packages will be
downloaded from external sources).

Cheers,

-- 
Nicolas Mailhot
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Ceci est une partie de message num?riquement sign?e.
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20031019/39ce6d1b/attachment.sig>


More information about the fedora-devel-list mailing list