]> err.no Git - dak/commitdiff
2004-04-19 James Troup <james@nocrew.org> * jennifer (check_source): handle failure...
authorJames Troup <james@nocrew.org>
Mon, 19 Apr 2004 16:04:34 +0000 (16:04 +0000)
committerJames Troup <james@nocrew.org>
Mon, 19 Apr 2004 16:04:34 +0000 (16:04 +0000)
TODO
jennifer

diff --git a/TODO b/TODO
index 2b056303ceaac76eed511b448ae18a11ae4118ac..4667d3566b1234c152b083bd1f110e838bf50365 100644 (file)
--- a/TODO
+++ b/TODO
@@ -27,6 +27,16 @@ queue/approved
 Others
 ------
 
+  o we don't handle the case where an identical orig.tar.gz is
+   mentioned in the .changes, but not in unchecked; but should we
+   care?
+
+  o madison could do better sanity checking for -g/-G (e.g. not more
+   than one suite, etc.)
+
+  o use python2.2-tarfile (once it's in stable?) to check orig.tar.gz
+   timestamps too.
+
   o need to decide on whether we're tying for most errors at once.. if
     so (probably) then make sure code doesn't assume variables exist and
     either way do something about checking error code of check_dsc and
index 14b5b6802481a0433abca0bd22357869cc060d92..b11935618085b215e948c387b6d328230bfb37cd 100755 (executable)
--- a/jennifer
+++ b/jennifer
@@ -2,7 +2,7 @@
 
 # Checks Debian packages from Incoming
 # Copyright (C) 2000, 2001, 2002, 2003, 2004  James Troup <james@nocrew.org>
-# $Id: jennifer,v 1.47 2004-04-03 02:49:46 troup Exp $
+# $Id: jennifer,v 1.48 2004-04-19 16:04:34 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
@@ -47,7 +47,7 @@ re_strip_revision = re.compile(r"-([^-]+)$");
 ################################################################################
 
 # Globals
-jennifer_version = "$Revision: 1.47 $";
+jennifer_version = "$Revision: 1.48 $";
 
 Cnf = None;
 Options = None;
@@ -794,7 +794,22 @@ def check_source():
 
     # Move back and cleanup the temporary tree
     os.chdir(cwd);
-    shutil.rmtree(tmpdir);
+    try:
+        shutil.rmtree(tmpdir);
+    except OSError, e:
+        if errno.errorcode[e.errno] != 'EACCES':
+            utils.fubar("%s: couldn't remove tmp dir for source tree." % (dsc["source"]));
+
+        reject("%s: source tree could not be cleanly removed." % (dsc["source"]));
+        # We probably have u-r or u-w directories so chmod everything
+        # and try again.
+        cmd = "chmod -R u+rwx %s" % (tmpdir)
+        result = os.system(cmd)
+        if result != 0:
+            utils.fubar("'%s' failed with result %s." % (cmd, result));
+        shutil.rmtree(tmpdir);
+    except:
+        utils.fubar("%s: couldn't remove tmp dir for source tree." % (dsc["source"]));
 
 ################################################################################