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>
master
Adam D. Barratt 11 years ago
parent 7966ceae1a
commit 2f753eab70

@ -29,7 +29,8 @@ import time
from migrationitem import MigrationItem, UnversionnedMigrationItem
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+$')
@ -385,6 +386,15 @@ def write_heidi(filename, sources_t, packages_t,
pkgv = pkg[VERSION]
pkgarch = pkg[ARCHITECTURE] or 'all'
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))
# write sources

Loading…
Cancel
Save