# 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.46 2002-05-23 12:36:15 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
# 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 = {};
# 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.
s = string.split(i)
section = priority = "";
try:
- if dsc != "":
+ if is_a_dsc:
(md5, size, name) = s
else:
(md5, size, section, priority, name) = s
# 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;
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:
def validate_changes_file_arg(file, fatal=1):
error = None;
+ orig_filename = file
if file[-6:] == ".katie":
file = file[:-6]+".changes";
if error:
if fatal:
- fubar("%s: %s." % (file, error));
+ fubar("%s: %s." % (orig_filename, error));
else:
- warn("Skipping %s - %s" % (file, error));
+ warn("Skipping %s - %s" % (orig_filename, error));
return None;
else:
return file;