From 46331f78300d42fa531aef1856fa523bcd5c493a Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Wed, 20 Feb 2008 00:21:59 -0800 Subject: [PATCH] - Indicate what message number a message is (closes: #462653,#454248) - Add the ability to return source/package mapping (closes: #465332) --- Debbugs/Packages.pm | 21 ++++++------ Debbugs/SOAP.pm | 83 +++++++++++++++++++++++++++++++++++++++++++++ debian/changelog | 3 +- 3 files changed, 96 insertions(+), 11 deletions(-) diff --git a/Debbugs/Packages.pm b/Debbugs/Packages.pm index 39e5ed8..30ca114 100644 --- a/Debbugs/Packages.pm +++ b/Debbugs/Packages.pm @@ -232,10 +232,10 @@ sub getversions { =head2 get_versions - get_version(package=>'foopkg', - dist => 'unstable', - arch => 'i386', - ); + get_versions(package=>'foopkg', + dist => 'unstable', + arch => 'i386', + ); Returns a list of the versions of package in the distributions and architectures listed. This routine only returns unique values. @@ -264,6 +264,10 @@ architectures are at which versions. =back +When called in scalar context, this function will return hashrefs or +arrayrefs as appropriate, in list context, it will return paired lists +or unpaired lists as appropriate. + =cut our %_versions; @@ -340,13 +344,10 @@ sub get_versions{ } } } - if ($param{time}) { - return %versions; - } - elsif ($param{return_archs}) { - return %versions; + if ($param{time} or $param{return_archs}) { + return wantarray?%versions :\%versions; } - return keys %versions; + return wantarray?keys %versions :[keys %versions]; } diff --git a/Debbugs/SOAP.pm b/Debbugs/SOAP.pm index e389906..9aacda4 100644 --- a/Debbugs/SOAP.pm +++ b/Debbugs/SOAP.pm @@ -255,6 +255,89 @@ sub get_bug_log{ return \@messages; } +=head2 binary_to_source + + binary_to_source($binary_name,$binary_version,$binary_architecture) + +Returns a reference to the source package name and version pair +corresponding to a given binary package name, version, and +architecture. If undef is passed as the architecture, returns a list +of references to all possible pairs of source package names and +versions for all architectures, with any duplicates removed. + +(This function corresponds to L) + +=cut + +sub binary_to_source{ + my $VERSION = __populate_version(pop); + + return [binarytosource(@_)]; +} + +=head2 source_to_binary + + source_to_binary($source_name,$source_version); + +Returns a reference to an array of references to binary package name, +version, and architecture corresponding to a given source package name +and version. In the case that the given name and version cannot be +found, the unversioned package to source map is consulted, and the +architecture is not returned. + +(This function corresponds to L) + +=cut + +sub source_to_binary { + my $VERSION = __populate_version(pop); + + return [source_to_binary(@_)]; +} + +=head2 get_versions + + get_version(package=>'foopkg', + dist => 'unstable', + arch => 'i386', + ); + +Returns a list of the versions of package in the distributions and +architectures listed. This routine only returns unique values. + +=over + +=item package -- package to return list of versions + +=item dist -- distribution (unstable, stable, testing); can be an +arrayref + +=item arch -- architecture (i386, source, ...); can be an arrayref + +=item time -- returns a version=>time hash at which the newest package +matching this version was uploaded + +=item source -- returns source/version instead of just versions + +=item no_source_arch -- discards the source architecture when arch is +not passed. [Used for finding the versions of binary packages only.] +Defaults to 0, which does not discard the source architecture. (This +may change in the future, so if you care, please code accordingly.) + +=item return_archs -- returns a version=>[archs] hash indicating which +architectures are at which versions. + +=back + +This function correponds to L + +=cut + +sub get_versions{ + my $VERSION = __populate_version(pop); + + return scalar get_versions(@_); +} =head1 VERSION COMPATIBILITY diff --git a/debian/changelog b/debian/changelog index 4bf13da..d6682ae 100644 --- a/debian/changelog +++ b/debian/changelog @@ -205,11 +205,12 @@ debbugs (2.4.2) UNRELEASED; urgency=low - Make notfound/notfixed log verbiage more clear (closes: #434953) - Verify submitter is a valid email according to RFC822 (closes: #182419) - - Indicate what message number a message is (closes: #462653) + - Indicate what message number a message is (closes: #462653,#454248) - Fix casing of versions (closes: #441022) - Output last-modified in bugreport.cgi (closes: #459709) - Fix various html syntax errors in pkgreport.cgi (closes: #462322) - Make search case insensitive (closes: #448861) + - Add the ability to return source/package mapping (closes: #465332) -- Colin Watson Fri, 20 Jun 2003 18:57:25 +0100 -- 2.39.2