X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=madison;h=5a17892b5c6480b0f76779ed36669721e2a875b4;hb=dd0ee5b67c650470139ffa8a50ae6b83a92ca76a;hp=145bb8c7ec3872894764734af9aa6bac11a4a44d;hpb=cbdf662d11beea14c67ba6bd7e8631b9de9df6eb;p=dak.git diff --git a/madison b/madison index 145bb8c7..5a17892b 100755 --- a/madison +++ b/madison @@ -1,8 +1,8 @@ #!/usr/bin/env python # Display information about package(s) (suite, version, etc.) -# Copyright (C) 2000, 2001, 2002, 2003, 2004 James Troup -# $Id: madison,v 1.30 2004-04-19 15:59:12 troup Exp $ +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 James Troup +# $Id: madison,v 1.33 2005-11-15 09:50:32 ajt 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 @@ -20,10 +20,10 @@ ################################################################################ -# And, lo, a great and menacing voice rose from the depths, and with -# great wrath and vehemence it's voice boomed across the -# land... ``hehehehehehe... that *tickles*'' -# -- aj on IRC +# ooo, elmo has "special powers" +# ooo, does he have lasers that shoot out of his eyes? +# dunno +# maybe he can turn invisible? that'd sure help with improved transparency! ################################################################################ @@ -131,19 +131,32 @@ def main (): results = 0; for package in packages: - q = projectB.query("SELECT b.package, b.version, a.arch_string, su.suite_name, m.name FROM binaries b, architecture a, suite su, bin_associations ba, maintainer m WHERE b.package %s '%s' AND a.id = b.architecture AND su.id = ba.suite AND b.id = ba.bin AND b.maintainer = m.id %s %s %s" % (comparison_operator, package, con_suites, con_architectures, con_bintype)); + q = projectB.query(""" +SELECT b.package, b.version, a.arch_string, su.suite_name, c.name, m.name + FROM binaries b, architecture a, suite su, bin_associations ba, + files f, location l, component c, maintainer m + WHERE b.package %s '%s' AND a.id = b.architecture AND su.id = ba.suite + AND b.id = ba.bin AND b.file = f.id AND f.location = l.id + AND l.component = c.id AND b.maintainer = m.id %s %s %s +""" % (comparison_operator, package, con_suites, con_architectures, con_bintype)); ql = q.getresult(); if check_source: - q = projectB.query("SELECT s.source, s.version, 'source', su.suite_name, m.name FROM source s, suite su, src_associations sa, maintainer m WHERE s.source %s '%s' AND su.id = sa.suite AND s.id = sa.source AND s.maintainer = m.id %s" % (comparison_operator, package, con_suites)); + q = projectB.query(""" +SELECT s.source, s.version, 'source', su.suite_name, c.name, m.name + FROM source s, suite su, src_associations sa, files f, location l, + component c, maintainer m + WHERE s.source %s '%s' AND su.id = sa.suite AND s.id = sa.source + AND s.file = f.id AND f.location = l.id AND l.component = c.id + AND s.maintainer = m.id %s +""" % (comparison_operator, package, con_suites)); ql.extend(q.getresult()); d = {}; highver = {}; for i in ql: results += 1; - pkg = i[0]; - version = i[1]; - architecture = i[2]; - suite = i[3]; + (pkg, version, architecture, suite, component, maintainer) = i; + if component != "main": + suite = "%s/%s" % (suite, component); if not d.has_key(pkg): d[pkg] = {}; highver.setdefault(pkg,""); @@ -174,9 +187,9 @@ def main (): for arch in arches: sys.stdout.write("%s %s %s\n" % (pkg, version, arch)); if Options["GreaterOrEqual"]: - print "\ndep-retry %s (>= %s)" % (pkg, highver[pkg]) + print "\n%s (>= %s)" % (pkg, highver[pkg]) if Options["GreaterThan"]: - print "\ndep-retry %s (>> %s)" % (pkg, highver[pkg]) + print "\n%s (>> %s)" % (pkg, highver[pkg]) if not results: sys.exit(1);