Debian::Control::FromCPAN - fill F from unpacked CPAN distribution


DhMakePerl documentation  | view source Contained in the DhMakePerl distribution.

Index


NAME

Top

Debian::Control::FromCPAN - fill debian/control from unpacked CPAN distribution

SYNOPSIS

Top

    my $c = Debian::Control::FromCPAN->new();
    $c->discover_dependencies( { ... } );
    $c->prune_perl_deps;

    Debian::Control::FromCPAN inherits from L<Debian::Control>.
=cut

package Debian::Control::FromCPAN;

use strict; use Carp qw(croak);

use base 'Debian::Control';

use CPAN (); use DhMakePerl::Utils qw( is_core_module find_cpan_module nice_perl_ver split_version_relation ); use File::Spec qw( catfile ); use Module::Depends ();

use constant oldstable_perl_version => '5.8.8';

METHODS

Top

discover_dependencies( [ { options hash } ] )

Discovers module dependencies and fills the dependency fields in debian/control accordingly.

Options:

apt_contents

An instance of Debian::AptContents to be used when locating to which package a required module belongs.

dir

The directory where the cpan distribution was unpacked.

intrusive

A flag indicating permission to use Module::Depends::Intrusive for discovering dependencies in case Module::Depends fails. Sinse this requires loading all Perl modules in the distribution (and running their BEGIN blocks (and the BEGIN blocks of their dependencies, recursively), it is recommended to use this only when dealing with trusted sources.

require_deps

If true, causes the method to die if some a package for some dependency cannot be found. Otherwise only a warning is issued.

verbose
wnpp_query

An instance of Debian::WNPP::Query to be used when checking for WNPP bugs of depeended upon packages.

Returns a list of module names for which no suitable Debian packages were found.

find_debs_for_modules dep hash[, APT contents[, verbose ]]

Scans the given hash of dependencies ( module => version ) and returns matching Debian package dependency specification (as an instance of Debian::Dependencies class) and a list of missing modules.

prune_simple_perl_dep

Input:

dependency object

shall be a simple dependency (no alternatives)

(optional) build dependency flag

true value indicates the dependency is a build-time one

The following checks are made

dependencies on perl-modules

These are replaced with perl as per Perl policy.

dependencies on perl-base and build-dependencies on perl or perl-base

These are removed, unless they specify a version greater than the one available in oldstable or the dependency relation is not >= or >>.

Return value:

undef

if the dependency is redundant.

pruned dependency

otherwise. perl-modules replaced with perl.

prune_perl_dep

Similar to prune_simple_perl_dep, but supports alternative dependencies. If any of the alternatives is redundant, the whole dependency is considered redundant.

prune_perl_deps

Remove redundant (build-)dependencies on perl, perl-modules and perl-base.

COPYRIGHT & LICENSE

Top


DhMakePerl documentation  | view source Contained in the DhMakePerl distribution.