From bd47802c98f30f67b323b0796ff5d79a5e308c08 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 20 Apr 2009 19:26:05 +0200 Subject: * utils/migrate-0.8.py: Helper to check Python code for deprecated functions, attributes, etc. Has to be run from the python-apt source tree, but can be used for all Python code using python-apt. The output may not be completely correct, but false positives are better than not checking the code. --- utils/migrate-0.8.py | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100755 utils/migrate-0.8.py (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py new file mode 100755 index 00000000..b3f143b0 --- /dev/null +++ b/utils/migrate-0.8.py @@ -0,0 +1,194 @@ +#!/usr/bin/python2.6 +# +# migrate-0.8.py - Find use of deprecated methods/attributes in the code. +# +# Copyright (C) 2009 Julian Andres Klode +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA +"""migrate-0.8.py - Find all occurences of funcs./attrs. deprecated in 0.8. + +Usage: python2.6 migrate-0.8.py [options] ... + +This reads the list of all functions and attributes available only in +COMPAT_0_7 builds and checks for occurences in the given Python modules. Has +to be run from the python-apt source code directory. + +Requires python2.6 to be installed. + +Parameters: + -h Display this help + -c Colorize the matching parts in the output. +""" +import _ast +import ast +import glob +import linecache +import os +import re +import sys +import types +from collections import defaultdict +from textwrap import fill + +color=False +if sys.argv[1] in ('-c', '--color', '--colour'): + color=True + del sys.argv[1] + +if '-h' in sys.argv or '--help' in sys.argv or not sys.argv[1:]: + print __doc__.strip() + sys.exit(0) + +if os.path.dirname(__file__).endswith('utils'): + sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) + + +def do_color(string, words): + """Colorize (red) the given words in the given string.""" + if not color: + return string + for word in words: + string = re.sub('([^_]*)(%s)([^_]*)' % word, "\\1\033[31m\033[1m" + + r"\2" + "\033[0m\\3", string) + return string + + +def find_deprecated_cpp(): + """Find all the deprecated functions and attributes.""" + is_open=False + all_old = set() + for fname in glob.glob('python/*.cc'): + lines = list(open(fname, 'r')) + while lines: + line = lines.pop(0) + while lines and not ('static PyMethodDef' in line or + 'static PyGetSetDef' in line): + line = lines.pop(0) + if not lines: + break + + while lines and not ';' in line: + while lines and not 'COMPAT_0_7' in line: + line = lines.pop(0) + if lines: + line = lines.pop(0) + while lines and not '#endif' in line: + all_old.add(line.split(",")[0].strip().strip('{"')) + line = lines.pop(0) + return all_old + + +def find_deprecated_py(): + """Same as find_deprecated_cpp(), but for apt and aptsources. + + We import apt_pkg, set _COMPAT_0_7 to 0, import apt and aptsources and + create a list of all attributes. + + No we remove the imported modules, reimport them (with _COMPAT_0_7=1), + and see which functions have been removed. + """ + + modules = ('apt', 'apt.package', 'apt.cdrom', 'apt.cache', 'apt.debfile', + 'apt.progress', 'aptsources.distinfo', 'aptsources.distro', + 'aptsources.sourceslist') + + import apt_pkg + apt_pkg._COMPAT_0_7 = 0 + + empty = set(sys.modules) + new, deprecated = set(), set() + + for mname in sorted(modules): + module = __import__(mname) + + for clsname in dir(module): + cls = getattr(module, clsname) + if not isinstance(cls, types.TypeType): + new.add(clsname) + continue + new.update(dir(cls)) + + for mname in sys.modules.keys(): + if not mname in empty: + del sys.modules[mname] + + apt_pkg._COMPAT_0_7 = 1 + + for mname in sorted(modules): + module = __import__(mname) + for clsname in dir(module): + cls = getattr(module, clsname) + if not isinstance(cls, types.TypeType): + deprecated.add(clsname) + continue + deprecated.update(dir(cls)) + + + for mname in sys.modules.keys(): + if not mname in empty: + del sys.modules[mname] + + return deprecated.difference(new) + + +def find_occurences(all_old, files): + """Find all ocurrences in the given Python files.""" + for fname in files: + if fname.endswith('setup3.py') or not fname.endswith('.py'): + continue + + words = defaultdict(lambda: set()) + for i in ast.walk(ast.parse(open(fname).read())): + + if isinstance(i, _ast.ImportFrom): + for alias in i.names: + if alias.name in all_old: + words[i.lineno].add(alias.name) + if isinstance(i, _ast.Name) and i.id in all_old: + words[i.lineno].add(i.id) + + if isinstance(i, _ast.Attribute) and i.attr in all_old: + words[i.lineno].add(i.attr) + + for lineno in sorted(words): + line = do_color(linecache.getline(fname, lineno).rstrip('\n'), + words[lineno]) + print '%s:%s:%s' % (fname, lineno, line) + +# Now, let's find them in the code. + +print __doc__.split("\n")[0] +print +if color: + print fill('Information: The color is not always correct, because we ' + 'simply highlight the matched words (like grep).', 79) + print + +all_old = find_deprecated_cpp() | find_deprecated_py() + + +files = set() +for path in sys.argv[1:]: + if not os.path.exists(path): + raise ValueError('Path does not exist: %s' % path) + if os.path.isfile(path): + files.add(path) + else: + for root, dirs, files_ in os.walk(path): + for fname in files_: + files.add(os.path.normpath(os.path.join(root, fname))) + +find_occurences(all_old, sorted(files)) -- cgit v1.2.3 From 3c833358446a42f1b0e2f81bf23489f539c4b70f Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 20 Apr 2009 19:50:53 +0200 Subject: * utils/migrate-0.8.py: Handle attributes specially, reduces false positives. We now prefix attributes with ., so we do not match global variable names when checking. This should reduce the number of false positives in some applications. --- utils/migrate-0.8.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index b3f143b0..32fc58a3 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -61,6 +61,7 @@ def do_color(string, words): if not color: return string for word in words: + word = re.escape(word) string = re.sub('([^_]*)(%s)([^_]*)' % word, "\\1\033[31m\033[1m" + r"\2" + "\033[0m\\3", string) return string @@ -86,7 +87,10 @@ def find_deprecated_cpp(): if lines: line = lines.pop(0) while lines and not '#endif' in line: - all_old.add(line.split(",")[0].strip().strip('{"')) + name = line.split(",")[0].strip().strip('{"') + if 'module' in fname: + name = '.' + name + all_old.add(name) line = lines.pop(0) return all_old @@ -119,7 +123,7 @@ def find_deprecated_py(): if not isinstance(cls, types.TypeType): new.add(clsname) continue - new.update(dir(cls)) + new.update('.' + name for name in dir(cls)) # Attributes/Methods for mname in sys.modules.keys(): if not mname in empty: @@ -134,7 +138,7 @@ def find_deprecated_py(): if not isinstance(cls, types.TypeType): deprecated.add(clsname) continue - deprecated.update(dir(cls)) + deprecated.update('.' + name for name in dir(cls)) # Attributes/Methods for mname in sys.modules.keys(): @@ -160,7 +164,7 @@ def find_occurences(all_old, files): if isinstance(i, _ast.Name) and i.id in all_old: words[i.lineno].add(i.id) - if isinstance(i, _ast.Attribute) and i.attr in all_old: + if isinstance(i, _ast.Attribute) and ('.' + i.attr in all_old): words[i.lineno].add(i.attr) for lineno in sorted(words): @@ -180,6 +184,7 @@ if color: all_old = find_deprecated_cpp() | find_deprecated_py() + files = set() for path in sys.argv[1:]: if not os.path.exists(path): -- cgit v1.2.3 From 0d2eb441d867ab7c6543fdd69f2a632cd354b0a4 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Fri, 24 Apr 2009 17:18:43 +0200 Subject: * utils/migrate-0.8.py: Fix detection of functions, methods and attributes. There was a problem in find_deprecated_cpp() which added '.' to the module-level functions. Caused by a missing 'not'. --- utils/migrate-0.8.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index 32fc58a3..be74cc2f 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -88,7 +88,7 @@ def find_deprecated_cpp(): line = lines.pop(0) while lines and not '#endif' in line: name = line.split(",")[0].strip().strip('{"') - if 'module' in fname: + if not 'module' in fname: name = '.' + name all_old.add(name) line = lines.pop(0) -- cgit v1.2.3 From 9f0511895a1a6a1d82e498a609cb4f237fa9b60c Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Fri, 24 Apr 2009 18:06:30 +0200 Subject: * utils/migrate-0.8.py: Correctly import modules, improve attribute detection In order to import modules from a package, 'fromlist' may not be empty. Therefore, we pass ['*'] now. When attributes where checked, we just checked their names and did not check their classes. This meant that in e.g. Compat-API: A.alpha, B.alpha Clean-API: A.alpha The attribute 'alpha' would not be considered deprecated because it is provided by A.alpha. Now we treat an 'alpha' attribute as deprecated, if at least one class loses it. --- utils/migrate-0.8.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index be74cc2f..0986fb21 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -116,14 +116,14 @@ def find_deprecated_py(): new, deprecated = set(), set() for mname in sorted(modules): - module = __import__(mname) + module = __import__(mname, fromlist=['*']) for clsname in dir(module): cls = getattr(module, clsname) if not isinstance(cls, types.TypeType): new.add(clsname) continue - new.update('.' + name for name in dir(cls)) # Attributes/Methods + new.update(clsname + '.' + name for name in dir(cls)) # Attributes/Methods for mname in sys.modules.keys(): if not mname in empty: @@ -132,14 +132,16 @@ def find_deprecated_py(): apt_pkg._COMPAT_0_7 = 1 for mname in sorted(modules): - module = __import__(mname) + module = __import__(mname, fromlist=['*']) for clsname in dir(module): cls = getattr(module, clsname) if not isinstance(cls, types.TypeType): deprecated.add(clsname) continue - deprecated.update('.' + name for name in dir(cls)) # Attributes/Methods - + for name in dir(cls): + if not clsname + '.' + name in new: + # Attributes/Methods, which are deprecated (not in new). + deprecated.add('.' + name) for mname in sys.modules.keys(): if not mname in empty: -- cgit v1.2.3 From 5729c2d5ad92a090cea8648dcddc181a86c09132 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Fri, 24 Apr 2009 18:21:53 +0200 Subject: * utils/migrate-0.8.py: Add a warning that there may be false positives. --- utils/migrate-0.8.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index 0986fb21..99adf652 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -123,7 +123,8 @@ def find_deprecated_py(): if not isinstance(cls, types.TypeType): new.add(clsname) continue - new.update(clsname + '.' + name for name in dir(cls)) # Attributes/Methods + # Attributes/Methods + new.update(clsname + '.' + name for name in dir(cls)) for mname in sys.modules.keys(): if not mname in empty: @@ -158,7 +159,6 @@ def find_occurences(all_old, files): words = defaultdict(lambda: set()) for i in ast.walk(ast.parse(open(fname).read())): - if isinstance(i, _ast.ImportFrom): for alias in i.names: if alias.name in all_old: @@ -178,6 +178,9 @@ def find_occurences(all_old, files): print __doc__.split("\n")[0] print +print fill('Information: Please verify that the results are correct before ' + 'you modify any code, because there may be false positives.', 79) +print if color: print fill('Information: The color is not always correct, because we ' 'simply highlight the matched words (like grep).', 79) @@ -185,8 +188,6 @@ if color: all_old = find_deprecated_cpp() | find_deprecated_py() - - files = set() for path in sys.argv[1:]: if not os.path.exists(path): -- cgit v1.2.3 From d51b51bbc2c7e5d5109f0aa920d730fa6e75b6fb Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 3 Jun 2009 17:45:06 +0200 Subject: utils/migrate-0.8.py: Fix function detection. --- utils/migrate-0.8.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index 99adf652..61d3865a 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -90,6 +90,8 @@ def find_deprecated_cpp(): name = line.split(",")[0].strip().strip('{"') if not 'module' in fname: name = '.' + name + else: + all_old.add('.' + name) all_old.add(name) line = lines.pop(0) return all_old @@ -186,7 +188,12 @@ if color: 'simply highlight the matched words (like grep).', 79) print -all_old = find_deprecated_cpp() | find_deprecated_py() +all_old = find_deprecated_cpp() + +if not '-P' in sys.argv: + all_old |= find_deprecated_py() +else: + sys.argv.remove('-P') files = set() for path in sys.argv[1:]: -- cgit v1.2.3 From 2805097d61d81c92473f3b8e519230b1b23c9fd5 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Thu, 4 Jun 2009 17:33:45 +0200 Subject: utils/migrate-0.8.py: Handle constants in the apt_pkg extension. --- utils/migrate-0.8.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'utils') diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index 61d3865a..dc919e1d 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -94,6 +94,20 @@ def find_deprecated_cpp(): all_old.add('.' + name) all_old.add(name) line = lines.pop(0) + # Let's handle constants in the apt_pkg module + lines = list(open('python/apt_pkgmodule.cc')) + while lines: + while lines and not 'COMPAT_0_7' in line: + line = lines.pop(0) + if lines: + lines.pop(0) + while lines and not '#endif' in line: + if 'PyModule_Add' in line: + name = line.split(",")[1].strip().strip('"') + if name != '_COMPAT_0_7': + all_old.add('.' + name) + all_old.add(name) + line = lines.pop(0) return all_old -- cgit v1.2.3 From 93b79ada84fb8f27c2f9c124b2ea9ed87864d967 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Fri, 24 Jul 2009 19:37:48 +0200 Subject: utils/doclint.py: Add a script to check the documentation. --- utils/doclint.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 utils/doclint.py (limited to 'utils') diff --git a/utils/doclint.py b/utils/doclint.py new file mode 100644 index 00000000..a387b05f --- /dev/null +++ b/utils/doclint.py @@ -0,0 +1,77 @@ +#!/usr/bin/python +# Documentation lint. +# Copyright (C) 2009 Julian Andres Klode +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. +# +# This comes without any warranty. +"""Read the pickle file created by sphinx and check it.""" + +from __future__ import with_statement +import cPickle +import os +import sys + + +def handle(filename): + with open(filename) as fobj: + index = cPickle.load(fobj) + + objects = index['descrefs'] + modules = index['modules'] + types = index['desctypes'] + + for modname in modules: + module = __import__(modname, fromlist=["*"]) + + for modmember in objects[modname]: + if not modmember in module.__dict__: + print 'W: Unknown', modname + '.' + modmember + elif types[objects[modname][modmember][1]] == u'class': + if modname + '.' + modmember not in objects: + print 'I: No members', modname + '.' + modmember + continue + for member in objects.get(modname + '.' + modmember): + if not member in dir(module.__dict__[modmember]): + print 'W: Unknown', modname + '.' + modmember + '.' + member + + assert(types[objects[modname+"."+modmember][member][1]] in ('method', 'attribute')) + + all = getattr(module, '__all__', []) + for modmember in dir(module): + if getattr(module.__dict__[modmember], "__module__", modname) != modname: + continue + if isinstance(module.__dict__[modmember], type(module)): + continue + if modmember.startswith("_"): + continue + if not modmember in objects[modname] and (not all or modmember in all): + print 'E: Missing', modname + '.' + modmember + elif not modmember in objects[modname]: + print 'W: Missing', modname + '.' + modmember + elif types[objects[modname][modmember][1]] == u'class': + for member in dir(module.__dict__[modmember]): + if member.startswith("_"): + continue + try: + contin = False + for base in module.__dict__[modmember].__bases__: + if member in dir(base): + contin = True + if contin: + continue + except: + pass + if not member in objects.get(modname + '.' + modmember, ""): + print 'E: Missing', modname + '.' + modmember + '.' + member + + +if __name__ == '__main__': + scriptdir = os.path.dirname(__file__) + parentdir = os.path.join(scriptdir, "..") + directory = os.path.join(parentdir, "doc", "build", "pickle") + directory = os.path.normpath(directory) + sys.path.insert(0, os.path.abspath(parentdir)) + handle(os.path.join(directory, "searchindex.pickle")) -- cgit v1.2.3 From 0401747854d7fc26eb097663822e26a988cf4aa4 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sun, 7 Feb 2010 20:26:46 +0100 Subject: * utils/migrate-0.8.py: - Improve C++ parsing and add apt.progress.old to the modules, reduces false positives. --- debian/changelog | 3 +++ utils/migrate-0.8.py | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'utils') diff --git a/debian/changelog b/debian/changelog index d981c8b5..b09fb684 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,9 @@ python-apt (0.7.93.2) UNRELEASED; urgency=low - apt/utils.py: Completely ported, previous one was old-API from Ubuntu. - apt/cache.py: Use the new progress classes instead of the old ones. - apt/package.py: Various smaller issues fixed, probably caused by merge. + * utils/migrate-0.8.py: + - Improve C++ parsing and add apt.progress.old to the modules, reduces + false positives. -- Julian Andres Klode Sun, 07 Feb 2010 19:58:40 +0100 diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index dc919e1d..61059b2a 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -82,8 +82,10 @@ def find_deprecated_cpp(): break while lines and not ';' in line: - while lines and not 'COMPAT_0_7' in line: + while lines and not 'COMPAT_0_7' in line and not ';' in line: line = lines.pop(0) + if ';' in line: + continue if lines: line = lines.pop(0) while lines and not '#endif' in line: @@ -122,8 +124,8 @@ def find_deprecated_py(): """ modules = ('apt', 'apt.package', 'apt.cdrom', 'apt.cache', 'apt.debfile', - 'apt.progress', 'aptsources.distinfo', 'aptsources.distro', - 'aptsources.sourceslist') + 'apt.progress', 'apt.progress.old', 'aptsources.distinfo', + 'aptsources.distro', 'aptsources.sourceslist') import apt_pkg apt_pkg._COMPAT_0_7 = 0 -- cgit v1.2.3 From a123b39f6e3dc69c9db46dd00550fc04c1ee9399 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 27 Feb 2010 17:48:53 +0100 Subject: Ship the list of deprecated things in the apt_pkg and apt_inst modules inside the script itself, so we don't have to parse the source code anymore. --- debian/changelog | 3 ++ debian/python-apt.docs | 1 + utils/migrate-0.8.py | 131 ++++++++++++++++++++++++++++--------------------- 3 files changed, 80 insertions(+), 55 deletions(-) (limited to 'utils') diff --git a/debian/changelog b/debian/changelog index e5945ef4..9a05185d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,9 @@ python-apt (0.7.93.2) unstable; urgency=low * utils/migrate-0.8.py: - Improve C++ parsing and add apt.progress.old to the modules, reduces false positives. + - Ship the list of deprecated things in the apt_pkg and apt_inst modules + inside the script itself, so we don't have to parse the source code + anymore. * python: - Handle deprecated attributes and methods in the tp_gettattro slot, this allows us to easily warn if a deprecated function is used. diff --git a/debian/python-apt.docs b/debian/python-apt.docs index 1bfc7c1c..c4191c81 100644 --- a/debian/python-apt.docs +++ b/debian/python-apt.docs @@ -4,3 +4,4 @@ TODO apt/README.apt data/templates/README.templates build/sphinx/html/ +utils/migrate-0.8.py diff --git a/utils/migrate-0.8.py b/utils/migrate-0.8.py index 61059b2a..d0d8e9a1 100755 --- a/utils/migrate-0.8.py +++ b/utils/migrate-0.8.py @@ -44,7 +44,7 @@ from collections import defaultdict from textwrap import fill color=False -if sys.argv[1] in ('-c', '--color', '--colour'): +if len(sys.argv) > 1 and sys.argv[1] in ('-c', '--color', '--colour'): color=True del sys.argv[1] @@ -55,6 +55,75 @@ if '-h' in sys.argv or '--help' in sys.argv or not sys.argv[1:]: if os.path.dirname(__file__).endswith('utils'): sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) +deprecated_cpp_stuff = set([ + '.Add', '.AllTargets', '.Arch', '.Architecture', '.Archive', + '.ArchiveURI', '.Auto', '.Base64Encode', '.Binaries', '.BrokenCount', + '.BuildDepends', '.Bytes', '.CheckDep', '.CheckDomainList', '.Clear', + '.Close', '.Commit', '.CompType', '.Complete', '.Component', '.Config', + '.CurStateConfigFiles', '.CurStateHalfConfigured', + '.CurStateHalfInstalled', '.CurStateInstalled', '.CurStateNotInstalled', + '.CurStateUnPacked', '.CurrentState', '.CurrentVer', '.Date', + '.DeQuoteString', '.DebSize', '.DelCount', '.DepType', '.DependsCount', + '.DependsList', '.DependsListStr', '.DescURI', '.Describe', '.DestFile', + '.Dist', '.DoInstall', '.Downloadable', '.ErrorText', '.Essential', + '.Exists', '.FetchNeeded', '.FileList', '.FileName', '.FileSize', + '.Files', '.Find', '.FindB', '.FindDir', '.FindFile', '.FindFlag', + '.FindI', '.FindIndex', '.FindRaw', '.FixBroken', '.FixMissing', + '.GetAcquire', '.GetArchives', '.GetCache', '.GetCandidateVer', + '.GetCdrom', '.GetDepCache', '.GetIndexes', '.GetLock', + '.GetPackageManager', '.GetPkgAcqFile', '.GetPkgActionGroup', + '.GetPkgProblemResolver', '.GetPkgRecords', '.GetPkgSourceList', + '.GetPkgSrcRecords', '.HasPackages', '.Hash', '.Homepage', '.ID', + '.Ident', '.Important', '.Index', '.IndexFiles', '.IndexType', '.Init', + '.InitConfig', '.InitSystem', '.InstCount', '.InstState', + '.InstStateHold', '.InstStateHoldReInstReq', '.InstStateOk', + '.InstStateReInstReq', '.InstallProtect', '.InstalledSize', + '.IsAutoInstalled', '.IsGarbage', '.IsInstBroken', '.IsNowBroken', + '.IsTrusted', '.IsUpgradable', '.Items', '.Jump', '.KeepCount', + '.Label', '.LanguageCode', '.LibVersion', '.List', '.Local', + '.LongDesc', '.Lookup', '.MD5Hash', '.Maintainer', '.MarkDelete', + '.MarkInstall', '.MarkKeep', '.MarkedDelete', '.MarkedDowngrade', + '.MarkedInstall', '.MarkedKeep', '.MarkedReinstall', '.MarkedUpgrade', + '.MinimizeUpgrade', '.MyTag', '.Name', '.NotAutomatic', '.NotSource', + '.Offset', '.Open', '.Origin', '.Package', '.PackageCount', + '.PackageFileCount', '.Packages', '.ParentPkg', '.ParentVer', + '.ParseCommandLine', '.ParseDepends', '.ParseSection', + '.ParseSrcDepends', '.ParseTagFile', '.PartialPresent', + '.PkgSystemLock', '.PkgSystemUnLock', '.PriExtra', '.PriImportant', + '.PriOptional', '.PriRequired', '.PriStandard', '.Priority', + '.PriorityStr', '.Protect', '.ProvidesCount', '.ProvidesList', + '.QuoteString', '.ReadConfigDir', '.ReadConfigFile', + '.ReadConfigFileISC', '.ReadMainList', '.ReadPinFile', '.Record', + '.Remove', '.Resolve', '.ResolveByKeep', '.Restart', '.RevDependsList', + '.RewriteSection', '.RewriteSourceOrder', '.Run', '.SHA1Hash', + '.SHA256Hash', '.Section', '.SelStateDeInstall', '.SelStateHold', + '.SelStateInstall', '.SelStatePurge', '.SelStateUnknown', + '.SelectedState', '.Set', '.SetCandidateVer', '.SetReInstall', + '.ShortDesc', '.Shutdown', '.Site', '.Size', '.SizeToStr', + '.SmartTargetPkg', '.SourcePkg', '.SourceVer', '.Status', '.Step', + '.StrToTime', '.StringToBool', '.SubTree', '.TargetPkg', '.TargetVer', + '.Time', '.TimeRFC1123', '.TimeToStr', '.TotalNeeded', + '.TranslationDescription', '.URI', '.URItoFileName', '.Update', + '.Upgrade', '.UpstreamVersion', '.UsrSize', '.ValueList', + '.VerFileCount', '.VerStr', '.Version', '.VersionCompare', + '.VersionCount', '.VersionList', '.newConfiguration', 'Base64Encode', + 'CheckDep', 'CheckDomainList', 'Config', 'CurStateConfigFiles', + 'CurStateHalfConfigured', 'CurStateHalfInstalled', 'CurStateInstalled', + 'CurStateNotInstalled', 'CurStateUnPacked', 'Date', 'DeQuoteString', + 'GetAcquire', 'GetCache', 'GetCdrom', 'GetDepCache', 'GetLock', + 'GetPackageManager', 'GetPkgAcqFile', 'GetPkgActionGroup', + 'GetPkgProblemResolver', 'GetPkgRecords', 'GetPkgSourceList', + 'GetPkgSrcRecords', 'InitConfig', 'InitSystem', 'InstStateHold', + 'InstStateHoldReInstReq', 'InstStateOk', 'InstStateReInstReq', + 'LibVersion', 'ParseCommandLine', 'ParseDepends', 'ParseSection', + 'ParseSrcDepends', 'ParseTagFile', 'PkgSystemLock', 'PkgSystemUnLock', + 'PriExtra', 'PriImportant', 'PriOptional', 'PriRequired', 'PriStandard', + 'QuoteString', 'ReadConfigDir', 'ReadConfigFile', 'ReadConfigFileISC', + 'RewriteSection', 'RewriteSourceOrder', 'SelStateDeInstall', + 'SelStateHold', 'SelStateInstall', 'SelStatePurge', 'SelStateUnknown', + 'SizeToStr', 'StrToTime', 'StringToBool', 'Time', 'TimeRFC1123', + 'TimeToStr', 'URItoFileName', 'UpstreamVersion', 'VersionCompare', + 'newConfiguration']) def do_color(string, words): """Colorize (red) the given words in the given string.""" @@ -66,61 +135,13 @@ def do_color(string, words): r"\2" + "\033[0m\\3", string) return string - -def find_deprecated_cpp(): - """Find all the deprecated functions and attributes.""" - is_open=False - all_old = set() - for fname in glob.glob('python/*.cc'): - lines = list(open(fname, 'r')) - while lines: - line = lines.pop(0) - while lines and not ('static PyMethodDef' in line or - 'static PyGetSetDef' in line): - line = lines.pop(0) - if not lines: - break - - while lines and not ';' in line: - while lines and not 'COMPAT_0_7' in line and not ';' in line: - line = lines.pop(0) - if ';' in line: - continue - if lines: - line = lines.pop(0) - while lines and not '#endif' in line: - name = line.split(",")[0].strip().strip('{"') - if not 'module' in fname: - name = '.' + name - else: - all_old.add('.' + name) - all_old.add(name) - line = lines.pop(0) - # Let's handle constants in the apt_pkg module - lines = list(open('python/apt_pkgmodule.cc')) - while lines: - while lines and not 'COMPAT_0_7' in line: - line = lines.pop(0) - if lines: - lines.pop(0) - while lines and not '#endif' in line: - if 'PyModule_Add' in line: - name = line.split(",")[1].strip().strip('"') - if name != '_COMPAT_0_7': - all_old.add('.' + name) - all_old.add(name) - line = lines.pop(0) - return all_old - - def find_deprecated_py(): - """Same as find_deprecated_cpp(), but for apt and aptsources. - - We import apt_pkg, set _COMPAT_0_7 to 0, import apt and aptsources and - create a list of all attributes. + """Find all the deprecated functions and attributes. - No we remove the imported modules, reimport them (with _COMPAT_0_7=1), - and see which functions have been removed. + Import apt_pkg, set _COMPAT_0_7 to 0, import apt and aptsources and + create a list of all attributes. Then remove the imported modules, + reimport them (with _COMPAT_0_7=1), and see which functions do not + exist anymore. """ modules = ('apt', 'apt.package', 'apt.cdrom', 'apt.cache', 'apt.debfile', @@ -204,7 +225,7 @@ if color: 'simply highlight the matched words (like grep).', 79) print -all_old = find_deprecated_cpp() +all_old = deprecated_cpp_stuff if not '-P' in sys.argv: all_old |= find_deprecated_py() -- cgit v1.2.3 From 1dcd5eb6190ed6a3552cb2d491bc0272f60e613a Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 3 Mar 2010 16:44:10 +0100 Subject: * Merge with Ubuntu: - util/get_ubuntu_mirrors_from_lp.py: + rewritten to use +archivemirrors-rss and feedburner - pre-build.sh: update ubuntu mirrors on bzr-buildpackage (and also do this for Debian mirrors) - add break for packagekit-backend-apt (<= 0.4.8-0ubuntu4) --- .bzr-builddeb/default.conf | 3 ++ debian/changelog | 6 ++++ debian/control | 2 +- pre-build.sh | 11 ++++++ utils/get_ubuntu_mirrors_from_lp.py | 72 ++++++++----------------------------- 5 files changed, 35 insertions(+), 59 deletions(-) create mode 100755 pre-build.sh (limited to 'utils') diff --git a/.bzr-builddeb/default.conf b/.bzr-builddeb/default.conf index 3a08d607..c39d2e3d 100644 --- a/.bzr-builddeb/default.conf +++ b/.bzr-builddeb/default.conf @@ -1,2 +1,5 @@ [BUILDDEB] native = True + +[HOOKS] +pre-build = ./pre-build.sh diff --git a/debian/changelog b/debian/changelog index 79b3d810..0aab0c2a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,12 @@ python-apt (0.7.93.4) unstable; urgency=low * apt/progress/old.py: - Let the new method call the old one; e.g. status_update() now calls self.statusUpdate(). This improves compatibility for sub classes. + * Merge with Ubuntu: + - util/get_ubuntu_mirrors_from_lp.py: + + rewritten to use +archivemirrors-rss and feedburner + - pre-build.sh: update ubuntu mirrors on bzr-buildpackage (and also do this + for Debian mirrors) + - add break for packagekit-backend-apt (<= 0.4.8-0ubuntu4) -- Julian Andres Klode Mon, 01 Mar 2010 16:13:22 +0100 diff --git a/debian/control b/debian/control index 0c43f91e..4db6c164 100644 --- a/debian/control +++ b/debian/control @@ -24,7 +24,7 @@ Package: python-apt Architecture: any Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} Recommends: lsb-release, iso-codes, libjs-jquery -Breaks: debdelta (<< 0.28~) +Breaks: debdelta (<< 0.28~), packagekit-backend-apt (<= 0.4.8-0ubuntu4) Provides: ${python:Provides} Suggests: python-apt-dbg, python-gtk2, python-vte XB-Python-Version: ${python:Versions} diff --git a/pre-build.sh b/pre-build.sh new file mode 100755 index 00000000..6d019603 --- /dev/null +++ b/pre-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +echo "updating Ubuntu mirror list from launchpad" +if [ -n "$https_proxy" ]; then + echo "disabling https_proxy as Python's urllib doesn't support it; see #94130" + unset https_proxy +fi +utils/get_ubuntu_mirrors_from_lp.py > data/templates/Ubuntu.mirrors + +echo "updating Debian mirror list" +( cd utils; ./get_debian_mirrors.py; ) diff --git a/utils/get_ubuntu_mirrors_from_lp.py b/utils/get_ubuntu_mirrors_from_lp.py index b912f28d..3c183b6d 100755 --- a/utils/get_ubuntu_mirrors_from_lp.py +++ b/utils/get_ubuntu_mirrors_from_lp.py @@ -24,68 +24,24 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA -import urllib2 -import re +import feedparser import sys -# the list of official Ubuntu servers -mirrors = [] -# path to the local mirror list -list_path = "../data/templates/Ubuntu.mirrors" - - -try: - f = open("/usr/share/iso-codes/iso_3166.tab", "r") - lines = f.readlines() - f.close() -except: - print "Could not read country information" - sys.exit(1) +d = feedparser.parse("https://launchpad.net/ubuntu/+archivemirrors-rss") +#d = feedparser.parse(open("+archivemirrors-rss")) countries = {} -for line in lines: - parts = line.split("\t") - countries[parts[1].strip()] = parts[0].lower() - -req = urllib2.Request("https://launchpad.net/ubuntu/+archivemirrors") -print "Downloading mirrors list from Launchpad..." -try: - uri=urllib2.urlopen(req) - content = uri.read() - uri.close() -except: - print "Failed to download or extract the mirrors list!" - sys.exit(1) - -content = content.replace("\n", "") - -content_splits = re.split(r'.+?', - content)[0]) -lines=[] - - -def find(split): - country = re.search(r"(.+?)", split) - if not country: - return - if country.group(1) in countries: - lines.append("#LOC:%s" % countries[country.group(1)].upper()) - else: - lines.append("#LOC:%s" % country.group(1)) - # FIXME: currently the protocols are hardcoded: ftp http - urls = re.findall(r')' - '(((http)|(ftp)).+?)">', - split) - map(lambda u: lines.append(u[0]), urls) +for entry in d.entries: + countrycode = entry.mirror_countrycode + if not countrycode in countries: + countries[countrycode] = set() + for link in entry.links: + countries[countrycode].add(link.href) -map(find, content_splits) -print "Writing local mirrors list: %s" % list_path -list = open(list_path, "w") -for line in lines: - list.write("%s\n" % line) -list.close() -print "Done." +keys = countries.keys() +keys.sort() +for country in keys: + print "#LOC:%s" % country + print "\n".join(countries[country]) -- cgit v1.2.3 From 87634e1309c3f413be5246bfd78d0ad3765c5da6 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 8 Mar 2010 16:21:41 +0100 Subject: * utils/get_debian_mirrors.py: - Parse Mirrors.masterlist instead of the HTML web page. --- debian/changelog | 2 ++ pre-build.sh | 2 +- utils/get_debian_mirrors.py | 78 ++++++++++++--------------------------------- 3 files changed, 24 insertions(+), 58 deletions(-) (limited to 'utils') diff --git a/debian/changelog b/debian/changelog index ce6ddf7f..97c72763 100644 --- a/debian/changelog +++ b/debian/changelog @@ -26,6 +26,8 @@ python-apt (0.7.93.4) unstable; urgency=low - add break for packagekit-backend-apt (<= 0.4.8-0ubuntu4) * tests/data/aptsources/sources.list.testDistribution: - change one mirror which is not on the mirror list anymore. + * utils/get_debian_mirrors.py: + - Parse Mirrors.masterlist instead of the HTML web page. -- Julian Andres Klode Mon, 01 Mar 2010 16:13:22 +0100 diff --git a/pre-build.sh b/pre-build.sh index 6d019603..026a491e 100755 --- a/pre-build.sh +++ b/pre-build.sh @@ -8,4 +8,4 @@ fi utils/get_ubuntu_mirrors_from_lp.py > data/templates/Ubuntu.mirrors echo "updating Debian mirror list" -( cd utils; ./get_debian_mirrors.py; ) +utils/get_debian_mirrors.py > data/templates/Debian.mirrors diff --git a/utils/get_debian_mirrors.py b/utils/get_debian_mirrors.py index 9fb783bd..395c21da 100755 --- a/utils/get_debian_mirrors.py +++ b/utils/get_debian_mirrors.py @@ -1,13 +1,7 @@ -#!/usr/bin/env python +#!/usr/bin/python +# get_debian_mirrors.py - Parse Mirrors.masterlist and create a mirror list. # -# get_debian_mirrors.py -# -# Download the latest list with available mirrors from the Debian -# website and extract the hosts from the raw page -# -# Copyright (c) 2006, 2009 Free Software Foundation Europe -# -# Author: Sebastian Heinlein +# Copyright (c) 2010 Julian Andres Klode # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as @@ -23,52 +17,22 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA - +import collections import urllib2 -import re -import os -import commands -import sys - -# the list of official Ubuntu servers -mirrors = [] -# path to the local mirror list -list_path = "../data/templates/Debian.mirrors" - -req = urllib2.Request("http://www.debian.org/mirror/mirrors_full") -match = re.compile("^.*>([A-Za-z0-9-.\/_]+)<\/a>.*\n$") -match_location = re.compile('^

.*') -match_sites = re.compile('^Site: ([A-Za-z0-9-.\ \/_,]+)<\/tt>.*\n$') - - -def add_sites(line, proto, sites, mirror_type): - path = match.sub(r"\1", line) - for site in sites: - mirror_type.append("%s://%s%s\n" % (proto, site.lstrip(), path)) - - -try: - print "Downloading mirrors list from the Debian website..." - uri=urllib2.urlopen(req) - for line in uri.readlines(): - if line.startswith('

Packages over HTTP'): - add_sites(line, "http", sites, mirrors) - elif line.startswith('
Packages over FTP'): - add_sites(line, "ftp", sites, mirrors) - uri.close() -except: - print "Failed to download or to extract the mirrors list!" - sys.exit(1) - -print "Writing local mirrors list: %s" % list_path -list = open(list_path, "w") -for mirror in mirrors: - list.write("%s" % mirror) -list.close() -print "Done." +from debian_bundle import deb822 + +mirrors = collections.defaultdict(set) +masterlist = urllib2.urlopen("http://cvs.debian.org/webwml/webwml/english/" + "mirror/Mirrors.masterlist?revision=HEAD") + +for mirror in deb822.Deb822.iter_paragraphs(masterlist): + country = mirror["Country"].split(None, 1)[0] + site = mirror["Site"] + for proto in 'http', 'ftp': + if "Archive-%s" % proto in mirror: + mirrors[country].add("%s://%s%s" % (proto, site, + mirror["Archive-%s" % proto])) + +for country in sorted(mirrors): + print "#LOC:%s" % country + print "\n".join(sorted(mirrors[country])) -- cgit v1.2.3 From 5dcb4f67ca94d79f05cbd0940bbb5a7796a05bca Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 8 Mar 2010 16:33:23 +0100 Subject: * utils/get_ubuntu_mirrors_from_lp.py: - Sort the mirror list of each country. --- data/templates/Debian.mirrors | 812 +++++++++++++++++++++--------------- data/templates/Ubuntu.mirrors | 356 ++++++++-------- debian/changelog | 2 + utils/get_ubuntu_mirrors_from_lp.py | 2 +- 4 files changed, 646 insertions(+), 526 deletions(-) (limited to 'utils') diff --git a/data/templates/Debian.mirrors b/data/templates/Debian.mirrors index cfad790b..f7c24139 100644 --- a/data/templates/Debian.mirrors +++ b/data/templates/Debian.mirrors @@ -1,575 +1,693 @@ #LOC:AR -http://debian.logiclinux.com/debian/ -ftp://ftp.ccc.uba.ar/pub/linux/debian/debian/ ftp://debian.torredehanoi.org/debian/ +ftp://ftp.ccc.uba.ar/pub/linux/debian/debian/ +http://debian.logiclinux.com/debian/ +http://debian.torredehanoi.org/debian/ +http://ftp.ccc.uba.ar/pub/linux/debian/debian/ #LOC:AT -ftp://ftp.at.debian.org/debian/ -ftp://debian.sil.at/debian/ -ftp://ftp.debian.at/debian/ -ftp://gd.tuwien.ac.at/opsys/linux/debian/ -ftp://ftp.tuwien.ac.at/opsys/linux/debian/ +ftp://debian.inode.at/debian/ +ftp://debian.lagis.at/debian/ ftp://debian.mur.at/debian/ -ftp://algo.mur.at/debian/ -ftp://spider.mur.at/debian/ +ftp://ftp.at.debian.org/debian/ ftp://ftp.tu-graz.ac.at/mirror/debian/ -ftp://ftp.tugraz.at/mirror/debian/ ftp://ftp.univie.ac.at/systems/linux/debian/debian/ -ftp://debian.inode.at/debian/ -ftp://debian.lagis.at/debian/ +ftp://gd.tuwien.ac.at/opsys/linux/debian/ +http://debian.inode.at/debian/ +http://debian.lagis.at/debian/ +http://debian.mur.at/debian/ +http://ftp.at.debian.org/debian/ +http://ftp.tu-graz.ac.at/mirror/debian/ +http://ftp.univie.ac.at/systems/linux/debian/debian/ +http://gd.tuwien.ac.at/opsys/linux/debian/ #LOC:AU ftp://ftp.au.debian.org/debian/ -ftp://mirror.linux.org.au/debian/ -ftp://mirror.aarnet.edu.au/debian/ +ftp://ftp.iinet.net.au/debian/debian/ ftp://ftp.monash.edu.au/pub/linux/debian/ +ftp://ftp.netspace.net.au/pub/debian/ ftp://ftp.uwa.edu.au/debian/ +ftp://mirror.aarnet.edu.au/debian/ +ftp://mirror.cse.unsw.edu.au/debian/ ftp://mirror.eftel.com/debian/ -ftp://mirror.q-net.net.au/debian/ -ftp://mirror.datafast.net.au/debian/ -ftp://mirror.pacific.net.au/debian/ -ftp://ftp.iinet.net.au/debian/debian/ ftp://mirror.optus.net/debian/ -ftp://mirror.optusnet.com.au/debian/ -ftp://mirror.cse.unsw.edu.au/debian/ -ftp://ftp.netspace.net.au/pub/debian/ -ftp://mirror.waia.asn.au/debian/ +ftp://mirror.pacific.net.au/debian/ ftp://mirror.transact.net.au/debian/ +ftp://mirror.waia.asn.au/debian/ +http://ftp.au.debian.org/debian/ +http://ftp.iinet.net.au/debian/debian/ +http://ftp.monash.edu.au/pub/linux/debian/ +http://ftp.netspace.net.au/pub/debian/ +http://ftp.uwa.edu.au/debian/ +http://mirror.aarnet.edu.au/debian/ +http://mirror.cse.unsw.edu.au/debian/ +http://mirror.eftel.com/debian/ +http://mirror.optus.net/debian/ +http://mirror.pacific.net.au/debian/ +http://mirror.transact.net.au/debian/ +http://mirror.waia.asn.au/debian/ #LOC:BA ftp://ftp.ba.debian.org/debian/ -ftp://mirror.debian.com.ba/debian/ +http://ftp.ba.debian.org/debian/ #LOC:BE ftp://ftp.be.debian.org/debian/ -ftp://mirror.be.gbxs.net/debian/ -ftp://ftp.easynet.be/debian/ ftp://ftp.belnet.be/debian/ ftp://ftp.debian.skynet.be/debian/ +ftp://ftp.easynet.be/debian/ +http://ftp.be.debian.org/debian/ +http://ftp.belnet.be/debian/ +http://ftp.debian.skynet.be/ftp/debian/ +http://ftp.easynet.be/ftp/debian/ #LOC:BG -ftp://ftp.bg.debian.org/debian/ -ftp://debian.spnet.net/debian/ +ftp://debian.ipacct.com/debian/ ftp://debian.ludost.net/debian/ -ftp://marla.ludost.net/debian/ -ftp://ftp.uni-sofia.bg/debian/ -ftp://debian.telecoms.bg/debian/ ftp://debian.mnet.bg/debian/ ftp://debian.networx-bg.com/debian/ -ftp://debian.ipacct.com/debian/ +ftp://debian.telecoms.bg/debian/ +ftp://ftp.bg.debian.org/debian/ +ftp://ftp.uni-sofia.bg/debian/ +http://debian.ipacct.com/debian/ +http://debian.ludost.net/debian/ +http://debian.mnet.bg/debian/ +http://debian.networx-bg.com/debian/ +http://debian.telecoms.bg/debian/ +http://ftp.bg.debian.org/debian/ +http://ftp.uni-sofia.bg/debian/ #LOC:BR -ftp://ftp.br.debian.org/debian/ -ftp://debian.c3sl.ufpr.br/debian/ ftp://debian.das.ufsc.br/pub/debian/ -http://download.unesp.br/linux/debian/ -http://sft.if.usp.br/debian/ -http://fma.if.usp.br/debian/ -ftp://linorg.usp.br/debian/ -http://linux.iq.usp.br/debian/ -http://torio.iq.usp.br/debian/ -ftp://ftp.pucpr.br/debian/ ftp://debian.las.ic.unicamp.br/debian/ -http://debian.pop-sc.rnp.br/debian/ -http://mirror.pop-sc.rnp.br/debian/ ftp://debs.ifsul.edu.br/debian/ +ftp://ftp.br.debian.org/debian/ +ftp://ftp.pucpr.br/debian/ +ftp://linorg.usp.br/debian/ +http://debian.las.ic.unicamp.br/debian/ +http://debian.pop-sc.rnp.br/debian/ +http://debs.ifsul.edu.br/debian/ +http://download.unesp.br/linux/debian/ +http://ftp.br.debian.org/debian/ +http://linorg.usp.br/debian/ +http://linux.iq.usp.br/debian/ +http://sft.if.usp.br/debian/ #LOC:BY -http://linux.org.by/debian/ ftp://ftp.mgts.by/debian/ +http://ftp.mgts.by/debian/ +http://linux.org.by/debian/ #LOC:CA +ftp://debian.mirror.iweb.ca/debian/ +ftp://debian.mirror.rafal.ca/debian/ +ftp://debian.savoirfairelinux.net/debian/ ftp://ftp.ca.debian.org/debian/ -http://debian.yorku.ca/debian/ ftp://ftp3.nrc.ca/debian/ -ftp://ftp3.ca.debian.org/debian/ ftp://mirror.cpsc.ucalgary.ca/debian/ -http://mirror.peer1.net/debian/ -ftp://debian.mirror.rafal.ca/debian/ -ftp://mirror.mountaincable.net/debian/ -ftp://ftp4.ca.debian.org/debian/ -ftp://debian.savoirfairelinux.net/debian/ -ftp://gpl.savoirfairelinux.net/debian/ -ftp://debian.mirror.iweb.ca/debian/ -ftp://ftp2.ca.debian.org/debian/ ftp://mirror.csclub.uwaterloo.ca/debian/ ftp://mirror.its.dal.ca/debian/ +http://debian.mirror.iweb.ca/debian/ +http://debian.mirror.rafal.ca/debian/ +http://debian.savoirfairelinux.net/debian/ +http://debian.yorku.ca/debian/ +http://ftp.ca.debian.org/debian/ +http://ftp3.nrc.ca/debian/ +http://mirror.cpsc.ucalgary.ca/mirror/debian.org/debian/ +http://mirror.csclub.uwaterloo.ca/debian/ +http://mirror.its.dal.ca/debian/ +http://mirror.peer1.net/debian/ #LOC:CH ftp://ftp.ch.debian.org/debian/ -ftp://debian.ethz.ch/debian/ ftp://mirror.switch.ch/mirror/debian/ http://debian.csg.uzh.ch/debian/ +http://ftp.ch.debian.org/debian/ +http://mirror.switch.ch/ftp/mirror/debian/ #LOC:CL ftp://ftp.cl.debian.org/debian/ -ftp://debian.netlinux.cl/debian/ -http://debian.ubiobio.cl/debian/ http://debian.ciencias.uchile.cl/debian/ +http://debian.ubiobio.cl/debian/ http://debian.utalca.cl/debian/ +http://ftp.cl.debian.org/debian/ #LOC:CN ftp://mirrors.geekbone.org/debian/ ftp://www.anheng.com.cn/debian/ -ftp://debian.bjlx.org.cn/debian/ -ftp://www.watertest.com.cn/debian/ -ftp://www.anheng.com.cn/debian/ +http://mirrors.geekbone.org/debian/ +http://www.anheng.com.cn/debian/ #LOC:CR ftp://mirrors.ucr.ac.cr/debian/ -ftp://espejos.ucr.ac.cr/debian/ +http://mirrors.ucr.ac.cr/debian/ #LOC:CZ -ftp://ftp.cz.debian.org/debian/ -ftp://ftp.debian.cz/debian/ -ftp://www.debian.cz/debian/ -ftp://debian.sh.cvut.cz/debian/ -ftp://ftp.sh.cvut.cz/debian/ -ftp://ftp.zcu.cz/mirrors/debian/ -ftp://debian.mirror.web4u.cz/ -ftp://ftp.cvut.cz/debian/ -ftp://ftp.fs.cvut.cz/debian/ ftp://debian.ignum.cz/debian/ -ftp://ucho.ignum.cz/debian/ ftp://debian.mirror.dkm.cz/debian/ +ftp://debian.mirror.web4u.cz/ +ftp://debian.sh.cvut.cz/debian/ ftp://debian.superhosting.cz/debian/ +ftp://ftp.cvut.cz/debian/ +ftp://ftp.cz.debian.org/debian/ +ftp://ftp.zcu.cz/mirrors/debian/ +http://debian.ignum.cz/debian/ +http://debian.mirror.dkm.cz/debian/ +http://debian.mirror.web4u.cz/ +http://debian.sh.cvut.cz/debian/ +http://debian.superhosting.cz/debian/ +http://ftp.cvut.cz/debian/ +http://ftp.cz.debian.org/debian/ +http://ftp.zcu.cz/mirrors/debian/ #LOC:DE -ftp://ftp.de.debian.org/debian/ -ftp://ftp1.de.debian.org/debian/ -ftp://debian.inf.tu-dresden.de/debian/ -ftp://ftp2.de.debian.org/debian/ -ftp://ftp.rfc822.org/debian/ -ftp://source.rfc822.org/debian/ -ftp://ftp.tu-clausthal.de/pub/linux/debian/ -ftp://pegasus.rz.tu-clausthal.de/pub/linux/debian/ +ftp://artfiles.org/debian/ +ftp://debian.cruisix.net/debian/ +ftp://debian.morphium.info/debian/ +ftp://debian.netcologne.de/debian/ +ftp://debian.tu-bs.de/debian/ ftp://debian.uni-duisburg-essen.de/debian/ -ftp://ftp.freenet.de/debian/ -ftp://ftp.informatik.rwth-aachen.de/pub/Linux/debian/ -ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/debian/ ftp://ftp-stud.fht-esslingen.de/debian/ -ftp://ftp.stw-bonn.de/debian/ +ftp://ftp.de.debian.org/debian/ +ftp://ftp.freenet.de/debian/ ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian/ -ftp://Hefe.ZEDAT.FU-Berlin.DE/pub/unix/linux/mirrors/debian/ -ftp://debian.tu-bs.de/debian/ -ftp://ftp.uni-koeln.de/debian/ +ftp://ftp.hosteurope.de/pub/linux/debian/ +ftp://ftp.informatik.hu-berlin.de/pub/Linux/debian/ +ftp://ftp.informatik.rwth-aachen.de/pub/Linux/debian/ +ftp://ftp.informatik.uni-frankfurt.de/pub/Mirrors/debian.org/debian/ ftp://ftp.mpi-sb.mpg.de/pub/linux/debian/ +ftp://ftp.plusline.de/pub/debian/ +ftp://ftp.rrzn.uni-hannover.de/debian/debian/ +ftp://ftp.stw-bonn.de/debian/ ftp://ftp.tu-chemnitz.de/pub/linux/debian/debian/ -ftp://ftp.uni-kl.de/debian/ +ftp://ftp.tu-clausthal.de/pub/linux/debian/ ftp://ftp.uni-bayreuth.de/debian/ -ftp://btr0x2.rz.uni-bayreuth.de/debian/ -ftp://ftp.informatik.hu-berlin.de/pub/Linux/debian/ +ftp://ftp.uni-kl.de/debian/ +ftp://ftp.uni-koeln.de/debian/ +ftp://ftp2.de.debian.org/debian/ ftp://ftp5.gwdg.de/pub/linux/debian/debian/ -ftp://ftp.hosteurope.de/pub/linux/debian/ -ftp://ftp.informatik.uni-frankfurt.de/pub/Mirrors/debian.org/debian/ -ftp://ftp.cs.uni-frankfurt.de/pub/Mirrors/debian.org/debian/ -ftp://debian.netcologne.de/debian/ -ftp://artfiles.org/debian/ -http://debian.intergenia.de/debian/ -http://debian.server4you.de/debian/ -http://debian.vserver.de/debian/ -http://debian.plusserver.de/debian/ -ftp://debian.cruisix.net/debian/ -ftp://ftp.rrzn.uni-hannover.de/debian/debian/ -http://debian.charite.de/debian/ -ftp://ftp.plusline.de/pub/debian/ ftp://mirror.ayous.org/debian/ -ftp://debian.morphium.info/debian/ ftp://mirror.giantix-server.de/debian/ +http://artfiles.org/debian/ +http://debian.charite.de/debian/ +http://debian.cruisix.net/debian/ +http://debian.intergenia.de/debian/ +http://debian.morphium.info/debian/ +http://debian.netcologne.de/debian/ +http://debian.tu-bs.de/debian/ +http://debian.uni-duisburg-essen.de/debian/ +http://ftp-stud.fht-esslingen.de/debian/ +http://ftp.de.debian.org/debian/ +http://ftp.freenet.de/debian/ +http://ftp.hosteurope.de/pub/linux/debian/ +http://ftp.informatik.rwth-aachen.de/ftp/pub/Linux/debian/ +http://ftp.informatik.uni-frankfurt.de/debian/ +http://ftp.plusline.de/debian/ +http://ftp.stw-bonn.de/debian/ +http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ +http://ftp.tu-clausthal.de/pub/linux/debian/ +http://ftp.uni-bayreuth.de/debian/ +http://ftp.uni-kl.de/debian/ +http://ftp.uni-koeln.de/debian/ +http://ftp2.de.debian.org/debian/ +http://ftp5.gwdg.de/pub/linux/debian/debian/ +http://mirror.ayous.org/debian/ +http://mirror.giantix-server.de/debian/ #LOC:DK ftp://ftp.dk.debian.org/debian/ -ftp://mirrors.dotsrc.org/debian/ ftp://mirrors.telianet.dk/debian/ -ftp://mirrors.dk.telia.net/debian/ +http://ftp.dk.debian.org/debian/ +http://mirrors.telianet.dk/debian/ #LOC:EE ftp://ftp.ee.debian.org/debian/ -ftp://ftp.aso.ee/debian/ -ftp://ftp.ria.ee/debian/ +http://ftp.ee.debian.org/debian/ #LOC:ES -ftp://ftp.es.debian.org/debian/ -ftp://ftp.gul.uc3m.es/debian/ -ftp://ftp.gul.es/debian/ -ftp://ftp.cica.es/debian/ +ftp://debian.grn.cat/debian/ ftp://ftp.caliu.cat/debian/ +ftp://ftp.cica.es/debian/ +ftp://ftp.es.debian.org/debian/ ftp://ftp.gva.es/mirror/debian/ -ftp://frigga.gva.es/mirror/debian/ ftp://ftp.udc.es/debian/ -ftp://debian.grn.cat/debian/ -ftp://ftp.grn.es/debian/ -ftp://ftp.grn.cat/debian/ +http://debian.grn.cat/debian/ +http://ftp.caliu.cat/debian/ +http://ftp.cica.es/debian/ +http://ftp.es.debian.org/debian/ +http://ftp.gva.es/mirror/debian/ +http://ftp.udc.es/debian/ #LOC:FI ftp://ftp.fi.debian.org/debian/ -ftp://trumpetti.atm.tut.fi/debian/ ftp://ftp.funet.fi/pub/linux/mirrors/debian/ ftp://ftp.jyu.fi/debian/ -ftp://lennon.cc.jyu.fi/debian/ ftp://ftp.seclan.com/debian/ +http://ftp.fi.debian.org/debian/ +http://ftp.funet.fi/pub/linux/mirrors/debian/ +http://ftp.jyu.fi/debian/ +http://ftp.seclan.com/debian/ #LOC:FR +ftp://debian.advalem.net/debian/ +ftp://debian.cict.fr/debian/ +ftp://debian.ens-cachan.fr/debian/ +ftp://debian.med.univ-tours.fr/debian/ +ftp://debian.mines.inpl-nancy.fr/debian/ +ftp://debian.mirror.inra.fr/debian/ +ftp://debian.mirrors.easynet.fr/debian/ +ftp://debian.polytech-lille.fr/debian/ +ftp://debian.revolsys.fr/debian/ +ftp://debian.univ-reims.fr/debian/ +ftp://ftp.crihan.fr/debian/ ftp://ftp.fr.debian.org/debian/ -ftp://debian.proxad.net/debian/ -ftp://ftpmirror.proxad.net/debian/ -ftp://ftp2.fr.debian.org/debian/ -ftp://ftp.oleane.net/debian/ ftp://ftp.iut-bm.univ-fcomte.fr/debian/ -ftp://debian.iut-bm.univ-fcomte.fr/debian/ -ftp://debian.polytech-lille.fr/debian/ -ftp://ftp.eudil.fr/debian/ -ftp://ftp.proxad.net/mirrors/ftp.debian.org/ -ftp://ftp.free.fr/mirrors/ftp.debian.org/ -ftp://ftp.online.fr/mirrors/ftp.debian.org/ -ftp://ftp.proxad.fr/mirrors/ftp.debian.org/ ftp://ftp.lip6.fr/pub/linux/distributions/debian/ -ftp://debian.ens-cachan.fr/debian/ -ftp://ftp.ens-cachan.fr/debian/ +ftp://ftp.nerim.net/debian/ +ftp://ftp.proxad.net/mirrors/ftp.debian.org/ ftp://ftp.u-picardie.fr/mirror/debian/ -ftp://debian.mirrors.easynet.fr/debian/ -ftp://tengu.easynet.fr/debian/ ftp://ftp.u-strasbg.fr/debian/ -ftp://debian.cict.fr/debian/ +ftp://ftp.univ-nantes.fr/debian/ +ftp://ftp.univ-pau.fr/pub/mirrors/debian/ +ftp://ftp2.fr.debian.org/debian/ ftp://mir1.ovh.net/debian/ -http://mir2.ovh.net/debian/ -http://mirror.ovh.net/debian/ -ftp://ftp.nerim.net/debian/ -ftp://ftp.crihan.fr/debian/ -ftp://debian.mines.inpl-nancy.fr/debian/ -ftp://ftp.mines.inpl-nancy.fr/debian/ -ftp://webb.ens-cachan.fr/debian/ -ftp://debian.ens-cachan.fr/debian/ ftp://mirrors.ircam.fr/pub/debian/ -ftp://debian.mirror.inra.fr/debian/ -ftp://debian.med.univ-tours.fr/debian/ -ftp://ftp.univ-pau.fr/pub/mirrors/debian/ -ftp://ftp.univ-nantes.fr/debian/ -ftp://vacuum.univ-nantes.fr/debian/ +ftp://webb.ens-cachan.fr/debian/ +http://debian.advalem.net/debian/ +http://debian.cict.fr/debian/ +http://debian.ens-cachan.fr/ftp/debian/ +http://debian.med.univ-tours.fr/debian/ +http://debian.mines.inpl-nancy.fr/debian/ +http://debian.mirror.inra.fr/debian/ +http://debian.mirrors.easynet.fr/ +http://debian.polytech-lille.fr/debian/ +http://debian.revolsys.fr/debian/ +http://debian.univ-reims.fr/debian/ +http://ftp.crihan.fr/debian/ +http://ftp.fr.debian.org/debian/ +http://ftp.iut-bm.univ-fcomte.fr/debian/ +http://ftp.lip6.fr/pub/linux/distributions/debian/ +http://ftp.nerim.net/debian/ +http://ftp.u-picardie.fr/mirror/debian/ +http://ftp.u-strasbg.fr/debian/ +http://ftp.univ-pau.fr/linux/mirrors/debian/ +http://ftp2.fr.debian.org/debian/ +http://mir1.ovh.net/debian/ +http://mir2.ovh.net/debian/ http://mirrors.compuscene.org/debian/ -http://ns34892.ovh.net/debian/ -ftp://debian.revolsys.fr/debian/ -ftp://debian.univ-reims.fr/debian/ -ftp://debian.advalem.net/debian/ +http://mirrors.ircam.fr/pub/debian/ +http://webb.ens-cachan.fr/debian/ #LOC:GB -ftp://ftp.uk.debian.org/debian/ -ftp://free.hands.com/debian/ -ftp://debian.hands.com/debian/ -ftp://open.hands.com/debian/ -http://debian.man.ac.uk/debian/ -http://www.mirrorservice.org/sites/ftp.debian.org/debian/ ftp://ftp.mirrorservice.org/sites/ftp.debian.org/debian/ ftp://ftp.ticklers.org/debian/ -ftp://rib.ticklers.org/debian/ +ftp://ftp.uk.debian.org/debian/ +ftp://mirror.ox.ac.uk/debian/ ftp://mirror.positive-internet.com/debian/ +ftp://mirror.sov.uk.goscomb.net/debian/ +ftp://mirrors.melbourne.co.uk/debian/ ftp://the.earth.li/debian/ ftp://ukdebian.mirror.anlx.net/debian/ -ftp://mirror.ox.ac.uk/debian/ -ftp://mirror.sov.uk.goscomb.net/debian/ +http://debian.man.ac.uk/debian/ +http://ftp.ticklers.org/debian/ +http://ftp.uk.debian.org/debian/ +http://mirror.ox.ac.uk/debian/ +http://mirror.positive-internet.com/debian/ +http://mirror.sov.uk.goscomb.net/debian/ +http://mirrors.melbourne.co.uk/debian/ +http://the.earth.li/debian/ +http://ukdebian.mirror.anlx.net/debian/ +http://www.mirrorservice.org/sites/ftp.debian.org/debian/ #LOC:GR -ftp://ftp.gr.debian.org/debian/ -ftp://ftp.ntua.gr/debian/ ftp://debian.otenet.gr/pub/linux/debian/ ftp://ftp.cc.uoc.gr/mirrors/linux/debian/ +ftp://ftp.gr.debian.org/debian/ ftp://ftp.uoi.gr/debian/ +http://debian.otenet.gr/debian/ +http://ftp.cc.uoc.gr/mirrors/linux/debian/ +http://ftp.gr.debian.org/debian/ +http://ftp.uoi.gr/debian/ #LOC:HK ftp://ftp.hk.debian.org/debian/ +http://ftp.hk.debian.org/debian/ #LOC:HR +ftp://debian.iskon.hr/debian/ +ftp://ftp.carnet.hr/debian/ ftp://ftp.hr.debian.org/debian/ -ftp://debian.carnet.hr/debian/ ftp://ftp.irb.hr/debian/ -ftp://ftp.carnet.hr/debian/ -ftp://debian.iskon.hr/debian/ +http://debian.iskon.hr/debian/ +http://ftp.carnet.hr/debian/ +http://ftp.hr.debian.org/debian/ +http://ftp.irb.hr/debian/ #LOC:HU -ftp://ftp.hu.debian.org/debian/ -ftp://ftp.fsn.hu/debian/ -ftp://ftp.kfki.hu/pub/linux/debian/ -ftp://ftp.bme.hu/debian/ ftp://debian.mirrors.crysys.hu/debian/ ftp://debian.sth.sze.hu/debian/ -ftp://mirrors.sth.sze.hu/debian/ +ftp://ftp.bme.hu/debian/ +ftp://ftp.hu.debian.org/debian/ +ftp://ftp.kfki.hu/pub/linux/debian/ +http://debian.mirrors.crysys.hu/debian/ +http://debian.sth.sze.hu/debian/ +http://ftp.bme.hu/debian/ +http://ftp.hu.debian.org/debian/ +http://ftp.kfki.hu/linux/debian/ #LOC:ID ftp://kebo.vlsm.org/debian/ -ftp://surabaya.vlsm.org/debian/ -ftp://katmai.its.ac.id/debian/ ftp://mirror.unej.ac.id/debian/ +http://kebo.vlsm.org/debian/ +http://mirror.unej.ac.id/debian/ #LOC:IE -ftp://ftp.ie.debian.org/debian/ -ftp://debian.heanet.ie/debian/ -ftp://canyonero.heanet.ie/debian/ ftp://ftp.esat.net/pub/linux/debian/ +ftp://ftp.ie.debian.org/debian/ +http://ftp.esat.net/pub/linux/debian/ +http://ftp.ie.debian.org/debian/ #LOC:IL http://debian.co.il/debian/ -http://debian.interhost.co.il/debian/ http://mirror.isoc.org.il/pub/debian/ #LOC:IN ftp://ftp.iitm.ac.in/debian/ ftp://mirror.cse.iitk.ac.in/debian/ +http://ftp.iitm.ac.in/debian/ +http://mirror.cse.iitk.ac.in/debian/ #LOC:IS ftp://ftp.is.debian.org/debian/ -ftp://ftp.rhnet.is/debian/ +http://ftp.is.debian.org/debian/ #LOC:IT +ftp://debian.bononia.it/debian/ +ftp://debian.dynamica.it/debian/ +ftp://debian.fastbull.org/debian/ +ftp://debian.fastweb.it/debian/ +ftp://freedom.dicea.unifi.it/pub/linux/debian/ ftp://ftp.it.debian.org/debian/ -ftp://ftp.bofh.it/debian/ -ftp://vlad-tepes.bofh.it/debian/ ftp://giano.com.dist.unige.it/debian/ -ftp://freedom.dicea.unifi.it/pub/linux/debian/ ftp://mi.mirror.garr.it/mirrors/debian/ -ftp://debian.fastweb.it/debian/ -ftp://debian.fastbull.org/debian/ -ftp://debian.dynamica.it/debian/ +http://debian.bononia.it/debian/ +http://debian.dynamica.it/debian/ +http://debian.fastbull.org/debian/ +http://debian.fastweb.it/debian/ +http://freedom.dicea.unifi.it/ftp/pub/linux/debian/ +http://ftp.it.debian.org/debian/ +http://giano.com.dist.unige.it/debian/ +http://mi.mirror.garr.it/mirrors/debian/ http://mirror.units.it/debian/ -ftp://debian.bononia.it/debian/ #LOC:JP -ftp://ftp2.jp.debian.org/debian/ -ftp://ftp.debian.or.jp/debian/ -ftp://http.debian.or.jp/debian/ -ftp://ftp.jp.debian.org/debian/ -ftp://cdn.debian.or.jp/debian/ -ftp://ftp.nara.wide.ad.jp/debian/ -ftp://ftp.aist-nara.ac.jp/debian/ -ftp://ftp.dti.ad.jp/pub/Linux/debian/ +ftp://dennou-h.gfd-dennou.org/debian/ ftp://dennou-k.gfd-dennou.org/debian/ -ftp://dennou-k.gaia.h.kyoto-u.ac.jp/debian/ ftp://dennou-q.gfd-dennou.org/debian/ -ftp://dennou-q.geo.kyushu-u.ac.jp/debian/ -ftp://ftp.yz.yamagata-u.ac.jp/debian/ -ftp://linux.yz.yamagata-u.ac.jp/debian/ -ftp://ftp.riken.jp/Linux/debian/debian/ -ftp://ftp.riken.go.jp/Linux/debian/debian/ +ftp://ftp.dti.ad.jp/pub/Linux/debian/ ftp://ftp.jaist.ac.jp/pub/Linux/Debian/ +ftp://ftp.jp.debian.org/debian/ +ftp://ftp.nara.wide.ad.jp/debian/ +ftp://ftp.riken.jp/Linux/debian/debian/ +ftp://ftp.yz.yamagata-u.ac.jp/debian/ +ftp://ftp2.jp.debian.org/debian/ +http://dennou-h.gfd-dennou.org/debian/ +http://dennou-k.gfd-dennou.org/debian/ +http://dennou-q.gfd-dennou.org/debian/ +http://ftp.dti.ad.jp/pub/Linux/debian/ +http://ftp.jaist.ac.jp/pub/Linux/Debian/ +http://ftp.jp.debian.org/debian/ +http://ftp.nara.wide.ad.jp/debian/ +http://ftp.riken.jp/Linux/debian/debian/ +http://ftp.yz.yamagata-u.ac.jp/debian/ +http://ftp2.jp.debian.org/debian/ http://www.cohsoft.com/debian/ -ftp://dennou-h.gfd-dennou.org/debian/ -ftp://dennou-h.ees.hokudai.ac.jp/debian/ #LOC:KR -ftp://ftp.kr.debian.org/debian/ -ftp://ftp.kaist.ac.kr/debian/ ftp://ftp.daum.net/debian/ +ftp://ftp.kr.debian.org/debian/ +http://ftp.daum.net/debian/ +http://ftp.kr.debian.org/debian/ #LOC:KZ ftp://mirror.neolabs.kz/debian/ +http://mirror.neolabs.kz/debian/ #LOC:LT -ftp://ftp.litnet.lt/debian/ -ftp://debina.ktu.lt/debian/ ftp://debian.balt.net/debian/ +ftp://ftp.litnet.lt/debian/ +http://debian.balt.net/debian/ +http://ftp.litnet.lt/debian/ #LOC:LU ftp://debian.mirror.root.lu/debian/ +http://debian.mirror.root.lu/debian/ #LOC:LV -ftp://koyanet.lv/debian/ -ftp://ftp.koyanet.lv/debian/ ftp://debian.linux.edu.lv/debian/ +ftp://koyanet.lv/debian/ +http://debian.linux.edu.lv/debian/ +http://koyanet.lv/debian/ #LOC:MD ftp://debian.md/debian/ +http://debian.md/debian/ #LOC:MN ftp://mirror.debian.mn/debian/ +http://mirror.debian.mn/debian/ #LOC:MT http://debian.res.um.edu.mt/debian/ #LOC:MX ftp://ftp.mx.debian.org/debian/ -ftp://debian.unam.mx/debian/ -ftp://nisamox.fciencias.unam.mx/debian/ ftp://mmc.geofisica.unam.mx/debian/ -#LOC:MY +http://ftp.mx.debian.org/debian/ +http://mmc.geofisica.unam.mx/debian/ #LOC:NC ftp://ftp.nc.debian.org/debian/ -ftp://debian.nautile.nc/debian/ +http://ftp.nc.debian.org/debian/ #LOC:NI http://debian.uni.edu.ni/debian/ #LOC:NL +ftp://debian.mirror.cambrium.nl/debian/ +ftp://ftp.debian.nl/debian/ ftp://ftp.nl.debian.org/debian/ -ftp://ftp.snt.utwente.nl/debian/ ftp://ftp.nluug.nl/pub/os/Linux/distr/debian/ -ftp://mirrors.nl.kernel.org/debian/ ftp://ftp.surfnet.nl/pub/os/Linux/distr/debian/ -ftp://ftp.debian.nl/debian/ -ftp://download.xs4all.nl/debian/ ftp://ftp.tiscali.nl/pub/mirrors/debian/ -ftp://debian.mirror.cambrium.nl/debian/ +ftp://mirrors.nl.kernel.org/debian/ +http://debian.mirror.cambrium.nl/debian/ +http://ftp.debian.nl/debian/ +http://ftp.nl.debian.org/debian/ +http://ftp.nluug.nl/pub/os/Linux/distr/debian/ +http://ftp.surfnet.nl/os/Linux/distr/debian/ +http://ftp.tiscali.nl/debian/ +http://mirrors.nl.kernel.org/debian/ #LOC:NO ftp://ftp.no.debian.org/debian/ -ftp://ftp.uninett.no/debian/ -ftp://ftp.uio.no/debian/ +http://ftp.no.debian.org/debian/ #LOC:NZ ftp://ftp.nz.debian.org/debian/ -ftp://ftp.citylink.co.nz/debian/ +http://ftp.nz.debian.org/debian/ #LOC:PF ftp://repository.linux.pf/debian/ +http://repository.linux.pf/debian/ #LOC:PL -ftp://ftp.pl.debian.org/debian/ -ftp://ftp.task.gda.pl/debian/ ftp://ftp.icm.edu.pl/pub/Linux/debian/ -ftp://sunsite.icm.edu.pl/pub/Linux/debian/ +ftp://ftp.man.poznan.pl/pub/linux/debian/debian/ ftp://ftp.man.szczecin.pl/pub/Linux/debian/ -ftp://rubycon.man.szczecin.pl/pub/Linux/debian/ -ftp://ftp.vectranet.pl/debian/ +ftp://ftp.pl.debian.org/debian/ ftp://ftp.pwr.wroc.pl/debian/ -ftp://ftp.man.poznan.pl/pub/linux/debian/debian/ +ftp://ftp.vectranet.pl/debian/ ftp://piotrkosoft.net/pub/mirrors/debian/ -ftp://ftp.man.oswiecim.pl/pub/mirrors/debian/ +http://ftp.icm.edu.pl/pub/Linux/debian/ +http://ftp.man.poznan.pl/pub/linux/debian/debian/ +http://ftp.pl.debian.org/debian/ +http://ftp.pwr.wroc.pl/debian/ +http://ftp.vectranet.pl/debian/ +http://piotrkosoft.net/pub/mirrors/debian/ #LOC:PT -ftp://ftp.pt.debian.org/debian/ -ftp://ftp.uevora.pt/debian/ -ftp://ftp.eq.uc.pt/pub/software/Linux/debian/ -ftp://debian.ua.pt/debian/ -ftp://ftp.ua.pt/debian/ -ftp://mirrors.nfsi.pt/debian/ -ftp://mirrors.fe.up.pt/debian/ ftp://cesium.di.uminho.pt/pub/debian/ ftp://debian.netvisao.pt/debian/ -http://debian.dcc.fc.up.pt/debian/ +ftp://debian.ua.pt/debian/ +ftp://ftp.eq.uc.pt/pub/software/Linux/debian/ +ftp://ftp.pt.debian.org/debian/ ftp://mirror.sim.ul.pt/debian/ +ftp://mirrors.fe.up.pt/debian/ +ftp://mirrors.nfsi.pt/debian/ +http://cesium.di.uminho.pt/pub/debian/ +http://debian.dcc.fc.up.pt/debian/ +http://debian.netvisao.pt/ +http://debian.ua.pt/debian/ +http://ftp.eq.uc.pt/software/Linux/debian/ +http://ftp.pt.debian.org/debian/ +http://mirror.sim.ul.pt/debian/ +http://mirrors.fe.up.pt/debian/ +http://mirrors.nfsi.pt/debian/ #LOC:RO -ftp://ftp.ro.debian.org/debian/ -ftp://ftp.iasi.roedu.net/debian/ ftp://ftp.lug.ro/debian/ +ftp://ftp.ro.debian.org/debian/ +http://ftp.lug.ro/debian/ +http://ftp.ro.debian.org/debian/ #LOC:RU -ftp://ftp.ru.debian.org/debian/ -ftp://ftp.chg.ru/debian/ ftp://debian.nsu.ru/debian/ -ftp://ftp.psn.ru/debian/ -ftp://server.psn.ru/debian/ ftp://ftp.corbina.net/debian/ -ftp://mirror.yandex.ru/debian/ -ftp://ftp.yandex.ru/debian/ ftp://ftp.debian.chuvsu.ru/debian/ -ftp://debian.chuvsu.ru/debian/ +ftp://ftp.psn.ru/debian/ +ftp://ftp.ru.debian.org/debian/ ftp://mirror.svk.su/debian/ +ftp://mirror.yandex.ru/debian/ ftp://mirror2.corbina.ru/debian/ +http://debian.nsu.ru/debian/ +http://ftp.debian.chuvsu.ru/debian/ +http://ftp.psn.ru/debian/ +http://ftp.ru.debian.org/debian/ +http://mirror.svk.su/debian/ +http://mirror.yandex.ru/debian/ +http://mirror2.corbina.ru/debian/ #LOC:SE -ftp://ftp.se.debian.org/debian/ -ftp://ftp.acc.umu.se/debian/ -ftp://ftp.sunet.se/pub/Linux/distributions/debian/ -ftp://mirrors.se.kernel.org/debian/ -ftp://ftp.port80.se/debian/ -ftp://ftp.ds.karen.hj.se/debian/ -ftp://ftp.ds.hj.se/debian/ ftp://debian.bsnet.se/debian/ -ftp://gelehallon.bsnet.se/debian/ ftp://debian.lth.se/debian/ -ftp://ftp.ddg.lth.se/debian/ ftp://ftp.df.lth.se/debian/ +ftp://ftp.ds.karen.hj.se/debian/ +ftp://ftp.port80.se/debian/ +ftp://ftp.se.debian.org/debian/ +ftp://ftp.sunet.se/pub/Linux/distributions/debian/ +ftp://mirrors.se.kernel.org/debian/ +http://debian.bsnet.se/debian/ +http://debian.lth.se/debian/ +http://ftp.df.lth.se/debian/ +http://ftp.ds.karen.hj.se/debian/ +http://ftp.port80.se/debian/ +http://ftp.se.debian.org/debian/ +http://ftp.sunet.se/pub/Linux/distributions/debian/ +http://mirrors.se.kernel.org/debian/ #LOC:SG ftp://mirror.nus.edu.sg/pub/Debian/ -ftp://mirror.comp.nus.edu.sg/pub/Debian/ +http://mirror.nus.edu.sg/Debian/ #LOC:SI -ftp://ftp.si.debian.org/debian/ -ftp://debian.prunk.si/debian/ -ftp://ftp.arnes.si/packages/debian/ ftp://debian.camtp.uni-mb.si/debian/ +ftp://ftp.arnes.si/packages/debian/ +ftp://ftp.si.debian.org/debian/ +http://debian.camtp.uni-mb.si/debian/ +http://ftp.arnes.si/pub/packages/debian/ +http://ftp.si.debian.org/debian/ #LOC:SK -ftp://ftp.sk.debian.org/debian/ -ftp://ftp.debian.sk/debian/ -ftp://debian.sk/debian/ -ftp://mirrors.nextra.sk/debian/ ftp://debian.ynet.sk/debian/ -ftp://mirror.ynet.sk/debian/ ftp://ftp.antik.sk/debian/ -ftp://debian.antik.sk/debian/ -ftp://ubuntu.antik.sk/debian/ +ftp://ftp.sk.debian.org/debian/ +http://debian.ynet.sk/debian/ +http://ftp.antik.sk/debian/ +http://ftp.sk.debian.org/debian/ #LOC:SV http://debian.ues.edu.sv/debian/ -http://linux.ues.edu.sv/debian/ #LOC:TH +ftp://ftp.debianclub.org/debian/ ftp://ftp.th.debian.org/debian/ -ftp://ftp.coe.psu.ac.th/debian/ -ftp://debian.coe.psu.ac.th/debian/ ftp://ftp.v6.coe.psu.ac.th/debian/ -ftp://debian.coe.psu.ac.th/debian/ http://debian.thaios.net/debian/ -ftp://ftp.debianclub.org/debian/ +http://ftp.debianclub.org/debian/ +http://ftp.th.debian.org/debian/ +http://ftp.v6.coe.psu.ac.th/debian/ #LOC:TR -ftp://ftp.tr.debian.org/debian/ -ftp://debian.ankara.edu.tr/debian/ -ftp://ftp.ankara.edu.tr/debian/ +ftp://debian.comu.edu.tr/debian/ ftp://ftp.linux.org.tr/debian/ +ftp://ftp.metu.edu.tr/debian/ +ftp://ftp.tr.debian.org/debian/ ftp://godel.cs.bilgi.edu.tr/debian/ +http://debian.comu.edu.tr/debian/ http://debian.eso-es.net/debian/ -ftp://debian.comu.edu.tr/debian/ -ftp://ftp.metu.edu.tr/debian/ +http://ftp.linux.org.tr/debian/ +http://ftp.metu.edu.tr/debian/ +http://ftp.tr.debian.org/debian/ +http://godel.cs.bilgi.edu.tr/debian/ #LOC:TW -ftp://ftp.tw.debian.org/debian/ -ftp://debian.linux.org.tw/debian/ +ftp://debian.csie.nctu.edu.tw/debian/ ftp://debian.csie.ntu.edu.tw/pub/debian/ -ftp://ftp.twaren.net/debian/ -ftp://linux.cdpa.nsysu.edu.tw/debian/ -ftp://opensource.nchc.org.tw/debian/ -ftp://os.nchc.org.tw/debian/ -ftp://ftp.isu.edu.tw/debian/ ftp://debian.nctu.edu.tw/debian/ -ftp://mirror.nttu.edu.tw/debian/ -ftp://debian.csie.nctu.edu.tw/debian/ -ftp://ftp.ncnu.edu.tw/debian/ -ftp://ftp4.ncnu.edu.tw/debian/ ftp://ftp.cse.yzu.edu.tw/pub/Linux/debian/debian/ -ftp://ftp.oss.tw/pub/Linux/debian/debian/ +ftp://ftp.isu.edu.tw/debian/ +ftp://ftp.ncnu.edu.tw/debian/ ftp://ftp.tcc.edu.tw/debian/ ftp://ftp.tku.edu.tw/debian/ +ftp://ftp.tw.debian.org/debian/ +ftp://ftp.twaren.net/debian/ +ftp://mirror.nttu.edu.tw/debian/ +ftp://opensource.nchc.org.tw/debian/ +http://debian.csie.nctu.edu.tw/debian/ +http://debian.csie.ntu.edu.tw/debian/ +http://debian.nctu.edu.tw/debian/ +http://ftp.cse.yzu.edu.tw/pub/Linux/debian/debian/ +http://ftp.isu.edu.tw/debian/ +http://ftp.ncnu.edu.tw/debian/ +http://ftp.tcc.edu.tw/debian/ +http://ftp.tku.edu.tw/debian/ +http://ftp.tw.debian.org/debian/ +http://ftp.twaren.net/debian/ +http://mirror.nttu.edu.tw/debian/ +http://opensource.nchc.org.tw/debian/ #LOC:UA -ftp://ftp.ua.debian.org/debian/ -ftp://debian.org.ua/debian/ -ftp://lumpy.3logic.net/debian/ ftp://debian.osdn.org.ua/pub/Debian/debian/ ftp://ftp.3logic.net/debian/ -ftp://borg.3logic.net/debian/ -ftp://mirror.mirohost.net/debian/ -ftp://deb.mirohost.net/debian/ +ftp://ftp.ua.debian.org/debian/ ftp://ftp2.debian.org.ua/debian/ -ftp://mirror.3logic.net/debian/ +ftp://mirror.mirohost.net/debian/ +http://debian.osdn.org.ua/debian/ +http://ftp.ua.debian.org/debian/ +http://ftp2.debian.org.ua/debian/ +http://mirror.mirohost.net/debian/ #LOC:US -ftp://ftp.us.debian.org/debian/ -ftp://http.us.debian.org/debian/ -ftp://ftp.gtlib.gatech.edu/pub/debian/ -ftp://zaphod.gtlib.gatech.edu/pub/debian/ -ftp://ftp.egr.msu.edu/debian/ -ftp://ike.egr.msu.edu/debian/ +ftp://carroll.aset.psu.edu/pub/linux/distributions/debian/ +ftp://debian.cites.uiuc.edu/pub/debian/ +ftp://debian.cs.binghamton.edu/debian/ +ftp://debian.lcs.mit.edu/debian/ +ftp://debian.mirror.frontiernet.net/debian/ +ftp://debian.mirrors.tds.net/debian/ +ftp://debian.osuosl.org/debian/ +ftp://debian.secsup.org/pub/linux/debian/ +ftp://debian.uchicago.edu/debian/ ftp://distro.ibiblio.org/debian/ ftp://ftp-mirror.internap.com/pub/debian/ -ftp://mirror.cs.wisc.edu/debian/ -ftp://ftp.uwsg.indiana.edu/linux/debian/ -ftp://uwsg.iu.edu/linux/debian/ -ftp://ftp.ndlug.nd.edu/debian/ -ftp://debian.uchicago.edu/debian/ -ftp://linux.uchicago.edu/debian/ -ftp://carroll.aset.psu.edu/pub/linux/distributions/debian/ -ftp://carroll.cac.psu.edu/pub/linux/distributions/debian/ -ftp://gladiator.real-time.com/linux/debian/ -ftp://mirrors.kernel.org/debian/ -ftp://mirrors.xmission.com/debian/ -ftp://mirror.xmission.com/debian/ +ftp://ftp.egr.msu.edu/debian/ +ftp://ftp.grokthis.net/debian/ +ftp://ftp.gtlib.gatech.edu/pub/debian/ ftp://ftp.keystealth.org/debian/ ftp://ftp.lug.udel.edu/pub/debian/ -ftp://debian.lcs.mit.edu/debian/ -ftp://debian.csail.mit.edu/debian/ -http://linux.csua.berkeley.edu/debian/ -http://screwdriver.csua.berkeley.edu/debian/ +ftp://ftp.ndlug.nd.edu/debian/ ftp://ftp.silug.org/pub/debian/ -ftp://ftp.luci.org/pub/debian/ -ftp://ftp.kspei.com/pub/debian/ -ftp://debian.secsup.org/pub/linux/debian/ -ftp://debian.osuosl.org/debian/ -ftp://debian.oregonstate.edu/debian/ -ftp://ftp.oregonstate.edu/debian/ -ftp://ftp.osuosl.org/debian/ -ftp://mirror.anl.gov/pub/debian/ -http://sluglug.ucsc.edu/debian/ -ftp://mirrors.geeks.org/debian/ -ftp://mirrors.usc.edu/pub/linux/distributions/debian/ +ftp://ftp.uga.edu/debian/ +ftp://ftp.us.debian.org/debian/ +ftp://ftp.uwsg.indiana.edu/linux/debian/ +ftp://gladiator.real-time.com/linux/debian/ ftp://lug.mtu.edu/debian/ -ftp://debian.mirrors.tds.net/debian/ -ftp://debian.cites.uiuc.edu/pub/debian/ -ftp://bazaar.cites.uiuc.edu/pub/debian/ -ftp://cosmos.cites.uiuc.edu/pub/debian/ -ftp://mirrors.tummy.com/debian/ -ftp://debian.mirror.frontiernet.net/debian/ +ftp://mirror.anl.gov/pub/debian/ ftp://mirror.cc.columbia.edu/pub/linux/debian/debian/ -ftp://ftp.grokthis.net/debian/ -http://mirrors.xenir.com/debian/ -http://debian.mirrors.easynews.com/linux/debian/ -http://mirrors.easynews.com/linux/debian/ -ftp://ftp.uga.edu/debian/ -ftp://linuxserv.uga.edu/debian/ -http://mirror.steadfast.net/debian/ -http://ftp.utexas.edu/debian/ -http://ftp.the.net/debian/ +ftp://mirror.cs.wisc.edu/debian/ ftp://mirror.fdcservers.net/debian/ +ftp://mirror.its.uidaho.edu/debian/ ftp://mirror.rit.edu/debian/ +ftp://mirrors.bloomu.edu/debian/ +ftp://mirrors.geeks.org/debian/ +ftp://mirrors.hosef.org/debian/ +ftp://mirrors.kernel.org/debian/ +ftp://mirrors.tummy.com/debian/ +ftp://mirrors.usc.edu/pub/linux/distributions/debian/ +ftp://mirrors.xmission.com/debian/ +http://carroll.aset.psu.edu/pub/linux/distributions/debian/ +http://debian.cites.uiuc.edu/pub/debian/ http://debian.corenetworks.net/debian/ -ftp://mirror.its.uidaho.edu/debian/ -ftp://debian.cs.binghamton.edu/debian/ +http://debian.cs.binghamton.edu/debian/ +http://debian.lcs.mit.edu/debian/ +http://debian.mirror.frontiernet.net/debian/ +http://debian.mirrors.easynews.com/linux/debian/ +http://debian.mirrors.tds.net/debian/ +http://debian.osuosl.org/debian/ +http://debian.secsup.org/ +http://debian.uchicago.edu/debian/ +http://debian.usu.edu/debian/ +http://distro.ibiblio.org/debian/ +http://ftp-mirror.internap.com/pub/debian/ +http://ftp.egr.msu.edu/debian/ +http://ftp.grokthis.net/debian/ +http://ftp.gtlib.gatech.edu/debian/ +http://ftp.keystealth.orgdebian/ +http://ftp.lug.udel.edu/pub/debian/ +http://ftp.ndlug.nd.edu/mirrors/debian/ +http://ftp.silug.org/pub/debian/ +http://ftp.uga.edu/debian/ +http://ftp.us.debian.org/debian/ +http://ftp.utexas.edu/debian/ +http://ftp.uwsg.indiana.edu/linux/debian/ +http://linux.csua.berkeley.edu/debian/ +http://lug.mtu.edu/debian/ +http://mirror.anl.gov/debian/ +http://mirror.cc.columbia.edu/pub/linux/debian/debian/ +http://mirror.cs.wisc.edu/debian/ +http://mirror.fdcservers.net/debian/ http://mirror.hmc.edu/debian/ -http://worblehat.math.hmc.edu/debian/ -ftp://mirrors.hosef.org/debian/ +http://mirror.its.uidaho.edu/pub/debian/ +http://mirror.rit.edu/debian/ +http://mirror.steadfast.net/debian/ +http://mirrors.bloomu.edu/debian/ +http://mirrors.geeks.org/debian/ +http://mirrors.hosef.org/debian/ +http://mirrors.kernel.org/debian/ http://mirrors.modwest.com/debian/ -ftp://mirrors.bloomu.edu/debian/ -http://debian.usu.edu/debian/ -http://mirror.usu.edu/debian/ -http://mirrors.usu.edu/debian/ +http://mirrors.tummy.com/debian/ +http://mirrors.usc.edu/pub/linux/distributions/debian/ +http://mirrors.xenir.com/debian/ +http://mirrors.xmission.com/debian/ +http://sluglug.ucsc.edu/debian/ #LOC:UZ ftp://debian.stream.uz/debian/ -ftp://debian.uz/debian/ +http://debian.stream.uz/debian/ #LOC:VE http://debian.unesr.edu.ve/debian/ #LOC:ZA -ftp://ftp.sun.ac.za/debian/ ftp://debian.mirror.ac.za/debian/ ftp://ftp.is.co.za/debian/ +ftp://ftp.sun.ac.za/debian/ +http://debian.mirror.ac.za/debian/ +http://ftp.sun.ac.za/ftp/debian/ diff --git a/data/templates/Ubuntu.mirrors b/data/templates/Ubuntu.mirrors index 0bf0206b..ee88b772 100644 --- a/data/templates/Ubuntu.mirrors +++ b/data/templates/Ubuntu.mirrors @@ -3,67 +3,70 @@ http://ftp.ccc.uba.ar/pub/linux/ubuntu/ http://ubuntu.innova-red.net/ubuntu/ http://ubuntu.patan.com.ar/ubuntu/ #LOC:AT -http://ubuntu.uni-klu.ac.at/ubuntu/ -http://ubuntu.lagis.at/ubuntu/ -http://ubuntu.inode.at/ubuntu/ http://gd.tuwien.ac.at/opsys/linux/ubuntu/archive/ +http://ubuntu.inode.at/ubuntu/ +http://ubuntu.lagis.at/ubuntu/ +http://ubuntu.uni-klu.ac.at/ubuntu/ #LOC:AU http://ftp.iinet.net.au/pub/ubuntu/ -http://mirror.optus.net/ubuntu/ +http://ftp.netspace.net.au/pub/ubuntu/ http://mirror.aarnet.edu.au/pub/ubuntu/archive/ http://mirror.files.bigpond.com/ubuntu/ -http://mirror.pacific.net.au/linux/ubuntu/ -http://ftp.netspace.net.au/pub/ubuntu/ http://mirror.internode.on.net/pub/ubuntu/ubuntu/ -http://mirror.waia.asn.au/ubuntu/ http://mirror.netspace.net.au/pub/ubuntu/ +http://mirror.optus.net/ubuntu/ +http://mirror.pacific.net.au/linux/ubuntu/ +http://mirror.waia.asn.au/ubuntu/ #LOC:BA http://archive.ubuntu.com.ba/ubuntu/ #LOC:BE -http://ubuntu.mirrors.skynet.be/pub/ubuntu.com/ubuntu/ http://ftp.belnet.be/mirror/ubuntu.com/ubuntu/ http://gaosu.rave.org/ubuntu/ +http://ubuntu.mirrors.skynet.be/pub/ubuntu.com/ubuntu/ #LOC:BG http://ubuntu.hitsol.net/ubuntu/ -http://ubuntu.nano-box.net/ubuntu/ -http://ubuntu.linux-bg.org/ubuntu/ http://ubuntu.ipacct.com/ubuntu/ +http://ubuntu.linux-bg.org/ubuntu/ +http://ubuntu.nano-box.net/ubuntu/ #LOC:BO http://espejo.softwarelibre.gob.bo/archive.ubuntu.com/ubuntu/ #LOC:BR -http://mirror.globo.com/ubuntu/archive/ -http://ubuntu.interlegis.gov.br/ubuntu/ http://br.archive.ubuntu.com/ubuntu/ http://espelhos.edugraf.ufsc.br/ubuntu/ +http://mirror.globo.com/ubuntu/archive/ +http://sft.if.usp.br/ubuntu/ +http://ubuntu.interlegis.gov.br/ubuntu/ http://ubuntu.mirror.pop-sc.rnp.br/ubuntu/ +http://ubuntu.ufba.br/ubuntu/ http://www.las.ic.unicamp.br/pub/ubuntu/ -http://sft.if.usp.br/ubuntu/ #LOC:BY +http://ftp.byfly.by/ubuntu/ http://linux.org.by/ubuntu/ http://mirror.datacenter.by/ubuntu/ -http://ftp.byfly.by/ubuntu/ #LOC:CA -http://gpl.savoirfairelinux.net/pub/mirrors/ubuntu/ -http://ubuntu.mirror.iweb.ca/ ftp://ftp.cs.mun.ca/pub/mirror/ubuntu/ -http://mirror.its.dal.ca/ubuntu/ +http://gpl.savoirfairelinux.net/pub/mirrors/ubuntu/ +http://mirror.cpsc.ucalgary.ca/mirror/ubuntu.com/packages/ http://mirror.csclub.uwaterloo.ca/ubuntu/ +http://mirror.its.dal.ca/ubuntu/ http://ubuntu.arcticnetwork.ca/ +http://ubuntu.mirror.iweb.ca/ http://ubuntu.mirror.rafal.ca/ubuntu/ -http://mirror.cpsc.ucalgary.ca/mirror/ubuntu.com/packages/ #LOC:CH http://mirror.switch.ch/ftp/mirror/ubuntu/ #LOC:CL http://ftp.tecnoera.com/ubuntu/ +http://mirror.gnucv.cl/ubuntu/ #LOC:CN -http://mirrors.sohu.com/ubuntu/ -http://mirrors.shlug.org/ubuntu/ +http://mirror.bjtu.edu.cn/ubuntu/ +http://mirror.lupaworld.com/ubuntu/ http://mirror.rootguide.org/ubuntu/ http://mirrors.163.com/ubuntu/ -http://ubuntu.srt.cn/ubuntu/ +http://mirrors.shlug.org/ubuntu/ +http://mirrors.sohu.com/ubuntu/ http://ubuntu.cn99.com/ubuntu/ http://ubuntu.dormforce.net/ubuntu/ -http://mirror.lupaworld.com/ubuntu/ +http://ubuntu.srt.cn/ubuntu/ #LOC:CO http://matematicas.unal.edu.co/ubuntu/ #LOC:CR @@ -71,86 +74,85 @@ http://mirrors.ucr.ac.cr/ubuntu/ #LOC:CY http://mirrors.cytanet.com.cy/linux/ubuntu/archive/ #LOC:CZ -http://ftp.sh.cvut.cz/MIRRORS/ubuntu/ http://archive.ubuntu.mirror.dkm.cz/ http://cz.archive.ubuntu.com/ubuntu/ -http://ucho.ignum.cz/ubuntu/ http://ftp.cvut.cz/ubuntu/ +http://ftp.sh.cvut.cz/MIRRORS/ubuntu/ http://ubuntu.sh.cvut.cz/ +http://ucho.ignum.cz/ubuntu/ #LOC:DE -ftp://ftp.rrzn.uni-hannover.de/pub/mirror/linux/ubuntu ftp://ftp.fu-berlin.de/linux/ubuntu/ -http://suse.uni-leipzig.de/pub/releases.ubuntu.com/ubuntu/ -http://ubuntu.mirror.tudos.de/ubuntu/ -http://mirror.netcologne.de/ubuntu/ -http://ftp5.gwdg.de/pub/linux/debian/ubuntu/ -http://ftp.uni-kl.de/pub/linux/ubuntu/ -http://debian.charite.de/ubuntu/ -http://ftp.tu-ilmenau.de/mirror/ubuntu/ -http://ubuntu.intergenia.de/ubuntu/ +ftp://ftp.rrzn.uni-hannover.de/pub/mirror/linux/ubuntu http://archive.ubuntu.uasw.edu/ -http://www.osnt.org/ubuntu/ -http://ftp.tu-chemnitz.de/pub/linux/ubuntu/ -http://mirror.bauhuette.fh-aachen.de/ubuntu/ -http://ftp.stw-bonn.de/ubuntu/ -http://ftp.uni-erlangen.de/mirrors/ubuntu/ -http://ftp.hosteurope.de/mirror/archive.ubuntu.com/ -http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/ubuntu/ubuntu/ +http://debian.charite.de/ubuntu/ http://ftp-stud.fht-esslingen.de/Mirrors/ubuntu/ +http://ftp-stud.hs-esslingen.de/ubuntu/ +http://ftp.hosteurope.de/mirror/archive.ubuntu.com/ +http://ftp.stw-bonn.de/ubuntu/ +http://ftp.tu-chemnitz.de/pub/linux/ubuntu/ +http://ftp.tu-ilmenau.de/mirror/ubuntu/ http://ftp.uni-bayreuth.de/linux/ubuntu/ubuntu/ +http://ftp.uni-erlangen.de/mirrors/ubuntu/ +http://ftp.uni-kl.de/pub/linux/ubuntu/ http://ftp.uni-muenster.de/pub/mirrors/ftp.ubuntu.com/ubuntu/ +http://ftp5.gwdg.de/pub/linux/debian/ubuntu/ +http://mirror.bauhuette.fh-aachen.de/ubuntu/ +http://mirror.netcologne.de/ubuntu/ +http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/ubuntu/ubuntu/ +http://suse.uni-leipzig.de/pub/releases.ubuntu.com/ubuntu/ http://swtsrv.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/ +http://ubuntu.intergenia.de/ubuntu/ +http://ubuntu.mirror.tudos.de/ubuntu/ http://ubuntu.unitedcolo.de/ubuntu/ -http://ftp-stud.hs-esslingen.de/ubuntu/ +http://www.osnt.org/ubuntu/ #LOC:DK http://mirrors.dotsrc.org/ubuntu/ http://mirrors.telianet.dk/ubuntu/ -http://ftp.klid.dk/ftp/ubuntu/ #LOC:EE http://ftp.estpak.ee/ubuntu/ #LOC:ES +http://dafi.inf.um.es/ubuntu/ +http://ftp.caliu.cat/pub/distribucions/ubuntu/archive/ +http://ftp.dat.etsit.upm.es/ubuntu/ http://ftp.gui.uva.es/sites/ubuntu.com/ubuntu/ -http://sunsite.rediris.es/mirror/ubuntu-archive/ +http://ftp.udc.es/ubuntu/ +http://mirror.ousli.org/ubuntu/ http://peloto.pantuflo.es/ubuntu/ -http://ubuntu.cica.es/ubuntu/ http://softlibre.unizar.es/ubuntu/archive/ -http://mirror.ousli.org/ubuntu/ -http://ubuntu.uc3m.es/ubuntu/ +http://sunsite.rediris.es/mirror/ubuntu-archive/ +http://ubuntu.cica.es/ubuntu/ http://ubuntu.grn.cat/ubuntu/ -http://ftp.caliu.cat/pub/distribucions/ubuntu/archive/ -http://dafi.inf.um.es/ubuntu/ -http://ftp.udc.es/ubuntu/ -http://ftp.dat.etsit.upm.es/ubuntu/ +http://ubuntu.uc3m.es/ubuntu/ #LOC:FI -http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com/ http://mirrors.nic.funet.fi/ubuntu/ +http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com/ #LOC:FR -http://mirror.ovh.net/ubuntu/ -http://wwwftp.ciril.fr/pub/linux/ubuntu/archives/ -http://ubuntu.univ-nantes.fr/ubuntu/ +http://archive.monubuntu.fr/ http://distrib-coffee.ipsl.jussieu.fr/ubuntu/ +http://ftp.crihan.fr/ubuntu/ http://ftp.free.org/mirrors/archive.ubuntu.com/ubuntu/ -http://archive.monubuntu.fr/ -http://www-ftp.lip6.fr/pub/linux/distributions/Ubuntu/archive/ -http://ubuntu.univ-reims.fr/ubuntu/ http://ftp.oleane.net/ubuntu/ http://ftp.u-picardie.fr/mirror/ubuntu/ubuntu/ -http://ubuntu-archive.mirrors.proxad.net/ubuntu/ +http://mirror.ovh.net/ubuntu/ http://mirrors.ircam.fr/pub/ubuntu/archive/ -http://ftp.crihan.fr/ubuntu/ +http://ubuntu-archive.mirrors.proxad.net/ubuntu/ +http://ubuntu.univ-nantes.fr/ubuntu/ +http://ubuntu.univ-reims.fr/ubuntu/ +http://www-ftp.lip6.fr/pub/linux/distributions/Ubuntu/archive/ +http://wwwftp.ciril.fr/pub/linux/ubuntu/archives/ #LOC:GB -http://ubuntu.datahop.net/ubuntu/ +http://archive.ubuntu.com/ubuntu/ +http://ftp.ticklers.org/archive.ubuntu.org/ubuntu/ http://mirror.as29550.net/archive.ubuntu.com/ http://mirror.bytemark.co.uk/ubuntu/ -http://ftp.ticklers.org/archive.ubuntu.org/ubuntu/ -http://ubuntu.virginmedia.com/archive/ -http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu/ +http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu/ +http://mirror.sov.uk.goscomb.net/ubuntu/ http://mirrors.melbourne.co.uk/sites/archive.ubuntu.com/ubuntu/ +http://ubuntu.datahop.net/ubuntu/ http://ubuntu.positive-internet.com/ubuntu/ http://ubuntu.retrosnub.co.uk/ubuntu/ -http://mirror.sov.uk.goscomb.net/ubuntu/ -http://archive.ubuntu.com/ubuntu/ -http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu/ +http://ubuntu.virginmedia.com/archive/ +http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu/ #LOC:GE http://ubuntu.eriders.ge/ubuntu/ #LOC:GL @@ -164,62 +166,61 @@ http://ftp.hostrino.com/pub/ubuntu/archive/ #LOC:HR http://hr.archive.ubuntu.com/ubuntu/ #LOC:HU -http://ubuntu.sth.sze.hu/ubuntu/ http://ftp.freepark.org/ubuntu/ -http://ubuntu.mirrors.crysys.hu/ http://ftp.kfki.hu/linux/ubuntu/ +http://ubuntu.mirrors.crysys.hu/ +http://ubuntu.sth.sze.hu/ubuntu/ #LOC:ID -http://mirror.unej.ac.id/ubuntu/ +http://dl2.foss-id.web.id/ubuntu/ http://kambing.ui.ac.id/ubuntu/ http://kebo.vlsm.org/ubuntu/ -http://dl2.foss-id.web.id/ubuntu/ -http://ubuntu.indika.net.id/ubuntu/ +http://mirror.unej.ac.id/ubuntu/ http://repo.undip.ac.id/ubuntu/ +http://ubuntu.indika.net.id/ubuntu/ http://ubuntu.pesat.net.id/archive/ #LOC:IE -http://ftp.heanet.ie/pub/ubuntu/ http://ftp.esat.net/mirrors/archive.ubuntu.com/ +http://ftp.heanet.ie/pub/ubuntu/ #LOC:IL http://mirror.isoc.org.il/pub/ubuntu/ #LOC:IN ftp://ftp.iitb.ac.in/distributions/ubuntu/archives/ http://ftp.iitm.ac.in/ubuntu/ -http://ubuntuarchive.hnsdc.com/ http://mirror.cse.iitk.ac.in/ubuntu/ +http://ubuntuarchive.hnsdc.com/ #LOC:IS http://ubuntu.lhi.is/ubuntu/ #LOC:IT -http://giano.com.dist.unige.it/ubuntu/ -http://ubuntu.mirror.garr.it/mirrors/ubuntu-archive/ -http://ubuntu.ictvalleumbra.it/ubuntu/ http://ubuntu.fastbull.org/ubuntu/ +http://ubuntu.ictvalleumbra.it/ubuntu/ +http://ubuntu.mirror.garr.it/mirrors/ubuntu-archive/ #LOC:JP http://ftp.riken.jp/Linux/ubuntu/ -http://www.ftp.ne.jp/Linux/packages/ubuntu/archive/ -http://ubuntutym.u-toyama.ac.jp/ubuntu/ -http://ubuntu-ashisuto.ubuntulinux.jp/ubuntu/ http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives/ -http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ +http://ubuntu-ashisuto.ubuntulinux.jp/ubuntu/ http://ubuntu.mithril-linux.org/archives/ +http://ubuntutym.u-toyama.ac.jp/ubuntu/ +http://www.ftp.ne.jp/Linux/packages/ubuntu/archive/ #LOC:KG http://ubuntu.mega.kg/ubuntu/ #LOC:KR http://ftp.daum.net/ubuntu/ -http://mirror.khlug.org/ubuntu/ http://kr.archive.ubuntu.com/ubuntu/ +http://mirror.khlug.org/ubuntu/ http://mirror.korea.ac.kr/ubuntu/ #LOC:KW http://ubuntu.qualitynet.net/ubuntu/ #LOC:KZ -http://mirror.space.kz/ubuntu/ http://mirror.neolabs.kz/ubuntu/ +http://mirror.space.kz/ubuntu/ #LOC:LK http://archive.ubuntu.schoolnet.lk/ubuntu/ #LOC:LT -http://mirror.soften.ktu.lt/ubuntu/ http://ftp.litnet.lt/ubuntu/ +http://mirror.soften.ktu.lt/ubuntu/ #LOC:LV http://ubuntu-arch.linux.edu.lv/ubuntu/ +http://ubuntu.load.lv/ubuntu/ #LOC:MD http://mirrors.bsd.md/ubuntu/ #LOC:MN @@ -227,190 +228,189 @@ http://archive.ubuntu.mnosi.org/ubuntu/ #LOC:MT http://mirror.linux.org.mt/ubuntu/ #LOC:MX -http://ubuntu.ujed.mx/ubuntu/ http://tezcatl.fciencias.unam.mx/ubuntu/ #LOC:MY -http://ubuntu.bytecraft.com.my/ubuntu/ -http://mirror.upm.edu.my/ubuntu/ -http://www.mirror.upm.edu.my/ubuntu/ -http://mirror.oscc.org.my/ubuntu/ http://archive.mmu.edu.my/ubuntu/ +http://mirror.oscc.org.my/ubuntu/ +http://ubuntu.bytecraft.com.my/ubuntu/ http://ubuntu.mmu.edu.my/ubuntu/ #LOC:NA http://ubuntu-archive.polytechnic.edu.na/ubuntu/ +#LOC:NC +http://archive.ubuntu.nautile.nc/ubuntu/ #LOC:NL -http://ubuntu.tiscali.nl/ -http://ubuntu.mirror.cambrium.nl/ubuntu/ -http://mirrors.nl.eu.kernel.org/ubuntu/ -http://mirror.leaseweb.com/ubuntu/ -http://nl3.archive.ubuntu.com/ubuntu/ +ftp://ftpserv.tudelft.nl/pub/Linux/archive.ubuntu.com/ +http://ftp.snt.utwente.nl/pub/os/linux/ubuntu-archive/ http://ftp.telfort.nl/ubuntu/ http://ftp.tudelft.nl/archive.ubuntu.com/ +http://mirror.leaseweb.com/ubuntu/ http://mirror.liteserver.nl/pub/ubuntu/ -http://ftp.snt.utwente.nl/pub/os/linux/ubuntu-archive/ -ftp://ftpserv.tudelft.nl/pub/Linux/archive.ubuntu.com/ -http://ubuntuarchive.eweka.nl/ubuntu/ +http://mirrors.nl.eu.kernel.org/ubuntu/ http://nl.archive.ubuntu.com/ubuntu/ +http://nl3.archive.ubuntu.com/ubuntu/ http://osmirror.rug.nl/ubuntu/ +http://ubuntu.mirror.cambrium.nl/ubuntu/ +http://ubuntu.tiscali.nl/ +http://ubuntuarchive.eweka.nl/ubuntu/ #LOC:NO -http://no.archive.ubuntu.com/ubuntu/ http://ftp.uninett.no/ubuntu/ +http://no.archive.ubuntu.com/ubuntu/ http://ubuntu.uib.no/archive/ #LOC:NP http://archive.mitra.net.np/ubuntu/ #LOC:NZ -http://nz2.archive.ubuntu.com/ubuntu/ -http://mirror.ihug.co.nz/ubuntu/ http://ftp.citylink.co.nz/ubuntu/ +http://mirror.ihug.co.nz/ubuntu/ +http://nz2.archive.ubuntu.com/ubuntu/ #LOC:PF http://pf.archive.ubuntu.com/ubuntu/ +#LOC:PH +http://mirror.web.com.ph/ubuntu/ #LOC:PL ftp://ftp.man.szczecin.pl/pub/Linux/ubuntu/ -http://ftp.wcss.pl/ubuntu/ http://ftp.vectranet.pl/ubuntu/ -http://ubuntu.task.gda.pl/ubuntu/ +http://ftp.wcss.pl/ubuntu/ http://piotrkosoft.net/pub/mirrors/ubuntu/ +http://ubuntu.task.gda.pl/ubuntu/ #LOC:PT -http://mosel.estg.ipleiria.pt/mirror/distros/ubuntu/archive/ ftp://ftp.ua.pt/pub/ubuntu/ +http://archive.ubuntumirror.dei.uc.pt/ubuntu/ http://darkstar.ist.utl.pt/ubuntu/archive/ +http://deis-mirrors.isec.pt/ubuntu/ http://ftp.rnl.ist.utl.pt/pub/ubuntu/archive/ -http://archive.ubuntumirror.dei.uc.pt/ubuntu/ -http://pathfinder.ipcb.pt/ubuntu/ http://mirrors.fe.up.pt/ubuntu/ http://mirrors.nfsi.pt/ubuntu/ +http://mosel.estg.ipleiria.pt/mirror/distros/ubuntu/archive/ +http://pathfinder.ipcb.pt/ubuntu/ http://ubuntu.dcc.fc.up.pt/ -http://deis-mirrors.isec.pt/ubuntu/ #LOC:QA http://ubuntu.qatar.cmu.edu/ubuntu/ #LOC:RO -http://mirror.pub.ro/ubuntu/ -http://ftp.gts.lug.ro/ubuntu/ -http://mirror.arlug.ro/pub/ubuntu/ubuntu/ -http://ftp.roedu.net/mirrors/ubuntulinux.org/ubuntu/ http://ftp.astral.ro/mirrors/ubuntu.com/ubuntu/ +http://ftp.gts.lug.ro/ubuntu/ http://ftp.info.uvt.ro/ubuntu/ +http://ftp.roedu.net/mirrors/ubuntulinux.org/ubuntu/ +http://mirror.arlug.ro/pub/ubuntu/ubuntu/ +http://mirror.pub.ro/ubuntu/ #LOC:RS -http://ubuntu.etf.bg.ac.rs/ubuntu/ http://rpm.scl.rs/linux/ubuntu/archive/ +http://ubuntu.etf.bg.ac.rs/ubuntu/ #LOC:RU -ftp://ftp.mipt.ru/mirror/ubuntu/ -http://mirror.yandex.ru/ubuntu/ -http://ftp.chg.ru/pub/Linux/ubuntu/archive/ ftp://ftp.corbina.net/pub/Linux/ubuntu/ -http://linux.nsu.ru/ubuntu/ +ftp://ftp.mipt.ru/mirror/ubuntu/ http://89.148.222.236/ubuntu/ +http://ftp.chg.ru/pub/Linux/ubuntu/archive/ http://ftp.mtu.ru/pub/ubuntu/archive/ -http://mirror2.corbina.ru/ubuntu/ +http://linux.nsu.ru/ubuntu/ http://mirror.rol.ru/ubuntu/ +http://mirror.yandex.ru/ubuntu/ +http://mirror2.corbina.ru/ubuntu/ #LOC:SA -http://ubuntu.saudi.net.sa/ http://ubuntu.mirrors.isu.net.sa/ubuntu/ +http://ubuntu.saudi.net.sa/ #LOC:SE -http://ftp.port80.se/ubuntu/ -http://mirrors.se.eu.kernel.org/ubuntu/ -http://ftp.sunet.se/pub/os/Linux/distributions/ubuntu/ubuntu/ -http://ftp.ds.karen.hj.se/ubuntu/ http://ftp.acc.umu.se/ubuntu/ http://ftp.df.lth.se/ubuntu/ +http://ftp.ds.karen.hj.se/ubuntu/ +http://ftp.sunet.se/pub/os/Linux/distributions/ubuntu/ubuntu/ +http://mirrors.se.eu.kernel.org/ubuntu/ http://ubuntu.mirror.su.se/ubuntu/ #LOC:SG -http://ubuntu.oss.eznetsols.org/ubuntu/ -http://linux.ntuoss.org/ubuntu/ http://ftp.science.nus.edu.sg/ubuntu/ +http://linux.ntuoss.org/ubuntu/ +http://ubuntu.oss.eznetsols.org/ubuntu/ #LOC:SI http://ftp.arnes.si/pub/mirrors/ubuntu/ http://mirror.lihnidos.org/ubuntu/ubuntu/ #LOC:SK +http://ftp.antik.sk/ubuntu/ http://ftp.energotel.sk/pub/linux/ubuntu/ http://ubuntu.ynet.sk/ubuntu/ -http://ftp.antik.sk/ubuntu/ #LOC:TH http://mirror.in.th/osarchive/ubuntu/ -http://ubuntu-archive.sit.kmutt.ac.th/ http://mirror1.ku.ac.th/ubuntu/ +http://ubuntu-archive.sit.kmutt.ac.th/ #LOC:TR http://ftp.linux.org.tr/ubuntu/ -http://ftp.ankara.edu.tr/ubuntu/ -http://ubuntu.gnu.gen.tr/ubuntu/ -http://russell.cs.bilgi.edu.tr/ubuntu/ http://ftp.metu.edu.tr/ubuntu/ +http://russell.cs.bilgi.edu.tr/ubuntu/ +http://ubuntu.gnu.gen.tr/ubuntu/ #LOC:TW ftp://ftp.chu.edu.tw/Linux/Ubuntu/archives/ -http://ftp.nsysu.edu.tw/Linux/Ubuntu/ubuntu/ -http://ftp.ncnu.edu.tw/Linux/ubuntu/ubuntu/ -http://tw.archive.ubuntu.com/ubuntu/ -http://mirror.nttu.edu.tw/ubuntu/ -http://ftp.tcc.edu.tw/Linux/ubuntu/ -http://ubuntu.cs.nctu.edu.tw/ubuntu/ -http://ftp.nchu.edu.tw/Linux/Ubuntu/ http://debian.nctu.edu.tw/ubuntu/ -http://ftp.twaren.net/Linux/Ubuntu/ubuntu/ -http://ftp.cse.yzu.edu.tw/pub/Linux/Ubuntu/ubuntu/ -http://ubuntu.stu.edu.tw/ubuntu/ http://free.nchc.org.tw/ubuntu/ http://ftp.cs.pu.edu.tw/Linux/Ubuntu/ubuntu/ +http://ftp.cse.yzu.edu.tw/pub/Linux/Ubuntu/ubuntu/ +http://ftp.nchu.edu.tw/Linux/Ubuntu/ +http://ftp.ncnu.edu.tw/Linux/ubuntu/ubuntu/ +http://ftp.nsysu.edu.tw/Linux/Ubuntu/ubuntu/ +http://ftp.tcc.edu.tw/Linux/ubuntu/ http://ftp.tku.edu.tw/ubuntu/ +http://ftp.twaren.net/Linux/Ubuntu/ubuntu/ +http://mirror.nttu.edu.tw/ubuntu/ +http://tw.archive.ubuntu.com/ubuntu/ +http://ubuntu.cs.nctu.edu.tw/ubuntu/ +http://ubuntu.stu.edu.tw/ubuntu/ +http://www.mirror.tw/pub/ubuntu/ubuntu/ #LOC:UA http://mirror.mirohost.net/ubuntu/ -http://ubuntu.org.ua/ubuntu/ http://mirrors.dnepr.com/pub/mirrors/ubuntu/ +http://ubuntu.org.ua/ubuntu/ #LOC:US -http://ubuntu.wallawalla.edu/ubuntu/ -http://mirror.math.ucdavis.edu/ubuntu/ -http://mirror.umoss.org/ubuntu/ -http://ubuntu.securedservers.com/ -http://ubuntu.media.mit.edu/ubuntu/ -http://mirrors.cs.wmich.edu/ubuntu/ +ftp://ftp.egr.msu.edu/pub/ubuntu/archive/ +http://76.73.4.58/ubuntu/ +http://archive.linux.duke.edu/ubuntu/ +http://astromirror.uchicago.edu/ubuntu/ +http://cudlug.cudenver.edu/ubuntu/ +http://ftp.usf.edu/pub/ubuntu/ +http://ftp.ussg.iu.edu/linux/ubuntu/ +http://ftp.utexas.edu/ubuntu/ +http://lug.mtu.edu/ubuntu/ +http://mira.sunsite.utk.edu/ubuntu/ +http://mirror.anl.gov/pub/ubuntu/ http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/ +http://mirror.clarkson.edu/ubuntu/ +http://mirror.cs.umn.edu/ubuntu/ +http://mirror.hosef.org/ubuntu/ +http://mirror.its.uidaho.edu/pub/ubuntu/ +http://mirror.math.ucdavis.edu/ubuntu/ http://mirror.peer1.net/ubuntu/ -http://ubuntu.wikimedia.org/ubuntu/ -http://ubuntu.cs.utah.edu/ubuntu/ -http://mirrors.rit.edu/ubuntu/ +http://mirror.umoss.org/ubuntu/ +http://mirror.uoregon.edu/ubuntu/ +http://mirrors.acm.jhu.edu/ubuntu/ +http://mirrors.bloomu.edu/ubuntu/ http://mirrors.cat.pdx.edu/ubuntu/ -http://ubuntu.mirror.frontiernet.net/ubuntu/ -http://mirrors.jgi-psf.org/ubuntu/ -http://ftp.ussg.iu.edu/linux/ubuntu/ -http://lug.mtu.edu/ubuntu/ +http://mirrors.cavecreek.net/ubuntu/ http://mirrors.ccs.neu.edu/ubuntu/ -http://ftp.utexas.edu/ubuntu/ -http://mirrors.bloomu.edu/ubuntu/ -http://www.gtlib.gatech.edu/pub/ubuntu/ -http://mirror.its.uidaho.edu/pub/ubuntu/ -http://76.73.4.58/ubuntu/ -http://archive.linux.duke.edu/ubuntu/ -http://mirror.clarkson.edu/ubuntu/ -http://cudlug.cudenver.edu/ubuntu/ -http://ubuntu.secsup.org/ +http://mirrors.cs.wmich.edu/ubuntu/ http://mirrors.easynews.com/linux/ubuntu/ +http://mirrors.jgi-psf.org/ubuntu/ +http://mirrors.pavlovmedia.net/ubuntu/ +http://mirrors.rit.edu/ubuntu/ +http://mirrors.us.kernel.org/ubuntu/ +http://mirrors.xmission.com/ubuntu/ +http://samaritan.ucmerced.edu/ubuntu/ +http://ubuntu.cs.utah.edu/ubuntu/ http://ubuntu.eecs.wsu.edu/ +http://ubuntu.media.mit.edu/ubuntu/ +http://ubuntu.mirror.frontiernet.net/ubuntu/ +http://ubuntu.mirrors.tds.net/pub/ubuntu/ http://ubuntu.osuosl.org/ubuntu/ -ftp://ftp.egr.msu.edu/pub/ubuntu/archive/ -http://mirrors.us.kernel.org/ubuntu/ http://ubuntu.secs.oakland.edu/ -http://mirrors.pavlovmedia.net/ubuntu/ -http://mira.sunsite.utk.edu/ubuntu/ -http://astromirror.uchicago.edu/ubuntu/ +http://ubuntu.secsup.org/ +http://ubuntu.securedservers.com/ +http://ubuntu.wallawalla.edu/ubuntu/ http://ubuntu.washdc-linux.com/ubuntu/ +http://ubuntu.wikimedia.org/ubuntu/ http://www.club.cc.cmu.edu/pub/ubuntu/ -http://mirror.uoregon.edu/ubuntu/ +http://www.gtlib.gatech.edu/pub/ubuntu/ http://www.lug.bu.edu/mirror/ubuntu/ -http://mirror.anl.gov/pub/ubuntu/ -http://mirrors.cavecreek.net/ubuntu/ -http://mirror.hosef.org/ubuntu/ -http://mirrors.xmission.com/ubuntu/ -http://mirror.lcsee.wvu.edu/ubuntu/ -http://mirrors.acm.jhu.edu/ubuntu/ -http://samaritan.ucmerced.edu/ubuntu/ -http://ubuntu.mirrors.tds.net/pub/ubuntu/ -http://ftp.usf.edu/pub/ubuntu/ -http://mirror.cs.umn.edu/ubuntu/ #LOC:UZ http://ubuntu.uz/ubuntu/ #LOC:VN http://mirror-fpt-telecom.fpt.net/ubuntu/ #LOC:ZA -http://ubuntu.saix.net/ubuntu-archive/ -http://ftp.sun.ac.za/ftp/ubuntu/ http://ftp.leg.uct.ac.za/ubuntu/ +http://ftp.sun.ac.za/ftp/ubuntu/ http://ubuntu.mirror.ac.za/ubuntu-archive/ +http://ubuntu.saix.net/ubuntu-archive/ diff --git a/debian/changelog b/debian/changelog index 97c72763..090ee043 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,6 +28,8 @@ python-apt (0.7.93.4) unstable; urgency=low - change one mirror which is not on the mirror list anymore. * utils/get_debian_mirrors.py: - Parse Mirrors.masterlist instead of the HTML web page. + * utils/get_ubuntu_mirrors_from_lp.py: + - Sort the mirror list of each country. -- Julian Andres Klode Mon, 01 Mar 2010 16:13:22 +0100 diff --git a/utils/get_ubuntu_mirrors_from_lp.py b/utils/get_ubuntu_mirrors_from_lp.py index 3c183b6d..341dba8a 100755 --- a/utils/get_ubuntu_mirrors_from_lp.py +++ b/utils/get_ubuntu_mirrors_from_lp.py @@ -44,4 +44,4 @@ keys = countries.keys() keys.sort() for country in keys: print "#LOC:%s" % country - print "\n".join(countries[country]) + print "\n".join(sorted(countries[country])) -- cgit v1.2.3