On Tue, 13 Apr 2010 20:36:49 +0200, Florian Pritz <bluewind@xssn.at> wrote:
http://karif.server-speed.net/~flo/tmp/mirrorsync.sh.txt
C&C welcome :)
Some comments here: * There is no public http master * mirrors might only have incoming rsync access (firewall) * the script tends to be complicated and relies on local data; things might gone wild here and we have no control. pure rsync is a lot more fail proof. * The repo might change without the db files being modified; e.g. isos, sources, old packages get removed etc. * if mirrors would query us every minute there is a high chance that our 12 rsync slots might always been used. * mirrors should never sync single repos but use our rsync modules instead. (this simplifies your script a lot) My idea was to just sync all db files first as I do in https://git.archlinux.de/repo-tools.git/tree/syncrepo This ensures that repos are almost always consistent. This way all the problems we regularly have when core and extra are not on sync are gone. On the client side pacman will either try the next mirror if a file cannot be found are just refuses to update at all. And if we somehow manage to check if the db sync has changed anything we might even implement your approach here without a http master and the need to locally store data. In short: we should keep it simple. -- Pierre Schmitz, https://users.archlinux.de/~pierre