NAME¶
Debian::Control::FromCPAN - fill debian/control from unpacked CPAN distribution
SYNOPSIS¶
my $c = Debian::Control::FromCPAN->new();
$c->discover_dependencies( { ... } );
$c->prune_perl_deps;
Debian::Control::FromCPAN inherits from L<Debian::Control>.
METHODS¶
- 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.
Installed packages are searched first, then the APT contents, then the
perl core.
- 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¶
Copyright (C) 2009, 2010 Damyan Ivanov dmn@debian.org
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2 as published by the Free
Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.