Debian::Dependency.3pm

Langue: en

Autres versions - même langue

Version: 2010-05-21 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

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