]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_unchecked.py
when checking in queue directories, also check new proposed-updates queue dir. ...
[dak.git] / dak / process_unchecked.py
index 5b97b09e04371b683d29c6fd1e2ee4d304d2c088..ec649f0bb825258500cec14b20fc0062c46f7123 100755 (executable)
@@ -89,7 +89,7 @@ def init():
     if Options["Help"]:
         usage()
 
-    Upload = daklib.queue.Queue(Cnf)
+    Upload = daklib.queue.Upload(Cnf)
 
     changes = Upload.pkg.changes
     dsc = Upload.pkg.dsc
@@ -246,7 +246,7 @@ def check_changes():
     # Check there isn't already a changes file of the same name in one
     # of the queue directories.
     base_filename = os.path.basename(filename)
-    for dir in [ "Accepted", "Byhand", "Done", "New" ]:
+    for dir in [ "Accepted", "Byhand", "Done", "New", "ProposedUpdates" ]:
         if os.path.exists(Cnf["Dir::Queue::%s" % (dir) ]+'/'+base_filename):
             reject("%s: a file with this name already exists in the %s directory." % (base_filename, dir))
 
@@ -395,7 +395,7 @@ def check_files():
 
     for file in file_keys:
         # Ensure the file does not already exist in one of the accepted directories
-        for dir in [ "Accepted", "Byhand", "New" ]:
+        for dir in [ "Accepted", "Byhand", "New", "ProposedUpdates" ]:
             if os.path.exists(Cnf["Dir::Queue::%s" % (dir) ]+'/'+file):
                 reject("%s file already exists in the %s directory." % (file, dir))
         if not daklib.utils.re_taint_free.match(file):
@@ -594,7 +594,7 @@ def check_files():
 
             # Validate the component
             component = files[file]["component"]
-            component_id = database.get_component_id(component)
+            component_id = daklib.database.get_component_id(component)
             if component_id == -1:
                 reject("file '%s' has unknown component '%s'." % (file, component))
                 continue
@@ -609,14 +609,14 @@ def check_files():
 
             # Determine the location
             location = Cnf["Dir::Pool"]
-            location_id = database.get_location_id (location, component, archive)
+            location_id = daklib.database.get_location_id (location, component, archive)
             if location_id == -1:
                 reject("[INTERNAL ERROR] couldn't determine location (Component: %s, Archive: %s)" % (component, archive))
             files[file]["location id"] = location_id
 
             # Check the md5sum & size against existing files (if any)
             files[file]["pool name"] = daklib.utils.poolify (changes["source"], files[file]["component"])
-            files_id = database.get_files_id(files[file]["pool name"] + file, files[file]["size"], files[file]["md5sum"], files[file]["location id"])
+            files_id = daklib.database.get_files_id(files[file]["pool name"] + file, files[file]["size"], files[file]["md5sum"], files[file]["location id"])
             if files_id == -1:
                 reject("INTERNAL ERROR, get_files_id() returned multiple matches for %s." % (file))
             elif files_id == -2:
@@ -1036,12 +1036,15 @@ def action ():
     queue_info = {
          "New": { "is": is_new, "process": acknowledge_new },
          "Byhand" : { "is": is_byhand, "process": do_byhand },
+         "StableUpdate" : { "is": is_stableupdate, "process": do_stableupdate },
          "Unembargo" : { "is": is_unembargo, "process": queue_unembargo },
          "Embargo" : { "is": is_embargo, "process": queue_embargo },
     }
     queues = [ "New", "Byhand" ]
     if Cnf.FindB("Dinstall::SecurityQueueHandling"):
         queues += [ "Unembargo", "Embargo" ]
+    else:
+        queues += [ "StableUpdate" ]
 
     (prompt, answer) = ("", "XXX")
     if Options["No-Action"] or Options["Automatic"]:
@@ -1066,7 +1069,7 @@ def action ():
                 break
         if queue:
             print "%s for %s\n%s%s" % (
-                daklib.queue.upper(), ", ".join(changes["distribution"].keys()), 
+                queue.upper(), ", ".join(changes["distribution"].keys()), 
                 reject_message, summary),
             queuekey = queue[0].upper()
             if queuekey in "RQSA":
@@ -1173,6 +1176,24 @@ def queue_embargo (summary):
 
 ################################################################################
 
+def is_stableupdate ():
+    if changes["distribution"].has_key("proposed-updates"):
+       return 1
+    return 0
+
+def do_stableupdate (summary):
+    print "Moving to PROPOSED-UPDATES holding area."
+    Logger.log(["Moving to proposed-updates", pkg.changes_file]);
+
+    Upload.dump_vars(Cnf["Dir::Queue::ProposedUpdates"]);
+    move_to_dir(Cnf["Dir::Queue::ProposedUpdates"])
+
+    # Check for override disparities
+    Upload.Subst["__SUMMARY__"] = summary;
+    Upload.check_override();
+
+################################################################################
+
 def is_byhand ():
     for file in files.keys():
         if files[file].has_key("byhand"):