From dd76bd14f5970bd335397feb578b1e29054ab9af Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20P=C3=ADsa=C5=99?= Date: Thu, 7 Jul 2011 16:24:00 +0200 Subject: [PATCH] Propagate deep error messages in is_installable --- lib/Fedora/Rebuild/Solver.pm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/Fedora/Rebuild/Solver.pm b/lib/Fedora/Rebuild/Solver.pm index 55c25da..a715c34 100644 --- a/lib/Fedora/Rebuild/Solver.pm +++ b/lib/Fedora/Rebuild/Solver.pm @@ -45,6 +45,7 @@ sub is_installable_recursive { my $rflag = $$require[0]; my $rversion = $$require[1]; my $is_satisfied = 0; + my $deep_message; if (defined $self->dependencyfilter and &{$self->dependencyfilter}($rname, $rflag, $rversion)) { @@ -54,8 +55,8 @@ sub is_installable_recursive { for my $providing_package ($self->packages->packages) { if (Fedora::Rebuild::RPM::is_satisfied($rname, $rflag, - $rversion, $providing_package->provides)) { - my $deep_message = ''; + $rversion, $providing_package->provides)) { + $deep_message = ''; if ($self->is_installable_recursive($providing_package, \$deep_message, $backpath)) { $is_satisfied = 1; @@ -72,11 +73,14 @@ sub is_installable_recursive { } if (!$is_satisfied) { - $$message = qq{`} . $package->name . - qq{' requires `}. $rname . - qq{ } . + $$message = q{`} . $package->name . + q{' requires `}. $rname . + q{ } . Fedora::Rebuild::RPM::flag_as_string($rflag) . - qq{ } . $rversion . qq{' that cannot be satisfied.}; + q{ } . $rversion . q{' that cannot be satisfied}; + if ($deep_message//'' ne '') { + $$message .= " ($deep_message)"; + } shift @$backpath; return 0; } @@ -107,7 +111,7 @@ sub is_installable { } else { if (defined $message) { $$message = qq{Package `} . $package->name . - qq{' cannot be installed because: } . $reason; + q{' cannot be installed because: } . $reason . '.'; } return 0; } -- 2.11.4.GIT