+ to_print = ""
+ for package in package_relations:
+ for relation in package_relations[package]:
+ to_print += "%-15s: (%s) %s\n" % (package, relation, package_relations[package][relation])
+
+ package_relations.clear()
+ return foldable_output("Package relations", "relations", to_print)
+
+def output_deb_info(suite, filename, packagename, session = None):
+ (control, control_keys, section, predepends, depends, recommends, arch, maintainer) = read_control(filename)
+
+ if control == '':
+ return formatted_text("no control info")
+ to_print = ""
+ if not package_relations.has_key(packagename):
+ package_relations[packagename] = {}
+ for key in control_keys :
+ if key == 'Pre-Depends':
+ field_value = create_depends_string(suite, predepends, session)
+ package_relations[packagename][key] = field_value
+ elif key == 'Depends':
+ field_value = create_depends_string(suite, depends, session)
+ package_relations[packagename][key] = field_value
+ elif key == 'Recommends':
+ field_value = create_depends_string(suite, recommends, session)
+ package_relations[packagename][key] = field_value
+ elif key == 'Section':
+ field_value = section
+ elif key == 'Architecture':
+ field_value = arch
+ elif key == 'Maintainer':
+ field_value = maintainer
+ elif key == 'Homepage':
+ field_value = escape_if_needed(control.find(key))
+ if use_html:
+ field_value = '<a href="%s" rel="nofollow">%s</a>' % \
+ (field_value, field_value)
+ elif key == 'Description':
+ if use_html:
+ field_value = formatted_text(control.find(key), strip=True)
+ else:
+ desc = control.find(key)
+ desc = re_newlinespace.sub('\n ', desc)
+ field_value = escape_if_needed(desc)
+ else:
+ field_value = escape_if_needed(control.find(key))
+ to_print += " "+format_field(key,field_value)+'\n'
+ return to_print
+
+def do_command (command, escaped=False):
+ process = daklib.daksubprocess.Popen(command, stdout=subprocess.PIPE)
+ o = process.stdout
+ try:
+ if escaped:
+ return escaped_text(o.read())
+ else:
+ return formatted_text(o.read())
+ finally:
+ process.wait()
+
+def do_lintian (filename):
+ cnf = Config()
+ cmd = []
+
+ user = cnf.get('Dinstall::UnprivUser') or None
+ if user is not None:
+ cmd.extend(['sudo', '-H', '-u', user])
+
+ color = 'always'
+ if use_html:
+ color = 'html'
+
+ cmd.extend(['lintian', '--show-overrides', '--color', color, "--", filename])
+
+ return do_command(cmd, escaped=True)
+
+def get_copyright (deb_filename):
+ global printed
+
+ package = re_package.sub(r'\1', os.path.basename(deb_filename))
+ o = os.popen("dpkg-deb -c %s | egrep 'usr(/share)?/doc/[^/]*/copyright' | awk '{print $6}' | head -n 1" % (deb_filename))
+ cright = o.read()[:-1]
+
+ if cright == "":
+ return formatted_text("WARNING: No copyright found, please check package manually.")
+
+ doc_directory = re_doc_directory.sub(r'\1', cright)