4 BLACKLIST="http://mirrors.se.eu.kernel.org/ubuntu/"
5 #BLACKLIST+=" http://foo.bar"
12 test -n "$DEBUG" && echo "$@" >&2
16 # Check if url is blacklisted in this script
18 for blackurl in $BLACKLIST
20 if [ "$1" == "$blackurl" ]; then
28 # Check mirror's integrity
32 for packdir in dists/${UBUNTU_DISTRO}-updates/main/binary-amd64 \
33 dists/${UBUNTU_DISTRO}-updates/restricted/binary-amd64 \
34 dists/${UBUNTU_DISTRO}-updates/universe/binary-amd64 \
35 dists/${UBUNTU_DISTRO}-updates/multiverse/binary-amd64 \
36 dists/${UBUNTU_DISTRO}-security/main/binary-amd64 \
37 dists/${UBUNTU_DISTRO}-security/restricted/binary-amd64 \
38 dists/${UBUNTU_DISTRO}-security/universe/binary-amd64 \
39 dists/${UBUNTU_DISTRO}-security/multiverse/binary-amd64 \
40 dists/${UBUNTU_DISTRO}-proposed/main/binary-amd64 \
41 dists/${UBUNTU_DISTRO}-proposed/restricted/binary-amd64 \
42 dists/${UBUNTU_DISTRO}-proposed/universe/binary-amd64 \
43 dists/${UBUNTU_DISTRO}-proposed/multiverse/binary-amd64 \
44 dists/${UBUNTU_DISTRO}/main/binary-amd64 \
45 dists/${UBUNTU_DISTRO}/restricted/binary-amd64 \
46 dists/${UBUNTU_DISTRO}/universe/binary-amd64 \
47 dists/${UBUNTU_DISTRO}/multiverse/binary-amd64 \
48 dists/${UBUNTU_DISTRO}-backports/main/binary-amd64 \
49 dists/${UBUNTU_DISTRO}-backports/restricted/binary-amd64 \
50 dists/${UBUNTU_DISTRO}-backports/universe/binary-amd64 \
51 dists/${UBUNTU_DISTRO}-backports/multiverse/binary-amd64
53 for packfile in Release Packages.gz
55 if [ $status -ne 1 ]; then
56 curl --output /dev/null --silent --head --fail \
57 $mirror/$packdir/$packfile
59 debugmsg "$mirror: Faulty (at least missing $packdir/$packfile)"
68 if [ "$1" == "-d" ]; then
72 # Hardcode for testing purposes
75 TMPFILE=$(mktemp /tmp/mirrorsXXXXX)A
78 # Generate a list of mirrors considered as "up"
79 curl -s https://launchpad.net/ubuntu/+archivemirrors | \
80 grep -P -B8 "statusUP|statusONE|statusSIX" | \
81 grep -o -P "(f|ht)tp.*\"" | \
82 sed 's/"$//' | sort | uniq > $TMPFILE
84 # Iterate over "close" mirror, check that they are considered up
86 for url in $(curl -s http://mirrors.ubuntu.com/mirrors.txt)
88 if ! grep -q $url $TMPFILE; then
89 debugmsg "$url Faulty (detected by Ubuntu)"
90 elif blacklisted $url; then
91 debugmsg "$url blacklisted"
92 elif [ -z $BESTURL ]; then
93 if grep -q $url $TMPFILE && check_mirror $url; then
94 debugmsg "$url: OK (setting as primary URL)"
96 test -z "$DEBUG" && break
99 grep -q $url $TMPFILE && check_mirror $url && debugmsg "$url: OK"