On Thu, Jun 04, 2020 at 02:38:20PM -0400, Herby G wrote: > Anything to be done about having such a single point of failure like > this in MacPorts infra?
Unfortunately running our own rsync server costs us money, so ever since our server hardware is no longer being sponsored by Apple a couple of years ago, we have relied on the services of University of Erlangen-Nuremberg to run our main mirror for us. This main mirror syncs all its contents from a private mirror that is run by Ryan Schmidt, which is where the buildbots put the files. This has served us well so far, and the downtime of this mirror would not be a big issue if it weren't for rsync – for all other attempts to download from a mirror, MacPorts will automatically fall back to other mirrors. We could extend the code that updates MacPorts itself and the ports tree [1,2] with retying at some of the other mirrors (although this may have undesired effects if you sync with a mirror that happens to have an older state than what you have locally), or switch to a different source, e.g. git [3], or a http server, preferrably using some diff mechanism to avoid downloading the entire thing from scratch every time. None of those have been implemented yet, because it would require quite a bit of work to get all the corner cases right (e.g. we do care about the timestamps of the synced files). If you want to help out, that would be welcome. [1] https://github.com/macports/macports-base/blob/master/src/macports1.0/selfupdate.tcl#L69-L84 [2] https://github.com/macports/macports-base/blob/master/src/macports1.0/macports.tcl#L2663-L2694 [3] https://trac.macports.org/wiki/howto/SyncingWithGit HTH, -- Clemens
