merge trunk up to 2013-07-05

This commit is contained in:
Colin Watson 2013-09-24 14:35:35 +01:00
commit 9e2da658b0

View File

@ -566,14 +566,20 @@ class Britney(object):
if "(" in source: if "(" in source:
dpkg[SOURCEVER] = source[source.find("(")+1:source.find(")")] dpkg[SOURCEVER] = source[source.find("(")+1:source.find(")")]
pkgarch = "%s/%s" % (pkg,arch)
# if the source package is available in the distribution, then register this binary package # if the source package is available in the distribution, then register this binary package
if dpkg[SOURCE] in sources[distribution]: if dpkg[SOURCE] in sources[distribution]:
pkg_arch = pkg + "/" + arch # There may be multiple versions of any arch:all packages
if pkg_arch not in sources[distribution][dpkg[SOURCE]][BINARIES]: # (in unstable) if some architectures have out-of-date
sources[distribution][dpkg[SOURCE]][BINARIES].append(pkg_arch) # binaries. We only want to include the package in the
# source -> binary mapping once. It doesn't matter which
# of the versions we include as only the package name and
# architecture are recorded.
if pkgarch not in sources[distribution][dpkg[SOURCE]][BINARIES]:
sources[distribution][dpkg[SOURCE]][BINARIES].append(pkgarch)
# if the source package doesn't exist, create a fake one # if the source package doesn't exist, create a fake one
else: else:
sources[distribution][dpkg[SOURCE]] = [dpkg[SOURCEVER], 'faux', [pkg + "/" + arch], None, True] sources[distribution][dpkg[SOURCE]] = [dpkg[SOURCEVER], 'faux', [pkgarch], None, True]
# register virtual packages and real packages that provide them # register virtual packages and real packages that provide them
if dpkg[PROVIDES]: if dpkg[PROVIDES]:
@ -1109,6 +1115,9 @@ class Britney(object):
if sv1 == sv2: if sv1 == sv2:
return 1 return 1
if sv1 is None or sv2 is None:
return 0
m = re.match(r'^(.*)\+b\d+$', sv1) m = re.match(r'^(.*)\+b\d+$', sv1)
if m: sv1 = m.group(1) if m: sv1 = m.group(1)
m = re.match(r'^(.*)\+b\d+$', sv2) m = re.match(r'^(.*)\+b\d+$', sv2)
@ -1315,6 +1324,12 @@ class Britney(object):
excuse.addhtml("From wrong source: %s %s (%s not %s)" % (pkg_name, binary_u[VERSION], pkgsv, source_t[VERSION])) excuse.addhtml("From wrong source: %s %s (%s not %s)" % (pkg_name, binary_u[VERSION], pkgsv, source_t[VERSION]))
break break
# if the source package has been updated in unstable and this is a binary migration, skip it
if self.same_source(source_t[VERSION], pkgsv) and source_t[VERSION] != source_u[VERSION]:
anywrongver = True
excuse.addhtml("From wrong source: %s %s (%s not %s)" % (pkg_name, binary_u[VERSION], pkgsv, source_u[VERSION]))
break
# find unsatisfied dependencies for the new binary package # find unsatisfied dependencies for the new binary package
self.excuse_unsat_deps(pkg_name, src, arch, suite, excuse) self.excuse_unsat_deps(pkg_name, src, arch, suite, excuse)