]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/queue_install.py
byhand-di: allow YYYYMMDD+<suite>x version numbers
[dak.git] / daklib / queue_install.py
index e9d2a4d3fc179830c40bbf9e08e9b0da6607adf3..b1c2f55e049a7deaab1e87a65b857c0437eb53d8 100755 (executable)
@@ -26,6 +26,7 @@ Utility functions for process-upload
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 import os
+from shutil import copyfile
 
 from daklib import utils
 from daklib.dbconn import *
@@ -34,24 +35,24 @@ from daklib.config import Config
 ################################################################################
 
 def package_to_suite(u, suite_name, session):
-    if not u.pkg.changes["distribution"].has_key(suite_name):
+    if suite_name not in u.pkg.changes["distribution"]:
         return False
 
-    ret = True
+    if 'source' in u.pkg.changes["architecture"]:
+        return True
 
-    if not u.pkg.changes["architecture"].has_key("source"):
-        q = session.query(SrcAssociation.sa_id)
-        q = q.join(Suite).filter_by(suite_name=suite_name)
-        q = q.join(DBSource).filter_by(source=u.pkg.changes['source'])
-        q = q.filter_by(version=u.pkg.changes['version']).limit(1)
+    q = session.query(Suite).filter_by(suite_name = suite_name). \
+        filter(Suite.sources.any( \
+            source = u.pkg.changes['source'], \
+            version = u.pkg.changes['version']))
 
-        # NB: Careful, this logic isn't what you would think it is
-        # Source is already in the target suite so no need to go to policy
-        # Instead, we don't move to the policy area, we just do an ACCEPT
-        if q.count() > 0:
-            ret = False
-
-    return ret
+    # NB: Careful, this logic isn't what you would think it is
+    # Source is already in the target suite so no need to go to policy
+    # Instead, we don't move to the policy area, we just do an ACCEPT
+    if q.count() > 0:
+        return False
+    else:
+        return True
 
 def package_to_queue(u, summary, short_summary, queue, chg, session, announce=None):
     cnf = Config()
@@ -109,7 +110,7 @@ def is_unembargo(u):
 
    if u.pkg.directory == disdir:
        if u.pkg.changes["architecture"].has_key("source"):
-           session.execute("INSERT INTO disembargo (package, version) VALUES (:package, :version)",
+           session.execute("INSERT INTO disembargo (package, version) VALUES (:source, :version)",
                            {'source': u.pkg.changes["source"],
                             'version': u.pkg.changes["version"]})
            session.commit()
@@ -129,7 +130,7 @@ def do_unembargo(u, summary, short_summary, chg, session=None):
         suite = get_suite(suite_name, session)
         for q in suite.copy_queues:
             for f in u.pkg.files.keys():
-                os.symlink(os.path.join(polq.path, f), os.path.join(q.path, f))
+                copyfile(os.path.join(polq.path, f), os.path.join(q.path, f))
 #
 #################################################################################
 #
@@ -155,7 +156,7 @@ def do_embargo(u, summary, short_summary, chg, session=None):
         suite = get_suite(suite_name, session)
         for q in suite.copy_queues:
             for f in u.pkg.files.keys():
-                os.symlink(os.path.join(polq.path, f), os.path.join(q.path, f))
+                copyfile(os.path.join(polq.path, f), os.path.join(q.path, f))
 
 ################################################################################