# Utility functions for katie
# Copyright (C) 2001, 2002, 2003 James Troup <james@nocrew.org>
-# $Id: katie.py,v 1.38 2003-08-18 15:04:17 ajt Exp $
+# $Id: katie.py,v 1.43 2003-11-07 01:48:42 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
if files[file]["type"] == "deb":
summary += apt_pkg.ParseSection(apt_inst.debExtractControl(utils.open_file(file)))["Description"] + '\n';
else:
- files[file]["pool name"] = utils.poolify (changes["source"], files[file]["component"])
+ files[file]["pool name"] = utils.poolify (changes.get("source",""), files[file]["component"])
destination = self.Cnf["Dir::PoolRoot"] + files[file]["pool name"] + file
summary += file + "\n to " + destination + "\n"
Subst["__STABLE_WARNING__"] = "";
mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.bug-close");
utils.send_mail (mail_message);
- if action:
- self.Logger.log(["closing bugs"]+bugs);
+ if action:
+ self.Logger.log(["closing bugs"]+bugs);
else: # NMU
summary += "Setting bugs to severity fixed: ";
return;
summary = "";
- for file in files.keys():
+ file_keys = files.keys();
+ file_keys.sort();
+ for file in file_keys:
if not files[file].has_key("new") and files[file]["type"] == "deb":
section = files[file]["section"];
override_section = files[file]["override section"];
pkg = self.pkg;
reason_filename = pkg.changes_file[:-8] + ".reason";
- reject_filename = Cnf["Dir::Queue::Reject"] + '/' + reason_filename;
+ reason_filename = Cnf["Dir::Queue::Reject"] + '/' + reason_filename;
# Move all the files into the reject directory
reject_files = pkg.files.keys() + [pkg.changes_file];
# If we fail here someone is probably trying to exploit the race
# so let's just raise an exception ...
- if os.path.exists(reject_filename):
- os.unlink(reject_filename);
- fd = os.open(reject_filename, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0644);
+ if os.path.exists(reason_filename):
+ os.unlink(reason_filename);
+ reason_file = os.open(reason_filename, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0644);
if not manual:
Subst["__REJECTOR_ADDRESS__"] = Cnf["Dinstall::MyEmailAddress"];
Subst["__MANUAL_REJECT_MESSAGE__"] = "";
Subst["__CC__"] = "X-Katie-Rejection: automatic (moo)";
- os.write(fd, reject_message);
- os.close(fd);
+ os.write(reason_file, reject_message);
reject_mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/katie.rejected");
else:
# Build up the rejection email
Subst["__MANUAL_REJECT_MESSAGE__"] = reject_message;
Subst["__CC__"] = "Cc: " + Cnf["Dinstall::MyEmailAddress"];
reject_mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/katie.rejected");
-
# Write the rejection email out as the <foo>.reason file
- os.write(fd, reject_mail_message);
- os.close(fd);
+ os.write(reason_file, reject_mail_message);
+
+ os.close(reason_file);
# Send the rejection mail if appropriate
if not Cnf["Dinstall::Options::No-Mail"]:
files[file]["version"],
files[file]["architecture"]))
if q.getresult():
- self.reject("can not overwrite existing copy of '%s' already in the archive." % (file));
+ self.reject("%s: can not overwrite existing copy already in the archive." % (file));
return self.reject_message;