[libconfig-model-dpkg-perl] 02/03: Dpkg dependency: make sure that debhelper shows a warning when compat is increased
dod at debian.org
dod at debian.org
Wed Jul 8 19:13:40 UTC 2015
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 abcba8f0932715d0ac2ef43482339a5b7ecce3fe
Author: Dominique Dumont <dod at debian.org>
Date: Wed Jul 8 21:12:47 2015 +0200
Dpkg dependency: make sure that debhelper shows a warning when compat is increased
.. this bug showed up in interactive mode (with the GUI): after an increase
of compat value, the versioned dependency of debhelper must also be increased.
This did not happen in interactive mode: the GUI did not show a warning
after an update.
This is now fixed by registering debhelper object as a dependency
of compat object. This way, notify_change is called on debhelper
any time compat is updated, which triggers the relevant check and
warnings.
---
lib/Config/Model/Dpkg/Dependency.pm | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/lib/Config/Model/Dpkg/Dependency.pm b/lib/Config/Model/Dpkg/Dependency.pm
index 653769f..8b4a186 100644
--- a/lib/Config/Model/Dpkg/Dependency.pm
+++ b/lib/Config/Model/Dpkg/Dependency.pm
@@ -339,28 +339,35 @@ sub check_debhelper_version {
my $lintian_dep = Lintian::Relation->new( $dep_string ) ;
$logger->debug("checking '$dep_string' with lintian");
- # using mode loose because debian-control model can be used alone
- # and compat is outside of debian-control
- my $compat = $self->grab_value(mode => 'loose', step => "!Dpkg compat") ;
- return unless defined $compat ;
+ # try to create compat_obj, but do not try twice (hence the exists test)
+ if (not exists $self->{_compat_obj} ) {
+ # using mode loose because debian-control model can be used alone
+ # and compat is outside of debian-control
+ my $c = $self->{_compat_obj} = $self->grab(mode => 'loose', step => "!Dpkg compat") ;
+ $c->register_dependency($self) if defined $c;
+ }
+
+ return unless defined $self->{_compat_obj};
+
+ my $compat_value = $self->{_compat_obj}->fetch;
- my $min_dep = Lintian::Relation->new("debhelper ( >= $compat)") ;
+ my $min_dep = Lintian::Relation->new("debhelper ( >= $compat_value)") ;
$logger->debug("checking if ".$lintian_dep->unparse." implies ". $min_dep->unparse);
return if $lintian_dep->implies ($min_dep) ;
- $logger->debug("'$dep_string' does not imply debhelper >= $compat");
+ $logger->debug("'$dep_string' does not imply debhelper >= $compat_value");
# $show_rel avoids undef warnings
my $show_rel = join(' ', map { $_ || ''} ($oper, $dep_v));
if ($apply_fix) {
- @$depend = ( 'debhelper', '>=', $compat ) ; # notify_change called in check_value
+ @$depend = ( 'debhelper', '>=', $compat_value ) ; # notify_change called in check_value
$logger->info("fixed debhelper dependency from "
- ."$dep_name $show_rel -> ".$min_dep->unparse." (for compat $compat)");
+ ."$dep_name $show_rel -> ".$min_dep->unparse." (for compat $compat_value)");
}
else {
$self->{nb_of_fixes}++ ;
- my $msg = "should be (>= $compat) not ($show_rel) because compat is $compat" ;
+ my $msg = "should be (>= $compat_value) not ($show_rel) because compat is $compat_value" ;
$self->add_warning( $msg );
$logger->info("will warn: $msg (fix++)");
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libconfig-model-dpkg-perl.git
More information about the Pkg-perl-cvs-commits
mailing list