X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Futils.py;h=2cf6871c092e60089cda94ef72cde857231cef53;hb=3cab1066a3d166b418a4c85ade4b41937e3a850c;hp=efae7756527161b35cd377670fa6d4c3a4c8461f;hpb=05c66ff1004719368eb7dc54a4db1d632e8930a1;p=dak.git diff --git a/daklib/utils.py b/daklib/utils.py index efae7756..2cf6871c 100644 --- a/daklib/utils.py +++ b/daklib/utils.py @@ -59,7 +59,7 @@ from textutils import fix_maintainer from regexes import re_html_escaping, html_escaping, re_single_line_field, \ re_multi_line_field, re_srchasver, re_taint_free, \ re_re_mark, re_whitespace_comment, re_issource, \ - re_is_orig_source, re_build_dep_arch, re_parse_maintainer + re_build_dep_arch, re_parse_maintainer from formats import parse_format, validate_changes_format from srcformats import get_format_from_string @@ -1301,3 +1301,41 @@ def check_reverse_depends(removals, suite, arches=None, session=None, cruft=Fals print return dep_problem + +################################################################################ + +def parse_built_using(control): + """source packages referenced via Built-Using + + @type control: dict-like + @param control: control file to take Built-Using field from + + @rtype: list of (str, str) + @return: list of (source_name, source_version) pairs + """ + built_using = control.get('Built-Using', None) + if built_using is None: + return [] + + bu = [] + for dep in apt_pkg.parse_depends(built_using): + assert len(dep) == 1, 'Alternatives are not allowed in Built-Using field' + source_name, source_version, comp = dep[0] + assert comp == '=', 'Built-Using must contain strict dependencies' + bu.append((source_name, source_version)) + + return bu + +################################################################################ + +def is_in_debug_section(control): + """binary package is a debug package + + @type control: dict-like + @param control: control file of binary package + + @rtype Boolean + @return: True if the binary package is a debug package + """ + section = control['Section'].split('/', 1)[-1] + return section == "debug"