Sorting MASTER_SITES_* values by ping time in FreeBSD
Posted Tue, 11 Mar 2008
The implementation uses asyncore in python, and uses tcp connections instead of pinging (pinging is not guaranteed to work). The output is sorted by fastest response time and in a format suitable for Makefile (and thus /etc/make.conf).
% python fastest_site.py => Checking servers for MASTER_SITE_GENTOO (77 servers) MASTER_SITE_GENTOO=\ ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/%SUBDIR%/ \ ftp://gentoo.kems.net/pub/mirrors/gentoo/%SUBDIR%/ \ ftp://files.gentoo.gr/%SUBDIR%/ \ ... <output cut> ...
I recommend that you send the output to a separate file, such as /usr/local/etc/ports_sites.conf, and add the following line to /etc/make.conf:
.include "/usr/local/etc/ports_sites.conf"Now generate the file:
% python fastest_site.py > /usr/local/etc/ports_sites.conf => Checking servers for MASTER_SITE_GENTOO (77 servers) => Checking servers for MASTER_SITE_TCLTK (11 servers) => Checking servers for MASTER_SITE_GET_E (11 servers) => Checking servers for MASTER_SITE_BERLIOS (4 servers) ...Download: fastest_sites.py