for i in [ "help" ]:
if not cnf.has_key("Cruft-Report::Options::%s" % (i)):
cnf["Cruft-Report::Options::%s" % (i)] = ""
- cnf["Cruft-Report::Options::Suite"] = cnf["Dinstall::DefaultSuite"]
+
+ cnf["Cruft-Report::Options::Suite"] = cnf.get("Dinstall::DefaultSuite", "unstable")
if not cnf.has_key("Cruft-Report::Options::Mode"):
cnf["Cruft-Report::Options::Mode"] = "daily"
source_versions = {}
anais_output = ""
- duplicate_bins = {}
nfu_packages = {}
bins_in_suite = get_suite_binaries(suite, session)
# Checks based on the Sources files
- components = cnf.ValueList("Suite::%s::Components" % (suite_name))
+ components = get_component_names(session)
for component in components:
filename = "%s/dists/%s/%s/source/Sources.gz" % (cnf["Dir::Root"], suite_name, component)
# apt_pkg.ParseTagFile needs a real file handle and can't handle a GzipFile instance...
if "anais" in checks:
anais_output += do_anais(architecture, binaries_list, source, session)
- # Check for duplicated packages and build indices for checking "no source" later
+ # build indices for checking "no source" later
source_index = component + '/' + source
- #if src_pkgs.has_key(source):
- # print " %s is a duplicated source package (%s and %s)" % (source, source_index, src_pkgs[source])
src_pkgs[source] = source_index
for binary in binaries_list:
- if bin_pkgs.has_key(binary):
- key_list = [ source, bin_pkgs[binary] ]
- key_list.sort()
- key = '_'.join(key_list)
- duplicate_bins.setdefault(key, [])
- duplicate_bins[key].append(binary)
bin_pkgs[binary] = source
source_binaries[source] = binaries
source_versions[source] = source_version
nbs[source].setdefault(package, {})
nbs[source][package][version] = ""
else:
- previous_source = bin_pkgs[package]
- if previous_source != source:
- key_list = [ source, previous_source ]
- key_list.sort()
- key = '_'.join(key_list)
- duplicate_bins.setdefault(key, [])
- if package not in duplicate_bins[key]:
- duplicate_bins[key].append(package)
if "nfu" in checks:
if package in nfu_entries and \
version != source_versions[source]: # only suggest to remove out-of-date packages
print
if "bms" in checks:
- print "Built from multiple source packages"
- print "-----------------------------------"
- print
- keys = duplicate_bins.keys()
- keys.sort()
- for key in keys:
- (source_a, source_b) = key.split("_")
- print " o %s & %s => %s" % (source_a, source_b, ", ".join(duplicate_bins[key]))
- print
+ report_multiple_source(suite)
if "anais" in checks:
print "Architecture Not Allowed In Source"