]> git.decadent.org.uk Git - dak.git/blobdiff - katie.py
2004-06-10 James Troup <james@nocrew.org> * katie.py (Katie.cross_suite_version_che...
[dak.git] / katie.py
index d191904487942918ade08979a21b58df7fb82fcc..b6428d4c0954a5dda0cc7661f57814f70fccbe85 100644 (file)
--- a/katie.py
+++ b/katie.py
@@ -2,7 +2,7 @@
 
 # Utility functions for katie
 # Copyright (C) 2001, 2002, 2003, 2004  James Troup <james@nocrew.org>
-# $Id: katie.py,v 1.46 2004-04-03 02:49:46 troup Exp $
+# $Id: katie.py,v 1.48 2004-06-17 15:02:02 troup Exp $
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -775,10 +775,10 @@ distribution.""";
                 existent_version = entry[0];
                 suite = entry[1];
                 if suite in must_be_newer_than and \
-                   apt_pkg.VersionCompare(new_version, existent_version) != 1:
+                   apt_pkg.VersionCompare(new_version, existent_version) < 1:
                     self.reject("%s: old version (%s) in %s >= new version (%s) targeted at %s." % (file, existent_version, suite, new_version, target_suite));
                 if suite in must_be_older_than and \
-                   apt_pkg.VersionCompare(new_version, existent_version) != -1:
+                   apt_pkg.VersionCompare(new_version, existent_version) > -1:
                     self.reject("%s: old version (%s) in %s <= new version (%s) targeted at %s." % (file, existent_version, suite, new_version, target_suite));
 
     ################################################################################
@@ -851,12 +851,11 @@ SELECT s.version, su.suite_name FROM source s, src_associations sa, suite su
                 actual_size = int(files[dsc_file]["size"]);
                 found = "%s in incoming" % (dsc_file)
                 # Check the file does not already exist in the archive
-                q = self.projectB.query("SELECT size, md5sum, filename FROM files WHERE filename LIKE '%%%s%%'" % (dsc_file));
-
+                q = self.projectB.query("SELECT f.size, f.md5sum, l.path, f.filename FROM files f, location l WHERE f.filename LIKE '%%%s%%' AND l.id = f.location" % (dsc_file));
                 ql = q.getresult();
                 # Strip out anything that isn't '%s' or '/%s$'
                 for i in ql:
-                    if i[2] != dsc_file and i[2][-(len(dsc_file)+1):] != '/'+dsc_file:
+                    if i[3] != dsc_file and i[3][-(len(dsc_file)+1):] != '/'+dsc_file:
                         ql.remove(i);
 
                 # "[katie] has not broken them.  [katie] has fixed a
@@ -878,6 +877,7 @@ SELECT s.version, su.suite_name FROM source s, src_associations sa, suite su
                                files[dsc_file]["md5sum"] == i[1]:
                                 self.reject("ignoring %s, since it's already in the archive." % (dsc_file), "Warning: ");
                                 del files[dsc_file];
+                                self.pkg.orig_tar_gz = i[2] + i[3];
                                 match = 1;
 
                     if not match: