From 6e00b45f9b719a58cf00fa926710824cf1124d31 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 26 Jan 2012 05:27:39 +0000 Subject: [PATCH] Add support for getting ABI information from debian-ports svn path=/dists/trunk/linux-2.6/; revision=18637 --- debian/bin/abiupdate.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/debian/bin/abiupdate.py b/debian/bin/abiupdate.py index 3bbf80dbc..a4bb0ead2 100755 --- a/debian/bin/abiupdate.py +++ b/debian/bin/abiupdate.py @@ -15,13 +15,14 @@ from debian_linux.debian import * default_url_base = "http://ftp.de.debian.org/debian/" default_url_base_incoming = "http://incoming.debian.org/" +default_url_base_ports = "http://ftp.debian-ports.org/debian/" class url_debian_flat(object): def __init__(self, base): self.base = base - def __call__(self, source, filename): + def __call__(self, source, filename, arch): return self.base + filename @@ -29,10 +30,17 @@ class url_debian_pool(object): def __init__(self, base): self.base = base - def __call__(self, source, filename): + def __call__(self, source, filename, arch): return self.base + "pool/main/" + source[0] + "/" + source + "/" + filename +class url_debian_ports_pool(url_debian_pool): + def __call__(self, source, filename, arch): + if arch == 'all': + return url_debian_ports_pool(self, source, filename, arch) + return self.base + "pool-" + arch + "/main/" + source[0] + "/" + source + "/" + filename + + class Main(object): dir = None @@ -81,7 +89,7 @@ class Main(object): def get_abi(self, arch, prefix): filename = "linux-headers-%s-%s_%s_%s.deb" % (self.version_abi, prefix, self.version_source, arch) - f = self.retrieve_package(self.url, filename) + f = self.retrieve_package(self.url, filename, arch) d = self.extract_package(f, "linux-headers-%s_%s" % (prefix, arch)) f1 = d + "/usr/src/linux-headers-%s-%s/Module.symvers" % (self.version_abi, prefix) s = Symbols(open(f1)) @@ -90,15 +98,15 @@ class Main(object): def get_config(self): filename = "linux-support-%s_%s_all.deb" % (self.version_abi, self.version_source) - f = self.retrieve_package(self.url_config, filename) + f = self.retrieve_package(self.url_config, filename, 'all') d = self.extract_package(f, "linux-support") c = d + "/usr/src/linux-support-" + self.version_abi + "/config.defines.dump" config = ConfigCoreDump(fp=file(c)) shutil.rmtree(d) return config - def retrieve_package(self, url, filename): - u = url(self.source, filename) + def retrieve_package(self, url, filename, arch): + u = url(self.source, filename, arch) filename_out = self.dir + "/" + filename f_in = urllib2.urlopen(u) @@ -165,8 +173,10 @@ if __name__ == '__main__': options = optparse.OptionParser() options.add_option("-i", "--incoming", action="store_true", dest="incoming") options.add_option("--incoming-config", action="store_true", dest="incoming_config") + options.add_option("--ports", action="store_true", dest="ports") options.add_option("-u", "--url-base", dest="url_base", default=default_url_base) options.add_option("--url-base-incoming", dest="url_base_incoming", default=default_url_base_incoming) + options.add_option("--url-base-ports", dest="url_base_ports", default=default_url_base_ports) opts, args = options.parse_args() @@ -180,12 +190,15 @@ if __name__ == '__main__': url_base = url_debian_pool(opts.url_base) url_base_incoming = url_debian_flat(opts.url_base_incoming) + url_base_ports = url_debian_ports_pool(opts.url_base_ports) if opts.incoming_config: url = url_config = url_base_incoming else: url_config = url_base if opts.incoming: url = url_base_incoming + elif opts.ports: + url = url_base_ports else: url = url_base