Only output arch:all packages which correspond to the testing source

If an architecture is marked as fucked, britney's package list for that
architecture may include arch:all packages for an older version. When
outputting the result file, we should not include those packages as
they will lead to import failures.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
bzr-import-20160707
Adam D. Barratt 11 years ago
parent 6fd11db7e9
commit d6adff3011

@ -29,7 +29,8 @@ import time
from migrationitem import MigrationItem, UnversionnedMigrationItem from migrationitem import MigrationItem, UnversionnedMigrationItem
from consts import (VERSION, BINARIES, PROVIDES, DEPENDS, CONFLICTS, from consts import (VERSION, BINARIES, PROVIDES, DEPENDS, CONFLICTS,
RDEPENDS, RCONFLICTS, ARCHITECTURE, SECTION) RDEPENDS, RCONFLICTS, ARCHITECTURE, SECTION,
SOURCE, SOURCEVER)
binnmu_re = re.compile(r'^(.*)\+b\d+$') binnmu_re = re.compile(r'^(.*)\+b\d+$')
@ -385,6 +386,15 @@ def write_heidi(filename, sources_t, packages_t,
pkgv = pkg[VERSION] pkgv = pkg[VERSION]
pkgarch = pkg[ARCHITECTURE] or 'all' pkgarch = pkg[ARCHITECTURE] or 'all'
pkgsec = pkg[SECTION] or 'faux' pkgsec = pkg[SECTION] or 'faux'
if pkg[SOURCEVER] and pkgarch == 'all' and \
pkg[SOURCEVER] != sources_t[pkg[SOURCE]][VERSION]:
# when architectures are marked as "fucked", their binary
# versions may be lower than those of the associated
# source package in testing. the binary package list for
# such architectures will include arch:all packages
# matching those older versions, but we only want the
# newer arch:all in testing
continue
f.write('%s %s %s %s\n' % (pkg_name, pkgv, pkgarch, pkgsec)) f.write('%s %s %s %s\n' % (pkg_name, pkgv, pkgarch, pkgsec))
# write sources # write sources

Loading…
Cancel
Save