logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Debian::Dependency - dependency relationship between Debian packages

Author

       Damyan Ivanov <dmn@debian.org>

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

Name

       Debian::Dependency - dependency relationship between Debian packages

See Also

       Debian::Dependencies

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', profile => '!nocheck' } );

          # stringification
          print "$d"      # 'perl (>= 5.10)'

          # 'adding'
          $deps = $dep1 + $dep2;
          $deps = $dep1 + 'foo (>= 1.23)'

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

See Also