diff --git a/britney.py b/britney.py
index 2778831..56cdff8 100755
--- a/britney.py
+++ b/britney.py
@@ -279,12 +279,14 @@ class Britney:
# lib/dpkg.c and rebuilding
self.sources = {'testing': self.read_sources(self.options.testing),
'unstable': self.read_sources(self.options.unstable),
- 'tpu': self.read_sources(self.options.tpu),}
- self.binaries = {'testing': {}, 'unstable': {}, 'tpu': {}}
+ 'tpu': self.read_sources(self.options.tpu),
+ 'pu': self.read_sources(self.options.pu),}
+ self.binaries = {'testing': {}, 'unstable': {}, 'tpu': {}, 'pu': {}}
for arch in self.options.architectures:
self.binaries['testing'][arch] = self.read_binaries(self.options.testing, "testing", arch)
self.binaries['unstable'][arch] = self.read_binaries(self.options.unstable, "unstable", arch)
self.binaries['tpu'][arch] = self.read_binaries(self.options.tpu, "tpu", arch)
+ self.binaries['pu'][arch] = self.read_binaries(self.options.pu, "pu", arch)
# build the testing system
self.build_systems(arch)
@@ -819,7 +821,7 @@ class Britney:
if len(hints["block"]) == 0 and len(hints["block-udeb"]) == 0:
self.__log("WARNING: No block hints at all, not even udeb ones!", type="W")
- # A t-p-u approval overrides an unstable block
+ # A (t-)p-u approval overrides an unstable block
for p in hints["approve"]:
hints["unblock"][p] = hints["approve"][p]
@@ -1311,13 +1313,13 @@ class Britney:
else:
update_candidate = False
- if suite == 'tpu':
- # o-o-d(ish) checks for t-p-u
+ if suite in ['pu', 'tpu']:
+ # o-o-d(ish) checks for (t-)p-u
for arch in self.options.architectures:
# If the package isn't in testing or the testing
# package produces no packages on this architecture,
# then it can't be out-of-date. We assume that if
- # the t-p-u package has produced any binaries for
+ # the (t-)p-u package has produced any binaries for
# this architecture then it is ok
if not src in self.sources["testing"] or \
@@ -1325,7 +1327,11 @@ class Britney:
(len([x for x in self.sources[suite][src][BINARIES] if x.endswith("/"+arch) and self.binaries[suite][arch][0][x.split("/")[0]][ARCHITECTURE] != 'all' ]) > 0):
continue
- text = "Not yet built on %s (relative to testing)" % (urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch)
+ if suite == 'tpu':
+ base = 'testing'
+ else:
+ base = 'stable'
+ text = "Not yet built on %s (relative to testing)" % (urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch, base)
if arch in self.options.fucked_arches.split():
text = text + " (but %s isn't keeping up, so never mind)" % (arch)
@@ -1431,8 +1437,8 @@ class Britney:
excuse.addhtml("Should ignore, but forced by %s" % (self.hints["force"][src][1]))
update_candidate = True
- # if the suite is testing-proposed-updates, the package needs an explicit approval in order to go in
- if suite == "tpu":
+ # if the suite is *-proposed-updates, the package needs an explicit approval in order to go in
+ if suite in ['tpu', 'pu']:
key = "%s_%s" % (src, source_u[VERSION])
if src in self.hints["approve"] and \
self.same_source(source_u[VERSION], self.hints["approve"][src][0]):
@@ -1546,18 +1552,19 @@ class Britney:
if should_upgrade_src(pkg, 'unstable'):
upgrade_me.append(pkg)
- # for every source package in testing-proposed-updates, check if it should be upgraded
- for pkg in sources['tpu']:
- # if the source package is already present in testing,
- # check if it should be upgraded for every binary package
- if pkg in sources['testing']:
- for arch in architectures:
- if should_upgrade_srcarch(pkg, arch, 'tpu'):
- upgrade_me.append("%s/%s_tpu" % (pkg, arch))
+ # for every source package in *-proposed-updates, check if it should be upgraded
+ for suite in ['pu', 'tpu']:
+ for pkg in sources[suite]:
+ # if the source package is already present in testing,
+ # check if it should be upgraded for every binary package
+ if pkg in sources['testing']:
+ for arch in architectures:
+ if should_upgrade_srcarch(pkg, arch, suite):
+ upgrade_me.append("%s/%s_%s" % (pkg, arch, suite))
- # check if the source package should be upgraded
- if should_upgrade_src(pkg, 'tpu'):
- upgrade_me.append("%s_tpu" % pkg)
+ # check if the source package should be upgraded
+ if should_upgrade_src(pkg, suite):
+ upgrade_me.append("%s_%s" % (pkg, suite))
# process the `remove' hints, if the given package is not yet in upgrade_me
for src in self.hints["remove"].keys():
@@ -2026,15 +2033,21 @@ class Britney:
pkg_name, arch = pkg.split("/")
if arch.endswith("_tpu"):
arch, suite = arch.split("_")
+ elif arch.endswith("_pu"):
+ arch, suite = arch.split("_")
else: suite = "unstable"
# removal of source packages = "-