]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote branch 'odyx/win32-loader-autobyhand' into merge
authorJoerg Jaspert <joerg@debian.org>
Wed, 26 Jan 2011 22:22:01 +0000 (23:22 +0100)
committerJoerg Jaspert <joerg@debian.org>
Wed, 26 Jan 2011 22:22:01 +0000 (23:22 +0100)
* odyx/win32-loader-autobyhand:
  Remove version and arch from all win32-loader byhand files.
  Chmod the win32-loader byhand files to 0644

Signed-off-by: Joerg Jaspert <joerg@debian.org>
dak/queue_report.py

index e2d8578b8865a902ff32a308b52af97743b050c1..9c349892cea4f68c8e82d11ace13d222c903027c 100755 (executable)
@@ -43,6 +43,7 @@ from daklib.queue import Upload
 from daklib.dbconn import DBConn, has_new_comment, DBChange, DBSource, get_uid_from_fingerprint
 from daklib.textutils import fix_maintainer
 from daklib.dak_exceptions import *
+import debianbts
 
 Cnf = None
 direction = []
@@ -264,7 +265,30 @@ def table_footer(type):
     print "</tbody></table>"
 
 
-def table_row(source, version, arch, last_mod, maint, distribution, closes, fingerprint, sponsor, changedby):
+def find_bug_severities(bugnrs):
+    """Take a list of bug numbers and
+    return a dictionary with bug number - severity pairs."""
+    statuses = None
+    try: statuses = debianbts.get_status(bugnrs)
+    except Exception:
+        return None
+    severities = {}
+    for bug_status in statuses:
+        severities[bug_status.bug_num] = bug_status.severity
+    return severities
+
+def rcbug_close_check(closes):
+    """Take a list of bug numbers and determine if at least one of them
+    is release critical."""
+    severity_list = find_bug_severities(closes)
+    if severity_list:
+        severities = severity_list.values()
+        return ('critical' in severities) or \
+               ('serious' in severities) or \
+               ('grave' in severities)
+    return False
+
+def table_row(source, version, arch, last_mod, maint, distribution, closes, fingerprint, sponsor, changedby, fixes_rcbug):
 
     global row_number
 
@@ -274,6 +298,9 @@ def table_row(source, version, arch, last_mod, maint, distribution, closes, fing
         if dist == "experimental":
             trclass = "exp"
 
+    if fixes_rcbug:
+        trclass = "rcfix"
+
     if not len(session.query(DBSource).filter_by(source = source).all()):
         trclass += " binNEW"
     session.commit()
@@ -443,7 +470,8 @@ def process_changes_files(changes_files, type, log):
             note = " | [N]"
         else:
             note = ""
-        entries.append([source, binary, version_list, arch_list, note, last_modified, maint, distribution, closes, fingerprint, sponsor, changedby, filename])
+        fixes_rcbug = rcbug_close_check(closes)
+        entries.append([source, binary, version_list, arch_list, note, last_modified, maint, distribution, closes, fingerprint, sponsor, changedby, filename, fixes_rcbug])
 
     # direction entry consists of "Which field, which direction, time-consider" where
     # time-consider says how we should treat last_modified. Thats all.
@@ -485,7 +513,7 @@ def process_changes_files(changes_files, type, log):
     if Cnf.has_key("Queue-Report::Options::822"):
         # print stuff out in 822 format
         for entry in entries:
-            (source, binary, version_list, arch_list, note, last_modified, maint, distribution, closes, fingerprint, sponsor, changedby, changes_file) = entry
+            (source, binary, version_list, arch_list, note, last_modified, maint, distribution, closes, fingerprint, sponsor, changedby, changes_file, fixes_rcbug) = entry
 
             # We'll always have Source, Version, Arch, Mantainer, and Dist
             # For the rest, check to see if we have them, then print them out
@@ -528,8 +556,8 @@ def process_changes_files(changes_files, type, log):
             source_count = len(per_source_items)
             table_header(type.upper(), source_count, total_count)
             for entry in entries:
-                (source, binary, version_list, arch_list, note, last_modified, maint, distribution, closes, fingerprint, sponsor, changedby, undef) = entry
-                table_row(source, version_list, arch_list, time_pp(last_modified), maint, distribution, closes, fingerprint, sponsor, changedby)
+                (source, binary, version_list, arch_list, note, last_modified, maint, distribution, closes, fingerprint, sponsor, changedby, undef, fixes_rcbug) = entry
+                table_row(source, version_list, arch_list, time_pp(last_modified), maint, distribution, closes, fingerprint, sponsor, changedby, entries, fixes_rcbug)
             table_footer(type.upper())
     elif not Cnf.has_key("Queue-Report::Options::822"):
     # The "normal" output without any formatting.
@@ -537,7 +565,7 @@ def process_changes_files(changes_files, type, log):
 
         msg = ""
         for entry in entries:
-            (source, binary, version_list, arch_list, note, last_modified, undef, undef, undef, undef, undef, undef, undef) = entry
+            (source, binary, version_list, arch_list, note, last_modified, undef, undef, undef, undef, undef, undef, undef, fixes_rcbug) = entry
             msg += format % (source, version_list, arch_list, note, time_pp(last_modified))
 
         if msg: