import daklib.daksubprocess
from dbconn import DBConn, get_architecture, get_component, get_suite, \
get_override_type, Keyring, session_wrapper, \
- get_active_keyring_paths, get_primary_keyring_path, \
+ get_active_keyring_paths, \
get_suite_architectures, get_or_set_metadatakey, DBSource, \
Component, Override, OverrideType
from sqlalchemy import desc
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