- print "no control info"
- else:
- for key in control_keys :
- output = " " + key + ": "
- if key == 'Depends':
- output += create_depends_string(depends);
- elif key == 'Recommends':
- output += create_depends_string(recommends);
- elif key == 'Section':
- output += section;
- elif key == 'Architecture':
- output += arch;
- elif key == 'Maintainer':
- output += maintainer;
- elif key == 'Description':
- desc = control.Find(key);
- desc = re_newlinespace.sub('\n ', desc);
- output += desc;
- else:
- output += control.Find(key);
- print output;
-
-def do_command (command, filename):
- o = os.popen("%s %s" % (command, filename));
- print o.read();
-
-def print_copyright (deb_filename):
- package = re_package.sub(r'\1', deb_filename);
- o = os.popen("ar p %s data.tar.gz | tar tzvf - | egrep 'usr(/share)?/doc/[^/]*/copyright' | awk '{ print $6 }' | head -n 1" % (deb_filename));
- copyright = o.read()[:-1];
-
- if copyright == "":
- print "WARNING: No copyright found, please check package manually."
- return;
-
- doc_directory = re_doc_directory.sub(r'\1', copyright);
+ 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 == '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)