Debian::Dependency(3pm)

Debian::Dependency3pm

Dependency relationship between debian packages

Usage

                                    # 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', profile => '!nocheck' } );
   # stringification
   print "$d"      # 'perl (>= 5.10)'
   # 'adding'
   $deps = $dep1 + $dep2;
   $deps = $dep1 + 'foo (>= 1.23)'

Class_methods

new()

Construct a new instance.

new( { pkg => 'package', rel => '>=', ver => '1.9', profile => '!nocheck' } )

If a hash reference is passed as an argument, its contents are used to initialize the object. Only "pkg" is required.

new( [ { pkg => 'foo' }, 'bar (<= 3)' ] );

If 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)
libfoo (>= 23) [amd64] <stage1 !cross>

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');
profile

Contains the "restriction formulas" (build profile) of a dependency; optional.

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

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 7 times.

  1. 6.0
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13

Author

Damyan Ivanov <[email protected]>

From libdebian-source-perl 0.128 in Debian 13 (Trixie). Parsed by carta from the page's man source.