]> err.no Git - dak/commitdiff
parse_changes and build_file_list 2nd argument sanity changes
authorJames Troup <james@nocrew.org>
Sat, 18 May 2002 23:54:51 +0000 (23:54 +0000)
committerJames Troup <james@nocrew.org>
Sat, 18 May 2002 23:54:51 +0000 (23:54 +0000)
fernanda.py
halle
jennifer
jeri
melanie
shania
utils.py

index c94aae2523efb526c5df59a1a09200aa9f4ff62f..9197a179ffb72ab1b5d54ab400f52ba1e497bc8d 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Script to automate some parts of checking NEW packages
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: fernanda.py,v 1.2 2002-05-03 16:06:45 troup Exp $
+# $Id: fernanda.py,v 1.3 2002-05-18 23:54:51 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
@@ -128,8 +128,8 @@ def display_changes (changes_filename):
 def check_changes (changes_filename):
     display_changes(changes_filename);
 
-    changes = utils.parse_changes (changes_filename, 0);
-    files = utils.build_file_list(changes, "");
+    changes = utils.parse_changes (changes_filename);
+    files = utils.build_file_list(changes);
     for file in files.keys():
        if file[-4:] == ".deb" or file[-5:] == ".udeb":
            check_deb(file);
diff --git a/halle b/halle
index e3ad2882a87d6874561fd46ee3a4e44e3f320d86..339fd262799d5d794e126c0cfa8c3d82859c7d40 100755 (executable)
--- a/halle
+++ b/halle
@@ -2,7 +2,7 @@
 
 # Remove obsolete .changes files from proposed-updates
 # Copyright (C) 2001, 2002  James Troup <james@nocrew.org>
-# $Id: halle,v 1.6 2002-05-08 11:13:02 troup Exp $
+# $Id: halle,v 1.7 2002-05-18 23:54:51 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
@@ -49,8 +49,8 @@ Need either changes files or an admin.txt file with a '.joey' suffix."""
 
 def check_changes (filename):
     try:
-        changes = utils.parse_changes(filename, 0)
-        files = utils.build_file_list(changes, "");
+        changes = utils.parse_changes(filename);
+        files = utils.build_file_list(changes);
     except:
         utils.warn("Couldn't read changes file '%s'." % (filename));
         return;
index 3da7f8f2a356ad463826e2c5cacf43221584548e..7b3b51692c143a208f58736a01b34a56741f5495 100755 (executable)
--- a/jennifer
+++ b/jennifer
@@ -2,7 +2,7 @@
 
 # Checks Debian packages from Incoming
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: jennifer,v 1.19 2002-05-14 22:28:01 troup Exp $
+# $Id: jennifer,v 1.20 2002-05-18 23:54:51 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
@@ -43,7 +43,7 @@ re_is_changes = re.compile (r"(.+?)_(.+?)_(.+?)\.changes$");
 ################################################################################
 
 # Globals
-jennifer_version = "$Revision: 1.19 $";
+jennifer_version = "$Revision: 1.20 $";
 
 Cnf = None;
 Options = None;
@@ -355,7 +355,7 @@ def check_changes():
 
     # Parse the .changes field into a dictionary
     try:
-        changes.update(utils.parse_changes(filename, 0));
+        changes.update(utils.parse_changes(filename));
     except utils.cant_open_exc:
         reject("can't read changes file '%s'." % (filename));
         return 0;
@@ -365,7 +365,7 @@ def check_changes():
 
     # Parse the Files field from the .changes into another dictionary
     try:
-        files.update(utils.build_file_list(changes, ""));
+        files.update(utils.build_file_list(changes));
     except utils.changes_parse_error_exc, line:
         reject("error parsing changes file '%s', can't grok: %s." % (filename, line));
     except utils.nk_format_exc, format:
@@ -713,7 +713,7 @@ def check_dsc ():
         if files[file]["type"] == "dsc":
             # Parse the .dsc file
             try:
-                dsc.update(utils.parse_changes(file, 1));
+                dsc.update(utils.parse_changes(file, dsc_whitespace_rules=1));
             except utils.cant_open_exc:
                 # if not -n copy_to_holding() will have done this for us...
                 if Options["No-Action"]:
@@ -724,7 +724,7 @@ def check_dsc ():
                 reject("syntax error in .dsc file '%s', line %s." % (file, line));
             # Build up the file list of files mentioned by the .dsc
             try:
-                dsc_files.update(utils.build_file_list(dsc, 1));
+                dsc_files.update(utils.build_file_list(dsc, is_a_dsc=1));
             except utils.no_files_exc:
                 reject("no Files: field in .dsc file.");
                 continue;
diff --git a/jeri b/jeri
index 4059478099cf12cf687f241b6190b9ff66df305b..740f0ed7ace5d769e1ce27dc98a0c7cc1085b831 100755 (executable)
--- a/jeri
+++ b/jeri
@@ -2,7 +2,7 @@
 
 # Dependency check proposed-updates
 # Copyright (C) 2001, 2002  James Troup <james@nocrew.org>
-# $Id: jeri,v 1.6 2002-05-14 15:34:02 troup Exp $
+# $Id: jeri,v 1.7 2002-05-18 23:54:51 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
@@ -187,8 +187,8 @@ def pass_fail (filename, result):
 
 def check_changes (filename):
     try:
-        changes = utils.parse_changes(filename, 0)
-        files = utils.build_file_list(changes, "");
+        changes = utils.parse_changes(filename);
+        files = utils.build_file_list(changes);
     except:
         utils.warn("Error parsing changes file '%s'" % (filename));
         return;
diff --git a/melanie b/melanie
index 0ce57715dadcd3f188868568729887bb76b79be2..5e012e5d6ef9e7898ba561eddea703af507ab75f 100755 (executable)
--- a/melanie
+++ b/melanie
@@ -2,7 +2,7 @@
 
 # General purpose package removal tool for ftpmaster
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: melanie,v 1.25 2002-05-16 18:01:33 rmurray Exp $
+# $Id: melanie,v 1.26 2002-05-18 23:54:51 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
@@ -255,7 +255,7 @@ def main ():
             for i in source_packages.keys():
                 filename = string.join(source_packages[i], '/');
                 try:
-                    dsc = utils.parse_changes(filename, 0);
+                    dsc = utils.parse_changes(filename);
                 except utils.cant_open_exc:
                     utils.warn("couldn't open '%s'." % (filename));
                     continue;
@@ -394,7 +394,7 @@ def main ():
             Subst["__BCC__"] = "Bcc: " + string.join(bcc, ", ");
         else:
             Subst["__BCC__"] = "X-Filler: 42";
-        Subst["__CC__"] = "X-Melanie: $Revision: 1.25 $";
+        Subst["__CC__"] = "X-Melanie: $Revision: 1.26 $";
         if carbon_copy:
             Subst["__CC__"] = Subst["__CC__"] + "\nCc: " + string.join(carbon_copy, ", ");
         Subst["__SUITE_LIST__"] = suites_list;
diff --git a/shania b/shania
index 6131cbc69225cdb6258d04df44e2588351b182cd..35577ec04821d407e1adb8e04b6675bf45646038 100755 (executable)
--- a/shania
+++ b/shania
@@ -2,7 +2,7 @@
 
 # Clean incoming of old unused files
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: shania,v 1.14 2002-05-08 11:13:02 troup Exp $
+# $Id: shania,v 1.15 2002-05-18 23:54:51 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
@@ -129,8 +129,8 @@ def flush_orphans ():
     # Proces all .changes and .dsc files.
     for changes_filename in changes_files:
         try:
-            changes = utils.parse_changes(changes_filename, 0)
-            files = utils.build_file_list(changes, "");
+            changes = utils.parse_changes(changes_filename);
+            files = utils.build_file_list(changes);
         except:
             utils.warn("error processing '%s'; skipping it. [Got %s]" % (changes_filename, sys.exc_type));
             continue;
@@ -139,8 +139,8 @@ def flush_orphans ():
         for file in files.keys():
             if file[-4:] == ".dsc":
                 try:
-                    dsc = utils.parse_changes(file, 0)
-                    dsc_files = utils.build_file_list(dsc, 1)
+                    dsc = utils.parse_changes(file);
+                    dsc_files = utils.build_file_list(dsc, is_a_dsc=1);
                 except:
                     utils.warn("error processing '%s'; skipping it. [Got %s]" % (file, sys.exc_type));
                     continue;
index aca1df7618f19a337669864bed5c792661aedf26..59beb2af6df05421eb6b7bb8581685c9d3282417 100644 (file)
--- a/utils.py
+++ b/utils.py
@@ -1,6 +1,6 @@
 # Utility functions
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: utils.py,v 1.43 2002-05-10 00:24:14 troup Exp $
+# $Id: utils.py,v 1.44 2002-05-18 23:54:51 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
@@ -16,7 +16,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-import commands, os, pwd, re, socket, shutil, string, sys, tempfile
+import os, pwd, re, socket, shutil, string, sys, tempfile
 import apt_pkg
 
 re_comments = re.compile(r"\#.*")
@@ -123,7 +123,7 @@ def extract_component_from_section(section):
 # o The data section must end with a blank line and must be followed by
 #   "-----BEGIN PGP SIGNATURE-----".
 
-def parse_changes(filename, dsc_whitespace_rules):
+def parse_changes(filename, dsc_whitespace_rules=0):
     changes_in = open_file(filename);
     error = "";
     changes = {};
@@ -199,12 +199,12 @@ def parse_changes(filename, dsc_whitespace_rules):
 
 # Dropped support for 1.4 and ``buggy dchanges 3.4'' (?!) compared to di.pl
 
-def build_file_list(changes, dsc):
+def build_file_list(changes, is_a_dsc=0):
     files = {}
     format = changes.get("format", "")
     if format != "":
        format = float(format)
-    if dsc == "" and (format < 1.5 or format > 2.0):
+    if not is_a_dsc and (format < 1.5 or format > 2.0):
        raise nk_format_exc, format;
 
     # No really, this has happened.  Think 0 length .dsc file.
@@ -217,7 +217,7 @@ def build_file_list(changes, dsc):
         s = string.split(i)
         section = priority = "";
         try:
-            if dsc != "":
+            if is_a_dsc:
                 (md5, size, name) = s
             else:
                 (md5, size, section, priority, name) = s
@@ -428,12 +428,12 @@ def cc_fix_changes (changes):
 # Sort by source name, source version, 'have source', and then by filename
 def changes_compare (a, b):
     try:
-        a_changes = parse_changes(a, 0)
+        a_changes = parse_changes(a);
     except:
         return -1;
 
     try:
-        b_changes = parse_changes(b, 0)
+        b_changes = parse_changes(b);
     except:
         return 1;
 
@@ -452,11 +452,11 @@ def changes_compare (a, b):
     b_version = b_changes.get("version");
     q = apt_pkg.VersionCompare(a_version, b_version);
     if q:
-        return q
+        return q;
 
     # Sort by 'have source'
-    a_has_source = a_changes["architecture"].get("source")
-    b_has_source = b_changes["architecture"].get("source")
+    a_has_source = a_changes["architecture"].get("source");
+    b_has_source = b_changes["architecture"].get("source");
     if a_has_source and not b_has_source:
         return -1;
     elif b_has_source and not a_has_source: