# Utility functions for katie
# Copyright (C) 2001, 2002, 2003, 2004, 2005 James Troup <james@nocrew.org>
-# $Id: katie.py,v 1.53 2005-01-18 22:18:55 troup Exp $
+# $Id: katie.py,v 1.56 2005-11-25 06:59:45 ajt 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
re_isanum = re.compile (r"^\d+$");
re_default_answer = re.compile(r"\[(.*)\]");
re_fdnic = re.compile(r"\n\n");
-re_bin_only_nmu_of_mu = re.compile(r"\.\d+\.\d+$");
-re_bin_only_nmu_of_nmu = re.compile(r"\.\d+$");
+re_bin_only_nmu = re.compile(r"\+b\d+$");
###############################################################################
## Special support to enable clean auto-building of accepted packages
self.projectB.query("BEGIN WORK");
for suite in changes["distribution"].keys():
- if suite not in Cnf.ValueList("Dinstall::AcceptedAutoBuildSuites"):
+ if suite not in Cnf.ValueList("Dinstall::QueueBuildSuites"):
continue;
suite_id = db_access.get_suite_id(suite);
- dest_dir = Cnf["Dir::AcceptedAutoBuild"];
- if Cnf.FindB("Dinstall::SecurityAcceptedAutoBuild"):
+ dest_dir = Cnf["Dir::QueueBuild"];
+ if Cnf.FindB("Dinstall::SecurityQueueBuild"):
dest_dir = os.path.join(dest_dir, suite);
for file in file_keys:
src = os.path.join(Cnf["Dir::Queue::Accepted"], file);
dest = os.path.join(dest_dir, file);
- if Cnf.FindB("Dinstall::SecurityAcceptedAutoBuild"):
+ if Cnf.FindB("Dinstall::SecurityQueueBuild"):
# Copy it since the original won't be readable by www-data
utils.copy(src, dest);
else:
# Create a symlink to it
os.symlink(src, dest);
# Add it to the list of packages for later processing by apt-ftparchive
- self.projectB.query("INSERT INTO accepted_autobuild (suite, filename, in_accepted) VALUES (%s, '%s', 't')" % (suite_id, dest));
+ self.projectB.query("INSERT INTO queue_build (suite, queue, filename, in_queue) VALUES (%s, 0, '%s', 't')" % (suite_id, dest));
# If the .orig.tar.gz is in the pool, create a symlink to
# it (if one doesn't already exist)
if self.pkg.orig_tar_id:
src = os.path.join(ql[0][0], ql[0][1]);
os.symlink(src, dest);
# Add it to the list of packages for later processing by apt-ftparchive
- self.projectB.query("INSERT INTO accepted_autobuild (suite, filename, in_accepted) VALUES (%s, '%s', 't')" % (suite_id, dest));
+ self.projectB.query("INSERT INTO queue_build (suite, queue, filename, in_queue) VALUES (%s, 0, '%s', 't')" % (suite_id, dest));
# if it does, update things to ensure it's not removed prematurely
else:
- self.projectB.query("UPDATE accepted_autobuild SET in_accepted = 't', last_used = NULL WHERE filename = '%s' AND suite = %s" % (dest, suite_id));
+ self.projectB.query("UPDATE queue_build SET in_queue = 't', last_used = NULL WHERE filename = '%s' AND suite = %s" % (dest, suite_id));
self.projectB.query("COMMIT WORK");
continue
# Try (2)
- orig_source_version = re_bin_only_nmu_of_mu.sub('', source_version)
- if orig_source_version in ql:
- continue
-
- # Try (3)
- orig_source_version = re_bin_only_nmu_of_nmu.sub('', source_version)
+ orig_source_version = re_bin_only_nmu.sub('', source_version)
if orig_source_version in ql:
continue
#
# And - we really should complain to the dorks who configured dak
self.reject("%s is mapped to, but not enhanced by %s - adding anyways" % (suite, addsuite), "Warning: ")
- self.pkg.changes["distribution"][addsuite] = 1
+ self.pkg.changes.setdefault("propdistribution", {})
+ self.pkg.changes["propdistribution"][addsuite] = 1
cansave = 1
elif not target_version:
# not targets_version is true when the package is NEW
self.reject("Won't propogate NEW packages.")
elif apt_pkg.VersionCompare(new_version, add_version) < 0:
# propogation would be redundant. no need to reject though.
- #self.reject("ignoring versionconflict: %s: old version (%s) in %s <= new version (%s) targeted at %s." % (file, existent_version, suite, new_version, target_suite), "Warning: ");
- self.reject("foo", "Warning: ")
+ self.reject("ignoring versionconflict: %s: old version (%s) in %s <= new version (%s) targeted at %s." % (file, existent_version, suite, new_version, target_suite), "Warning: ")
cansave = 1
elif apt_pkg.VersionCompare(new_version, add_version) > 0 and \
- apt_pkg.VersionCompare(add_version, target_version) == 0:
+ apt_pkg.VersionCompare(add_version, target_version) >= 0:
# propogate!!
- self.pkg.changes["distribution"][addsuite] = 1
+ self.reject("Propogating upload to %s" % (addsuite), "Warning: ")
+ self.pkg.changes.setdefault("propdistribution", {})
+ self.pkg.changes["propdistribution"][addsuite] = 1
cansave = 1
if not cansave:
- self.reject("%s: old version (%s) in %s <= new version (%s) targeted at %s." % (file, existent_version, suite, new_version, target_suite));
+ self.reject("%s: old version (%s) in %s <= new version (%s) targeted at %s." % (file, existent_version, suite, new_version, target_suite))
################################################################################