After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 729388 - support metalinks (and object fetch from multiple hosts?)
support metalinks (and object fetch from multiple hosts?)
Status: RESOLVED FIXED
Product: ostree
Classification: Infrastructure
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: OSTree maintainer(s)
OSTree maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2014-05-02 13:43 UTC by Colin Walters
Modified: 2017-05-12 17:50 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Colin Walters 2014-05-02 13:43:57 UTC
yum has this concept of a "metalink" which downloads a list of mirrors.  We should support something similar.

If we do that, one option is to parallelize object fetches across multiple hosts.
Comment 1 Colin Walters 2014-05-21 14:01:32 UTC
It looks like this is implemented by:

https://github.com/Tojaj/librepo/blob/master/librepo/lrmirrorlist.h

A few options:

1) Steal this code  (except...librepo is GPLv2+ =/)
2) Reimplement
3) Push this problem set to rpm-ostree; for example, have the yum repo metadata contain the ostree repository links.
  Then we fetch the yum data via librepo, and extract the ostree repo links.  Only works if every yum repo also carries ostree repos.
Comment 2 Colin Walters 2014-07-21 15:21:07 UTC
See: https://fedorahosted.org/mirrormanager/
Comment 3 Colin Walters 2014-08-01 12:43:46 UTC
A basic plan:

* Add a metalink= argument in the ostree repo config
* Add a metalink parser (based on GMarkup) to ostree
 - Only support a file named "repomd.xml" 
 - Iterate over the lists of available mirrors, fetch it, verify its checksum (only accept sha256)
* Parse the repomd.xml - it can contain whatever we want.  Theoretically doesn't actually have to be XML either.  The important thing is this if we fetch the metalink over SSL, the data in the metalink should be sufficient to verify the repomd.xml, which in turn should be sufficient to verify the commit.
Comment 4 Colin Walters 2014-08-01 12:44:03 UTC
See also https://bugzilla.gnome.org/show_bug.cgi?id=729585
Comment 5 Allan Gardner 2016-06-05 21:36:46 UTC
This is implemented now (using the summary file) so it can be closed?
Comment 6 Colin Walters 2017-05-12 17:50:50 UTC
Yeah,  this is implemented today.