Debian::Control::FromCPAN(3pm) User Contributed Perl Documentation Debian::Control::FromCPAN(3pm)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.
perl v5.14.2 2012-01-15 Debian::Control::FromCPAN(3pm)
Check Out this Related Man Page
Debian::Dependency(3pm) User Contributed Perl Documentation Debian::Dependency(3pm)NAME
Debian::Dependency - dependency relationship between Debian packages
SYNOPSIS
# simple dependency
my $d = Debian::Dependency->new( 'perl' );
# also parses a single argument
my $d = Debian::Dependency->new('perl (>= 5.10)');
# dependency with a version
my $d = Debian::Dependency->new( 'perl', '5.10' );
# dependency with version and relation
my $d = Debian::Dependency->new( 'perl', '>=', '5.10' );
print $d->pkg; # 'perl'
print $d->ver; # '5.10'
# for people who like to type much
my $d = Debian::Dependency->new( { pkg => 'perl', ver => '5.10' } );
# stringification
print "$d" # 'perl (>= 5.10)'
# 'adding'
$deps = $dep1 + $dep2;
$deps = $dep1 + 'foo (>= 1.23)'
CLASS_METHODS
new()
Construnct a new instance.
new( { pkg => 'package', rel => '>=', ver => '1.9' } )
If a hash reference is passed as an argument, its contents are used to initialize the object.
new( [ { pkg => 'foo' }, 'bar (<= 3)' ] );
In an array reference is passed as an argument, its elements are used for constructing a dependency with alternatives.
new('foo (= 42)')
new('foo (= 42) | bar')
If a single argument is given, the construction is passed to the "parse" constructor.
new( 'foo', '1.4' )
Two arguments are interpreted as package name and version. The relation is assumed to be '>='.
new( 'foo', '=', '42' )
Three arguments are interpreted as package name, relation and version.
set Overrides the set method from Class::Accessor. Used to convert zero versions (for example 0 or 0.000) to void versions.
parse()
Takes a single string argument and parses it.
Examples:
perl
perl (>= 5.8)
libversion-perl (<< 3.4)
FIELDS
pkg Contains the name of the package that is depended upon
rel Contains the relation of the dependency. May be any of '<<', '<=', '=', '>=' or '>>'. Default is '>='.
ver Contains the version of the package the dependency is about. The value is an instance of Dpkg::Version class. If you set it to a scalar
value, that is given to Dpkg::Version->new().
"rel" and "ver" are either both present or both missing.
Examples
print $dep->pkg;
$dep->ver('3.4');
METHODS
satisfies($dep)
Returns true if $dep states a dependency that is already covered by this instance. In other words, if this method returns true, any
package satisfying the dependency of this instance will also satisfy $dep ($dep is redundant in dependency lists where this instance is
already present).
$dep can be either an instance of the Debian::Dependency class, or a plain string.
my $dep = Debian::Dependency->new('foo (>= 2)');
print $dep->satisfies('foo') ? 'yes' : 'no'; # no
print $dep->satisfies('bar') ? 'yes' : 'no'; # no
print $dep->satisfies('foo (>= 2.1)') ? 'yes' : 'no'; # yes
SEE ALSO
Debian::Dependencies
AUTHOR
Damyan Ivanov <dmn@debian.org>
COPYRIGHT & LICENSE
Copyright (C) 2008,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. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
perl v5.14.2 2012-01-15 Debian::Dependency(3pm)