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):
|
class Main(object):
|
||||||
dir = None
|
dir = None
|
||||||
|
|
||||||
def __init__(self, url, url_config=None, arch=None, featureset=None,
|
def __init__(self, arch=None, featureset=None, flavour=None):
|
||||||
flavour=None):
|
|
||||||
self.log = sys.stdout.write
|
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_arch = arch
|
||||||
self.override_featureset = featureset
|
self.override_featureset = featureset
|
||||||
self.override_flavour = flavour
|
self.override_flavour = flavour
|
||||||
|
@ -74,6 +70,12 @@ class Main(object):
|
||||||
self.version = changelog.version.linux_version
|
self.version = changelog.version.linux_version
|
||||||
self.version_source = changelog.version.complete
|
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",
|
self.config = ConfigCoreDump(fp=open("debian/config.defines.dump",
|
||||||
"rb"))
|
"rb"))
|
||||||
|
|
||||||
|
@ -113,7 +115,7 @@ class Main(object):
|
||||||
version_abi = self.version_abi
|
version_abi = self.version_abi
|
||||||
filename = ("linux-headers-%s-%s_%s_%s.deb" %
|
filename = ("linux-headers-%s-%s_%s_%s.deb" %
|
||||||
(version_abi, prefix, self.version_source, arch))
|
(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))
|
d = self.extract_package(f, "linux-headers-%s_%s" % (prefix, arch))
|
||||||
f1 = d + ("/usr/src/linux-headers-%s-%s/Module.symvers" %
|
f1 = d + ("/usr/src/linux-headers-%s-%s/Module.symvers" %
|
||||||
(version_abi, prefix))
|
(version_abi, prefix))
|
||||||
|
@ -127,18 +129,27 @@ class Main(object):
|
||||||
# pickle.load allows running arbitrary code.
|
# pickle.load allows running arbitrary code.
|
||||||
return self.config
|
return self.config
|
||||||
|
|
||||||
def retrieve_package(self, url, filename, arch):
|
def retrieve_package(self, filename, arch):
|
||||||
u = url(self.source, filename, arch)
|
for i, url in enumerate(self.urls):
|
||||||
filename_out = self.dir + "/" + filename
|
u = url(self.source, filename, arch)
|
||||||
|
filename_out = self.dir + "/" + filename
|
||||||
|
|
||||||
f_in = urlopen(u)
|
try:
|
||||||
f_out = open(filename_out, 'wb')
|
f_in = urlopen(u)
|
||||||
while 1:
|
except HTTPError as e:
|
||||||
r = f_in.read()
|
if i == len(self.urls) - 1:
|
||||||
if not r:
|
# No more URLs to try
|
||||||
break
|
raise
|
||||||
f_out.write(r)
|
else:
|
||||||
return filename_out
|
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):
|
def save_abi(self, version_abi, symbols, arch, featureset, flavour):
|
||||||
dir = "debian/abi/%s" % version_abi
|
dir = "debian/abi/%s" % version_abi
|
||||||
|
@ -190,12 +201,6 @@ class Main(object):
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
options = optparse.OptionParser()
|
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",
|
options.add_option("-u", "--url-base", dest="url_base",
|
||||||
default=default_url_base)
|
default=default_url_base)
|
||||||
options.add_option("--url-base-incoming", dest="url_base_incoming",
|
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 = url_debian_ports_pool(opts.url_base_ports)
|
||||||
url_base_ports_incoming = url_debian_flat(opts.url_base_ports_incoming)
|
url_base_ports_incoming = url_debian_flat(opts.url_base_ports_incoming)
|
||||||
url_base_security = url_debian_security_pool(opts.url_base_security)
|
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
|
linux (4.19.28-2) unstable; urgency=medium
|
||||||
|
|
||||||
[ Ben Hutchings ]
|
[ Ben Hutchings ]
|
||||||
|
|
Loading…
Reference in New Issue