This is an automated email from the git hooks/post-receive script. dod pushed a commit to branch master in repository libconfig-model-dpkg-perl.
commit f2cdec2e0b470a744277b9677fce16d756193a28 Author: Dominique Dumont <[email protected]> Date: Sat Sep 27 19:21:03 2014 +0200 Dpkg::Dep: Warn and fix if a dual dependency is used with a module that is or will no longer be dual life --- lib/Config/Model/Dpkg/Dependency.pm | 20 ++++++++++++++++---- t/dependency-check.t | 12 ++++++------ t/model_tests.d/dpkg-control-test-conf.pl | 4 ++-- t/model_tests.d/dpkg-test-conf.pl | 5 +---- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/lib/Config/Model/Dpkg/Dependency.pm b/lib/Config/Model/Dpkg/Dependency.pm index f695c94..486e8e6 100644 --- a/lib/Config/Model/Dpkg/Dependency.pm +++ b/lib/Config/Model/Dpkg/Dependency.pm @@ -451,6 +451,11 @@ sub check_perl_lib_dep { my @dep_name_as_perl = Module::CoreList->find_modules(qr/^$pname$/i) ; return 1 unless @dep_name_as_perl; + my $deprecated = Module::CoreList->deprecated_in($dep_name_as_perl[0]) ; + $logger->debug("dual life $dep_name is deprecated with perl $deprecated") if $deprecated; + my $removed = Module::CoreList->removed_from($dep_name_as_perl[0]) ; + $logger->debug("dual life $dep_name is removed from perl $removed") if $removed; + return 1 if (defined $dep_v && $dep_v =~ m/^\$/) ; my @ideal_perl_dep = qw/perl/ ; @@ -509,7 +514,7 @@ sub check_perl_lib_dep { push @ideal_lib_dep, '>=', $dep_v if $has_older_lib; } } - elsif ($has_older_perl) { + elsif ($has_older_perl or $removed or $deprecated) { push @ideal_lib_dep, $dep_name; } @@ -521,9 +526,10 @@ sub check_perl_lib_dep { "older than perl in sid ($perl_version{sid})" ); - my @ordered_ideal_dep = $has_older_perl_in_sid ? - ( \@ideal_perl_dep, \@ideal_lib_dep ) : - ( \@ideal_lib_dep, \@ideal_perl_dep ) ; + my @ordered_ideal_dep + = $removed || $deprecated ? ( \@ideal_lib_dep ) + : $has_older_perl_in_sid ? ( \@ideal_perl_dep, \@ideal_lib_dep ) + : ( \@ideal_lib_dep, \@ideal_perl_dep ) ; my $ideal_dep = $self->struct_to_dep( @ordered_ideal_dep ); if ( $actual_dep ne $ideal_dep ) { @@ -534,6 +540,12 @@ sub check_perl_lib_dep { else { $self->{nb_of_fixes}++; my $msg = "Dependency of dual life package should be '$ideal_dep' not '$actual_dep'"; + if ($removed) { + $msg .= " (removed from perl $removed)" ; + } + elsif ($deprecated) { + $msg .= " (deprecated from perl $deprecated)" ; + } $self->add_warning ($msg); $logger->info("will warn: $msg (fix++)"); } diff --git a/t/dependency-check.t b/t/dependency-check.t index 7093bd7..7038c65 100644 --- a/t/dependency-check.t +++ b/t/dependency-check.t @@ -131,7 +131,7 @@ warning_like { $unit->config_root->init ; } [ qr/is unknown/, qr/unnecessary/, (qr/dual life/) , qr/unnecessary/, - ( qr/dual life/) x 2 , (qr/unnecessary/) x 2 ] , + ( qr/dual life.*removed/), ( qr/dual life/) , (qr/unnecessary/) x 2 ] , "test BDI warn on unittest instance"; my $c_unit = $unit->config_root ; @@ -180,11 +180,11 @@ is( $res, 0,"check perl (>= 5.6.0) dependency: no older version"); my @chain_tests = ( # tag name for display, test data, expected result: 1 (good dep) or expected fixed structure 'libcpan-meta-perl' => [ ['libcpan-meta-perl']] => [[qw/perl >= 5.13.10/],['libcpan-meta-perl']], - 'libmodule-build-perl perl 5.10' => [ [qw/perl >= 5.10/], ['libmodule-build-perl']] => [['perl'],[]], + 'libmodule-build-perl perl 5.10' => [ [qw/perl >= 5.10/], ['libmodule-build-perl']] => [['libmodule-build-perl']], # test Debian #719225 - 'libarchive-extract-perl' => [ [qw/libarchive-extract-perl >= 0.68/] , [qw/perl >= 5.17.9/]] => [ [qw/perl >= 5.17.9/], ['libarchive-extract-perl'] ,], - 'libarchive-extract-perl' => [ [qw/perl >= 5.17.9/], ['libarchive-extract-perl'] , ] => 1, - 'libmodule-build-perl to fix' => [ [qw/perl >= 5.11.3/], [qw/libmodule-build-perl >= 0.360000/] ] => [ [qw/perl >= 5.11.3/], ['libmodule-build-perl'] ] , + 'libarchive-extract-perl' => [ [qw/libarchive-extract-perl >= 0.68/] , [qw/perl >= 5.17.9/]] => [ ['libarchive-extract-perl'] ,], + 'libarchive-extract-perl' => [ [qw/perl >= 5.17.9/], ['libarchive-extract-perl'] , ] => 0, # Archive::Extract is now removed from core + 'libmodule-build-perl to fix' => [ [qw/perl >= 5.11.3/], [qw/libmodule-build-perl >= 0.360000/] ] => [ ['libmodule-build-perl'] ] , ); while (@chain_tests) { @@ -325,7 +325,7 @@ is($perl_bdi->has_fixes,2, "test presence of fixes"); is($perl_bdi->has_fixes,0, "test that fixes are gone"); is($perl_bdi->has_warning,0,"check that warnings are gone"); -is($perl_bdi->fetch,"perl","check fixed B-D-I dependency value"); +is($perl_bdi->fetch,"libmodule-build-perl","check fixed B-D-I dependency value"); print scalar $inst->list_changes,"\n" if $trace ; is($inst->c_count, 1,"check that fixes are tracked with notify changes") ; diff --git a/t/model_tests.d/dpkg-control-test-conf.pl b/t/model_tests.d/dpkg-control-test-conf.pl index 92bcbdd..57e65df 100644 --- a/t/model_tests.d/dpkg-control-test-conf.pl +++ b/t/model_tests.d/dpkg-control-test-conf.pl @@ -23,7 +23,7 @@ providing the following file: 'source Build-Depends-Indep:0', "libcpan-meta-perl | perl (>= 5.13.10)", # fixed 'source Build-Depends-Indep:1', "libdist-zilla-perl", # fixed 'source Build-Depends-Indep:5', "libpath-class-perl", - 'source Build-Depends-Indep:6', "perl (>= 5.11.3) | libmodule-build-perl (>= 0.36)", # fixed + 'source Build-Depends-Indep:6', "libmodule-build-perl (>= 0.36)", # fixed 'source Build-Depends-Indep:7', "udev [linux-any] | makedev [linux-any]", 'binary:libdist-zilla-plugins-cjm-perl Depends:0', '${misc:Depends}', @@ -32,7 +32,7 @@ providing the following file: }, load_warnings => [ qr/dependency/, qr/dual life/, (qr/dependency/) x 2, qr/libmodule-build-perl \(>= 0.36\) \| perl \(>= 5.8.8\)/, - qr/should be 'perl \(>= 5.11.3\) \| libmodule-build-perl \(>= 0.36\)/, + qr/should be 'libmodule-build-perl \(>= 0.36\)/, qr/standards version/, qr/dependency/, qr/dual life/, (qr/dependency/) x 2 ], apply_fix => 1, diff --git a/t/model_tests.d/dpkg-test-conf.pl b/t/model_tests.d/dpkg-test-conf.pl index b85e3a6..cff9281 100644 --- a/t/model_tests.d/dpkg-test-conf.pl +++ b/t/model_tests.d/dpkg-test-conf.pl @@ -19,11 +19,8 @@ my $del_home = sub { { name => 't0', check => { 'control source Build-Depends-Indep:3', 'libtest-pod-perl', }, - dump_warnings => [ (qr/deprecated/) x 3 ], file_check_sub => $del_home, - # apply_fix => 1 , - - #errors => [ ], + apply_fix => 1 , }, { name => 't1', apply_fix => 1 , -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libconfig-model-dpkg-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
