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.