Provided by: libdebbugs-perl_2.6.0_all bug

NAME

       Debbugs::Packages - debbugs binary/source package handling

DESCRIPTION

       The Debbugs::Packages module provides support functions to map binary packages to their corresponding
       source packages and vice versa. (This makes sense for software distributions, where developers may work
       on a single source package which produces several binary packages for use by users; it may not make sense
       in other contexts.)

METHODS

   getpkgsrc
       Returns a reference to a hash of binary package names to their corresponding source package names.

   getpkgcomponent
       Returns a reference to a hash of binary package names to the component of the archive containing those
       binary packages (e.g. "main", "contrib", "non-free").

   getsrcpkgs
       Returns a list of the binary packages produced by a given source package.

   binary_to_source
            binary_to_source(package => 'foo',
                             version => '1.2.3',
                             arch    => 'i386');

       Turn a binary package (at optional version in optional architecture) into a single (or set) of source
       packages (optionally) with associated versions.

       By default, in LIST context, returns a LIST of array refs of source package, source version pairs
       corresponding to the binary package(s), arch(s), and verion(s) passed.

       In SCALAR context, only the corresponding source packages are returned, concatenated with ', ' if
       necessary.

       If no source can be found, returns undef in scalar context, or the empty list in list context.

       binary -- binary package name(s) as a SCALAR or ARRAYREF
       version -- binary package version(s) as a SCALAR or ARRAYREF; optional, defaults to all versions.
       arch -- binary package architecture(s) as a SCALAR or ARRAYREF; optional, defaults to all architectures.
       source_only -- return only the source name (forced on if in SCALAR context), defaults to false.
       scalar_only -- return a scalar only (forced true if in SCALAR context, also causes source_only to be
       true), defaults to false.
       cache -- optional HASHREF to be used to cache results of binary_to_source.

   sourcetobinary
       Returns a list of references to triplets of binary package names, versions, and architectures
       corresponding to a given source package name and version.  If the given source package name and version
       cannot be found in the database but the source package name is in the unversioned package-to-source map
       file, then a reference to a binary package name and version pair will be returned, without the
       architecture.

   getversions
       Returns versions of the package in a distribution at a specific architecture

   get_versions
            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.

       package -- package to return list of versions
       dist -- distribution (unstable, stable, testing); can be an arrayref
       arch -- architecture (i386, source, ...); can be an arrayref
       time -- returns a version=>time hash at which the newest package matching this version was uploaded
       source -- returns source/version instead of just versions
       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.)
       return_archs -- returns a version=>[archs] hash indicating which architectures are at which versions.
       largest_source_version_only -- if there is more than one source version in a particular distribution,
       discards all versions but the largest in that distribution. Defaults to 1, as this used to be the way
       that the Debian archive worked.

       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.

   makesourceversions
            @{$cgi_var{found}} = makesourceversions($cgi_var{package},undef,@{$cgi_var{found}});

       Canonicalize versions into source versions, which have an explicitly named source package. This is used
       to cope with source packages whose names have changed during their history, and with cases where source
       version numbers differ from binary version numbers.

   make_source_versions
            make_source_versions(package => 'foo',
                                 arch    => 'source',
                                 versions => '0.1.1',
                                 guess_source => 1,
                                 warnings => \$warnings,
                                );

       An extended version of makesourceversions (which calls this function internally) that allows for multiple
       packages, architectures, and outputs warnings and debugging information to provided SCALARREFs or
       HANDLEs.

       The guess_source option determines whether the source package is guessed at if there is no obviously
       correct package. Things that use this function for non-transient output should set this to false, things
       that use it for transient output can set this to true.  Currently it defaults to true, but that is not a
       sane option.