]> git.decadent.org.uk Git - dak.git/commitdiff
Hopefully fix permissions problems.
authorJames Troup <james@nocrew.org>
Tue, 19 Dec 2000 17:23:03 +0000 (17:23 +0000)
committerJames Troup <james@nocrew.org>
Tue, 19 Dec 2000 17:23:03 +0000 (17:23 +0000)
TODO
add_constraints.sql
apt.conf
contrib/fix.b [new file with mode: 0755]
katie
utils.py

diff --git a/TODO b/TODO
index ed959d74c565353d5da460154c3718215dc9d284..e8cbcd3d7eade3ce0e8d0deeef9d8d2e8f3cd05b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -12,6 +12,7 @@ Less Urgent
   o Optimize all the queries by using EXAMINE and building some INDEXs.
   o enclose all the setting SQL stuff in transactions (mostly done).
   o clear out maintainers table
+  o jenna needs to use order by to keep aj from going nutzo
 
   == 
 
index a23951f720289de0bb948626fb940edfb5dd2ba2..d3f4fb971fa25c484f1c249fae889b0e50d4e614 100644 (file)
@@ -77,7 +77,7 @@ GRANT ALL ON
   maintainer, maintainer_id_seq, source, source_id_seq,
   src_associations, src_associations_id_seq, suite,
   suite_architectures, suite_id_seq
-     TO GROUP ftpmaster;
+     TO troup;
 
 -- Give write privileges to the associations tables for AJ for the purposes of `testing'
 GRANT ALL ON 
index 6d0e6658c6a697a24ba0454dfe17ffff37188415..524c1aea6223defdb8c98dd6c0ff49f97d5601e0 100644 (file)
--- a/apt.conf
+++ b/apt.conf
@@ -30,6 +30,16 @@ tree "dists/stable"
    SrcOverride "override.potato.$(SECTION).src";
 };
 
+tree "dists/testing"
+{
+   FileList "/org/ftp.debian.org/database/dists/testing_$(SECTION)_binary-$(ARCH).list";
+   SourceFileList "/org/ftp.debian.org/database/dists/testing_$(SECTION)_source.list";
+   Sections "main contrib non-free";
+   Architectures "alpha arm i386 m68k powerpc sparc source";
+   BinOverride "override.woody.$(SECTION)";
+   SrcOverride "override.woody.$(SECTION).src";
+};
+
 tree "dists/unstable"
 {
    FileList "/org/ftp.debian.org/database/dists/unstable_$(SECTION)_binary-$(ARCH).list";
diff --git a/contrib/fix.b b/contrib/fix.b
new file mode 100755 (executable)
index 0000000..d986696
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+
+# Fix for bug in katie where dsc_files was initialized from changes and not dsc
+# Copyright (C) 2000  James Troup <james@nocrew.org>
+# $Id: fix.b,v 1.1 2000-12-19 17:23:03 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+# "Look around... leaves are brown... and the sky is hazy shade of winter,
+#  Look around... leaves are brown... there's a patch of snow on the ground."
+#                                         -- Simon & Garfunkel / 'A Hazy Shade'
+
+################################################################################
+
+import pg, sys, os, string, stat, re
+import utils, db_access
+import apt_pkg;
+
+################################################################################
+
+Cnf = None;
+projectB = None;
+
+bad_arch = re.compile(r'/binary-(hppa|mips|mipsel|sh|hurd-i386)/');
+
+################################################################################
+
+def main ():
+    global Cnf, projectB;
+
+    apt_pkg.init();
+    
+    Cnf = apt_pkg.newConfiguration();
+    apt_pkg.ReadConfigFileISC(Cnf,utils.which_conf_file());
+
+    Arguments = [('d',"debug","Claire::Options::Debug", "IntVal"),
+                 ('h',"help","Claire::Options::Help"),
+                 ('v',"version","Claire::Options::Version")];
+
+    apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv);
+
+    projectB = pg.connect('projectb', 'localhost');
+
+    db_access.init(Cnf, projectB);
+
+    file = utils.open_file('x', 'r');
+    for line in file.readlines():
+        if string.find(line, '/binary-') != -1:
+            if bad_arch.search(line) != None:
+                new_line = string.replace(line, 'woody/', 'sid/');
+                if new_line == line:
+                    print line;
+                    sys.exit(2);
+                line = new_line;
+        sys.stdout.write(line);
+
+#######################################################################################
+
+if __name__ == '__main__':
+    main()
+
diff --git a/katie b/katie
index 194354a091dbb08dea7058cf3c235668f5f4f226..98083dea5378c93eb507a2653fde8ea608d77811 100755 (executable)
--- a/katie
+++ b/katie
@@ -2,7 +2,7 @@
 
 # Installs Debian packaes
 # Copyright (C) 2000  James Troup <james@nocrew.org>
-# $Id: katie,v 1.12 2000-12-18 07:11:25 troup Exp $
+# $Id: katie,v 1.13 2000-12-19 17:23:03 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
@@ -848,11 +848,17 @@ def reject (changes_filename, manual_reject_mail_filename):
     reason_filename = re_changes.sub("reason", base_changes_filename);
     reject_filename = "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], reason_filename);
 
-    # Move the .changes files and it's contents into REJECT/
-    utils.move (changes_filename, "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], base_changes_filename));
+    # Move the .changes files and it's contents into REJECT/ (if we can; errors are ignored)
+    try:
+        utils.move (changes_filename, "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], base_changes_filename));
+    except cant_overwrite_exc:
+        pass;
     for file in files.keys():
         if os.access(file,os.R_OK) == 0:
-            utils.move (file, "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], file));
+            try:
+                utils.move (file, "%s/REJECT/%s" % (Cnf["Dir::IncomingDir"], file));
+            except cant_overwrite_exc:
+                pass;
 
     # If this is not a manual rejection generate the .reason file and rejection mail message
     if manual_reject_mail_filename == "":
index 193deafc6238f3ee6fa159afef42257c1ba82f3d..122b8dd7ff16ef484450f5aed07a0431915ce1d2 100644 (file)
--- a/utils.py
+++ b/utils.py
@@ -1,6 +1,6 @@
 # Utility functions
 # Copyright (C) 2000  James Troup <james@nocrew.org>
-# $Id: utils.py,v 1.9 2000-12-18 07:11:25 troup Exp $
+# $Id: utils.py,v 1.10 2000-12-19 17:23:03 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
@@ -29,6 +29,7 @@ nk_format_exc = "Unknown Format: in .changes file";
 no_files_exc = "No Files: field in .dsc file.";
 cant_open_exc = "Can't read file.";
 unknown_hostname_exc = "Unknown hostname";
+cant_overwrite_exc = "Permission denied; can't overwrite existent file."
        
 ######################################################################################
 
@@ -208,9 +209,12 @@ def move (src, dest):
        os.makedirs(dest_dir, 02775);
        os.umask(umask);
     #print "Moving %s to %s..." % (src, dest);
-    shutil.copy2(src, dest);
     if os.path.exists(dest) and os.path.isdir(dest):
        dest = dest + '/' + os.path.basename(src);
+    # Check for overwrite permission on existent files
+    if os.path.exists(dest) and not os.access(dest, os.W_OK):
+        raise cant_overwrite_exc
+    shutil.copy2(src, dest);
     os.chmod(dest, 0664);
     os.unlink(src);
 
@@ -224,9 +228,11 @@ def copy (src, dest):
        os.makedirs(dest_dir, 02775);
        os.umask(umask);
     #print "Copying %s to %s..." % (src, dest);
-    shutil.copy2(src, dest);
     if os.path.exists(dest) and os.path.isdir(dest):
        dest = dest + '/' + os.path.basename(src);
+    if os.path.exists(dest) and not os.access(dest, os.W_OK):
+        raise cant_overwrite_exc
+    shutil.copy2(src, dest);
     os.chmod(dest, 0664);
 
 ######################################################################################