NAME

Config::Model::Debian::Dependency - Checks Debian dependency declarations

VERSION

version 1.236

SYNOPSIS

use Config::Model ;
use Log::Log4perl qw(:easy) ;
use Data::Dumper ;

Log::Log4perl->easy_init($WARN);

# define configuration tree object
my $model = Config::Model->new ;
$model ->create_config_class (
   name => "MyClass",
   element => [ 
       Depends => {
           'type'       => 'leaf',
           'value_type' => 'uniline',
           class => 'Config::Model::Debian::Dependency',
       },
   ],
) ;

my $inst = $model->instance(root_class_name => 'MyClass' );

my $root = $inst->config_root ;

$root->load( 'Depends="libc6 ( >= 1.0 )"') ;
# Connecting to qa.debian.org to check libc6 versions. Please wait ...
# Warning in 'Depends' value 'libc6 ( >= 1.0 )': unnecessary
# versioned dependency: >= 1.0. Debian has lenny-security ->
# 2.7-18lenny6; lenny -> 2.7-18lenny7; squeeze-security ->
# 2.11.2-6+squeeze1; squeeze -> 2.11.2-10; wheezy -> 2.11.2-10; sid
# -> 2.11.2-10; sid -> 2.11.2-11;

DESCRIPTION

This class is derived from Config::Model::Value. Its purpose is to check the value of a Debian package dependency for the following:

  • syntax as described in http://www.debian.org/doc/debian-policy/ch-relationships.html

  • Whether the version specified with > or >= is necessary. This module will check with Debian server whether older versions can be found in Debian old-stable or not. If no older version can be found, a warning will be issued.

Cache

Queries to Debian server are cached in ~/.config_model_depend_cache for about one month.

BUGS

More advanced checks can probably be implemented. The author is open to new ideas. He's even more open to patches (with tests).

AUTHOR

Dominique Dumont, ddumont [AT] cpan [DOT] org

SEE ALSO

Config::Model, Config::Model::Value, Memoize, Memoize::Expire