use IO::File;
use Debbugs::Status qw(get_bug_status);
use Debbugs::Common qw(make_list getbuglocation getbugcomponent);
+use Debbugs::Packages;
use Storable qw(nstore retrieve);
use Scalar::Util qw(looks_like_number);
my $bug_status;
if (ref($bug)) {
my %param = __collapse_params(@{$bug});
+ next unless defined $param{bug};
+ $bug = $param{bug};
$bug_status = get_bug_status(map {(exists $param{$_})?($_,$param{$_}):()}
- qw(bug dist arch bugusertags sourceversions version)
+ qw(bug dist arch bugusertags sourceversions version indicatesource)
);
}
else {
my $VERSION = __populate_version(pop);
my ($self,$bug,$msg_num) = @_;
- my $location = getbuglocation($bug,'log');
- my $bug_log = getbugcomponent($bug,'log',$location);
-
- my $log_fh = IO::File->new($bug_log, 'r') or
- die "Unable to open bug log $bug_log for reading: $!";
-
- my $log = Debbugs::Log->new($log_fh) or
+ my $log = Debbugs::Log->new(bug_num => $bug) or
die "Debbugs::Log was unable to be initialized";
my %seen_msg_ids;
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<Debbugs::Packages::binarytosource>)
+
+=cut
+
+sub binary_to_source{
+ my $VERSION = __populate_version(pop);
+ my ($self,@params) = @_;
+
+ return [Debbugs::Packages::binarytosource(@params)];
+}
+
+=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<Debbugs::Packages::sourcetobinary>)
+
+=cut
+
+sub source_to_binary {
+ my $VERSION = __populate_version(pop);
+ my ($self,@params) = @_;
+
+ return [Debbugs::Packages::sourcetobinary(@params)];
+}
+
+=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<Debbugs::Packages::get_versions>
+
+=cut
+
+sub get_versions{
+ my $VERSION = __populate_version(pop);
+ my ($self,@params) = @_;
+
+ return scalar Debbugs::Packages::get_versions(@params);
+}
=head1 VERSION COMPATIBILITY