X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=charisma;h=b9eae14704e14783a07bb08a835b8e5e58abb3a1;hb=9540d873fa78598454af57f5f8a4875969ed0439;hp=c88fa52559633e588458cb6c343511300010ba1b;hpb=2f5e692bfbbb6f8146f50d944f7fcc169a95a0a3;p=dak.git diff --git a/charisma b/charisma index c88fa525..b9eae147 100755 --- a/charisma +++ b/charisma @@ -1,8 +1,8 @@ #!/usr/bin/env python # Generate Maintainers file used by e.g. the Debian Bug Tracking System -# Copyright (C) 2000, 2001 James Troup -# $Id: charisma,v 1.12 2001-11-18 19:57:58 rmurray Exp $ +# Copyright (C) 2000, 2001, 2002, 2003, 2004 James Troup +# $Id: charisma,v 1.18 2004-06-17 15:02:02 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 @@ -26,9 +26,9 @@ ################################################################################ -import os, pg, re, string, sys -import db_access, utils -import apt_pkg +import pg, sys; +import db_access, utils; +import apt_pkg; ################################################################################ @@ -92,7 +92,7 @@ def main(): db_access.init(Cnf, projectB); for suite in Cnf.SubTree("Suite").List(): - suite = string.lower(suite); + suite = suite.lower(); suite_priority = int(Cnf["Suite::%s::Priority" % (suite)]); # Source packages @@ -104,7 +104,7 @@ def main(): maintainer = fix_maintainer(source[2]); if packages.has_key(package): if packages[package]["priority"] <= suite_priority: - if apt_pkg.VersionCompare(packages[package]["version"], version) == -1: + if apt_pkg.VersionCompare(packages[package]["version"], version) < 0: packages[package] = { "maintainer": maintainer, "priority": suite_priority, "version": version }; else: packages[package] = { "maintainer": maintainer, "priority": suite_priority, "version": version }; @@ -117,13 +117,13 @@ def main(): source_id = binary[1]; version = binary[3]; # Use the source maintainer first; falling back on the binary maintainer as a last resort only - if source_id != 0 and source_id != None: + if source_id: maintainer = get_maintainer_from_source(source_id); else: maintainer = get_maintainer(binary[2]); if packages.has_key(package): if packages[package]["priority"] <= suite_priority: - if apt_pkg.VersionCompare(packages[package]["version"], version) == -1: + if apt_pkg.VersionCompare(packages[package]["version"], version) < 0: packages[package] = { "maintainer": maintainer, "priority": suite_priority, "version": version }; else: packages[package] = { "maintainer": maintainer, "priority": suite_priority, "version": version }; @@ -132,29 +132,27 @@ def main(): for filename in extra_files: file = utils.open_file(filename); for line in file.readlines(): - line = string.strip(utils.re_comments.sub('', line[:-1])) + line = utils.re_comments.sub('', line).strip(); if line == "": continue; - split = string.split(line); + split = line.split(); lhs = split[0]; - maintainer = fix_maintainer(string.join(split[1:])); - if string.find(lhs,'~') != -1: - lhs_split = string.split(lhs, '~'); - package = lhs_split[0]; - version = lhs_split[1]; + maintainer = fix_maintainer(" ".join(split[1:])); + if lhs.find('~') != -1: + (package, version) = lhs.split('~'); else: package = lhs; version = '*'; # A version of '*' overwhelms all real version numbers if not packages.has_key(package) or version == '*' \ - or apt_pkg.VersionCompare(packages[package]["version"], version) == -1: + or apt_pkg.VersionCompare(packages[package]["version"], version) < 0: packages[package] = { "maintainer": maintainer, "version": version }; file.close(); package_keys = packages.keys() package_keys.sort() for package in package_keys: - lhs = string.join([package, packages[package]["version"]], '~'); + lhs = "~".join([package, packages[package]["version"]]); print "%-30s %s" % (lhs, packages[package]["maintainer"]); ################################################################################