# Utility functions for katie
# Copyright (C) 2001, 2002, 2003, 2004, 2005 James Troup <james@nocrew.org>
-# $Id: katie.py,v 1.56 2005-11-25 06:59:45 ajt Exp $
+# $Id: katie.py,v 1.59 2005-12-17 10:57:03 rmurray 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_default_answer = re.compile(r"\[(.*)\]");
re_fdnic = re.compile(r"\n\n");
re_bin_only_nmu = re.compile(r"\+b\d+$");
-
###############################################################################
# Convenience wrapper to carry around all the package information in
changes_file[:-8]+".debinfo");
os.rename(temp_filename, filename);
- ## Special support to enable clean auto-building of accepted packages
+ self.queue_build("accepted", Cnf["Dir::Queue::Accepted"])
+
+ ###########################################################################
+
+ def queue_build (self, queue, path):
+ Cnf = self.Cnf
+ Subst = self.Subst
+ files = self.pkg.files
+ changes = self.pkg.changes
+ changes_file = self.pkg.changes_file
+ dsc = self.pkg.dsc
+ file_keys = files.keys()
+
+ ## Special support to enable clean auto-building of queued packages
+ queue_id = db_access.get_or_set_queue_id(queue)
+
self.projectB.query("BEGIN WORK");
for suite in changes["distribution"].keys():
if suite not in Cnf.ValueList("Dinstall::QueueBuildSuites"):
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);
+ src = os.path.join(path, file);
dest = os.path.join(dest_dir, file);
if Cnf.FindB("Dinstall::SecurityQueueBuild"):
# Copy it since the original won't be readable by www-data
# 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 queue_build (suite, queue, filename, in_queue) VALUES (%s, 0, '%s', 't')" % (suite_id, dest));
+ self.projectB.query("INSERT INTO queue_build (suite, queue, filename, in_queue) VALUES (%s, %s, '%s', 't')" % (suite_id, queue_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 queue_build (suite, queue, filename, in_queue) VALUES (%s, 0, '%s', 't')" % (suite_id, dest));
+ self.projectB.query("INSERT INTO queue_build (suite, queue, filename, in_queue) VALUES (%s, %s, '%s', 't')" % (suite_id, queue_id, dest));
# if it does, update things to ensure it's not removed prematurely
else:
self.projectB.query("UPDATE queue_build SET in_queue = 't', last_used = NULL WHERE filename = '%s' AND suite = %s" % (dest, suite_id));
# upload being processed.
#
# (1) exact match => 1.0-3
- # (2) Bin-only NMU of an MU => 1.0-3.0.1
- # (3) Bin-only NMU of a sourceful-NMU => 1.0-3.1.1
+ # (2) Bin-only NMU => 1.0-3+b1 , 1.0-3.1+b1
def source_exists (self, package, source_version, suites = ["any"]):
okay = 1
# No source found...
okay = 0
+ break
return okay
################################################################################