]> git.decadent.org.uk Git - dak.git/blobdiff - katie
auto-building support take 2
[dak.git] / katie
diff --git a/katie b/katie
index 9c3cb8075c95d02e2ff252dcf44adb70cfa1b766..08e6d4fa4158a2a714da927b57bb40b6806fb78e 100755 (executable)
--- a/katie
+++ b/katie
@@ -2,7 +2,7 @@
 
 # Installs Debian packages
 # Copyright (C) 2000, 2001  James Troup <james@nocrew.org>
-# $Id: katie,v 1.77 2002-04-02 01:03:53 troup Exp $
+# $Id: katie,v 1.79 2002-04-24 01:56:24 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
@@ -39,7 +39,7 @@ import db_access, katie, logging, utils;
 ###############################################################################
 
 # Globals
-katie_version = "$Revision: 1.77 $";
+katie_version = "$Revision: 1.79 $";
 
 Cnf = None;
 Options = None;
@@ -388,6 +388,31 @@ def install ():
     if changes["architecture"].has_key("source"):
         Urgency_Logger.log(dsc["source"], dsc["version"], changes["urgency"]);
 
+    # Undo the work done in katie.py(accept) to help auto-building
+    # from accepted.
+    if Cnf.get("Dinstall::SpecialAcceptedAutoBuild") and \
+       changes["distribution"].has_key("unstable"):
+        now_date = time.strftime("%Y-%m-%d %H:%M", time.localtime(time.time()));
+        projectB.query("BEGIN WORK");
+        for file in files.keys():
+            dest = os.path.join(Cnf["Dir::AcceptedAutoBuild"], file);
+            # Remove it from the list of packages for later processing by apt-ftparchive
+            projectB.query("UPDATE unstable_accepted SET in_accepted = 'f', last_used = '%s' WHERE filename = '%s'" % (now_date, dest));
+            # Update the symlink to point to the new location in the pool
+            pool_location = utils.poolify (changes["source"], files[file]["component"]);
+            src = os.path.join(Cnf["Dir::PoolDir"], pool_location, os.path.basename(file));
+            os.unlink(dest);
+            os.symlink(src, dest);
+        # Update last_used on any non-upload .orig.tar.gz symlink
+        if orig_tar_id:
+            # Determine the .orig.tar.gz file name
+            for dsc_file in dsc_files.keys():
+                if dsc_file[-12:] == ".orig.tar.gz":
+                    orig_tar_gz = os.path.join(Cnf["Dir::AcceptedAutoBuild"], dsc_file);
+            # Remove it from the list of packages for later processing by apt-ftparchive
+            projectB.query("UPDATE unstable_accepted SET in_accepted = 'f', last_used = '%s' WHERE filename = '%s'" % (now_date, orig_tar_gz));
+        projectB.query("COMMIT WORK");
+
     install_count = install_count + 1;
 
 ################################################################################
@@ -468,7 +493,6 @@ def stable_install (summary, short_summary):
         utils.send_mail(mail_message, "");
         Katie.announce(short_summary, 1)
 
-
     # Finally remove the .katie file
     katie_file = os.path.join(Cnf["Suite::Proposed-Updates::CopyKatie"], os.path.basename(Katie.pkg.changes_file[:-8]+".katie"));
     os.unlink(katie_file);