debian/bin/abiupdate.py: Automatically select the correct archive to fetch from
If the changelog distribution is *-security, fetch from the security archive. Otherwise, try the main archive, ports, incoming, and incoming.ports in that order.
This commit is contained in:
parent
f12e6c20ed
commit
0e10941761
|
@ -54,13 +54,9 @@ class url_debian_security_pool(url_debian_pool):
|
|||
class Main(object):
|
||||
dir = None
|
||||
|
||||
def __init__(self, url, url_config=None, arch=None, featureset=None,
|
||||
flavour=None):
|
||||
def __init__(self, arch=None, featureset=None, flavour=None):
|
||||
self.log = sys.stdout.write
|
||||
|
||||
self.url = self.url_config = url
|
||||
if url_config is not None:
|
||||
self.url_config = url_config
|
||||
self.override_arch = arch
|
||||
self.override_featureset = featureset
|
||||
self.override_flavour = flavour
|
||||
|
@ -74,6 +70,12 @@ class Main(object):
|
|||
self.version = changelog.version.linux_version
|
||||
self.version_source = changelog.version.complete
|
||||
|
||||
if changelog.distribution.endswith('-security'):
|
||||
self.urls = [url_base_security]
|
||||
else:
|
||||
self.urls = [url_base, url_base_ports,
|
||||
url_base_incoming, url_base_ports_incoming]
|
||||
|
||||
self.config = ConfigCoreDump(fp=open("debian/config.defines.dump",
|
||||
"rb"))
|
||||
|
||||
|
@ -113,7 +115,7 @@ class Main(object):
|
|||
version_abi = self.version_abi
|
||||
filename = ("linux-headers-%s-%s_%s_%s.deb" %
|
||||
(version_abi, prefix, self.version_source, arch))
|
||||
f = self.retrieve_package(self.url, filename, arch)
|
||||
f = self.retrieve_package(filename, arch)
|
||||
d = self.extract_package(f, "linux-headers-%s_%s" % (prefix, arch))
|
||||
f1 = d + ("/usr/src/linux-headers-%s-%s/Module.symvers" %
|
||||
(version_abi, prefix))
|
||||
|
@ -127,18 +129,27 @@ class Main(object):
|
|||
# pickle.load allows running arbitrary code.
|
||||
return self.config
|
||||
|
||||
def retrieve_package(self, url, filename, arch):
|
||||
u = url(self.source, filename, arch)
|
||||
filename_out = self.dir + "/" + filename
|
||||
def retrieve_package(self, filename, arch):
|
||||
for i, url in enumerate(self.urls):
|
||||
u = url(self.source, filename, arch)
|
||||
filename_out = self.dir + "/" + filename
|
||||
|
||||
f_in = urlopen(u)
|
||||
f_out = open(filename_out, 'wb')
|
||||
while 1:
|
||||
r = f_in.read()
|
||||
if not r:
|
||||
break
|
||||
f_out.write(r)
|
||||
return filename_out
|
||||
try:
|
||||
f_in = urlopen(u)
|
||||
except HTTPError as e:
|
||||
if i == len(self.urls) - 1:
|
||||
# No more URLs to try
|
||||
raise
|
||||
else:
|
||||
continue
|
||||
|
||||
f_out = open(filename_out, 'wb')
|
||||
while 1:
|
||||
r = f_in.read()
|
||||
if not r:
|
||||
break
|
||||
f_out.write(r)
|
||||
return filename_out
|
||||
|
||||
def save_abi(self, version_abi, symbols, arch, featureset, flavour):
|
||||
dir = "debian/abi/%s" % version_abi
|
||||
|
@ -190,12 +201,6 @@ class Main(object):
|
|||
|
||||
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("--security", action="store_true", dest="security")
|
||||
options.add_option("-u", "--url-base", dest="url_base",
|
||||
default=default_url_base)
|
||||
options.add_option("--url-base-incoming", dest="url_base_incoming",
|
||||
|
@ -223,15 +228,5 @@ if __name__ == '__main__':
|
|||
url_base_ports = url_debian_ports_pool(opts.url_base_ports)
|
||||
url_base_ports_incoming = url_debian_flat(opts.url_base_ports_incoming)
|
||||
url_base_security = url_debian_security_pool(opts.url_base_security)
|
||||
if opts.incoming_config:
|
||||
url = url_config = url_base_incoming
|
||||
else:
|
||||
url_config = url_base
|
||||
if opts.security:
|
||||
url = url_base_security
|
||||
elif opts.ports:
|
||||
url = url_base_ports_incoming if opts.incoming else url_base_ports
|
||||
else:
|
||||
url = url_base_incoming if opts.incoming else url_base
|
||||
|
||||
Main(url, url_config, **kw)()
|
||||
Main(**kw)()
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
linux (4.19.28-3) UNRELEASED; urgency=medium
|
||||
|
||||
* debian/bin/abiupdate.py: Automatically select the correct archive to fetch
|
||||
from
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Mon, 18 Mar 2019 22:50:08 +0000
|
||||
|
||||
linux (4.19.28-2) unstable; urgency=medium
|
||||
|
||||
[ Ben Hutchings ]
|
||||
|
|
Loading…
Reference in New Issue