]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/utils.py
Add support for detached upstream signatures
[dak.git] / daklib / utils.py
index 00699ec410f6963360166f032c3e41a3f4e5d5a3..5ac015cd0864398d5e1f99ad71a27fb4547aaf0f 100644 (file)
@@ -316,8 +316,10 @@ def check_dsc_files(dsc_filename, dsc, dsc_files):
         (r'tar.gz',                    ('native_tar_gz', 'native_tar')),
         (r'debian\.tar\.(gz|bz2|xz)',  ('debian_tar',)),
         (r'orig\.tar\.(gz|bz2|xz)',    ('orig_tar',)),
+        (r'orig\.tar\.(gz|bz2|xz)\.asc', ('orig_tar_sig',)),
         (r'tar\.(gz|bz2|xz)',          ('native_tar',)),
         (r'orig-.+\.tar\.(gz|bz2|xz)', ('more_orig_tar',)),
+        (r'orig-.+\.tar\.(gz|bz2|xz)\.asc', ('more_orig_tar_sig',)),
     )
 
     for f in dsc_files:
@@ -341,7 +343,7 @@ def check_dsc_files(dsc_filename, dsc, dsc_files):
             reject("%s: unexpected source file '%s'" % (dsc_filename, f))
 
     # Check for multiple files
-    for file_type in ('orig_tar', 'native_tar', 'debian_tar', 'debian_diff'):
+    for file_type in ('orig_tar', 'orig_tar_sig', 'native_tar', 'debian_tar', 'debian_diff'):
         if has[file_type] > 1:
             rejmsg.append("%s: lists multiple %s" % (dsc_filename, file_type))
 
@@ -1123,7 +1125,7 @@ def call_editor(text="", suffix=".txt"):
 
 ################################################################################
 
-def check_reverse_depends(removals, suite, arches=None, session=None, cruft=False, quiet=False):
+def check_reverse_depends(removals, suite, arches=None, session=None, cruft=False, quiet=False, include_arch_all=True):
     dbsuite = get_suite(suite, session)
     overridesuite = dbsuite
     if dbsuite.overridesuite is not None:
@@ -1144,7 +1146,11 @@ def check_reverse_depends(removals, suite, arches=None, session=None, cruft=Fals
         'metakey_d_id': metakey_d.key_id,
         'metakey_p_id': metakey_p.key_id,
     }
-    for architecture in all_arches | set(['all']):
+    if include_arch_all:
+        rdep_architectures = all_arches | set(['all'])
+    else:
+        rdep_architectures = all_arches
+    for architecture in rdep_architectures:
         deps = {}
         sources = {}
         virtual_packages = {}
@@ -1238,16 +1244,21 @@ def check_reverse_depends(removals, suite, arches=None, session=None, cruft=Fals
     all_broken = defaultdict(set)
     metakey_bd = get_or_set_metadatakey("Build-Depends", session)
     metakey_bdi = get_or_set_metadatakey("Build-Depends-Indep", session)
+    if include_arch_all:
+        metakey_ids = (metakey_bd.key_id, metakey_bdi.key_id)
+    else:
+        metakey_ids = (metakey_bd.key_id,)
+
     params = {
         'suite_id':    dbsuite.suite_id,
-        'metakey_ids': (metakey_bd.key_id, metakey_bdi.key_id),
+        'metakey_ids': metakey_ids,
     }
     statement = '''
         SELECT s.source, string_agg(sm.value, ', ') as build_dep
            FROM source s
            JOIN source_metadata sm ON s.id = sm.src_id
            WHERE s.id in
-               (SELECT source FROM src_associations
+               (SELECT src FROM newest_src_association
                    WHERE suite = :suite_id)
                AND sm.key_id in :metakey_ids
            GROUP BY s.id, s.source'''