my (@stack) = @_;
my $curpkg = $stack[$#stack];
- return 0 if (exists $tmp_expansion_errors{$curpkg});
-
my @deps = @{$pkgddeps{$curpkg}};
my $dep;
my $pkg;
my $reset_visit = sub {
for my $pkg (keys %pkgddeps) {
- # Skip expansion error packages
- next if (exists $tmp_expansion_errors{$pkg});
$visit{$pkg} = 0;
}
};
{
%tmp_expansion_errors = ();
foreach my $name (keys %to_build) {
- next if (defined $pkgdeps{$name});
+ if( (grep $_ eq $name, @done) ||
+ (grep $_ eq $name, @skipped) ||
+ (grep $_ eq $name, @running)) {
+ next;
+ }
if(! (grep $_ eq $name, @skipped)) {
my $fn = $to_build{$name}->{filename};
debug("Checking dependencies for $name");
sub update_pkgddeps {
foreach my $name (keys %to_build) {
- # Skip expansion error packages
- next if (exists $tmp_expansion_errors{$name});
if(! (grep $_ eq $name, @skipped)) {
my $fn = $to_build{$name}->{filename};
my @bdeps = get_deps($fn);
my $so = source_of($depp, %to_build);
if (defined($so) && $name ne $so
&& (! grep($_ eq $so, @skipped))
- && (! grep($_ eq $so, @deps))
- && (! exists $tmp_expansion_errors{$so})) {
+ && (! grep($_ eq $so, @deps))) {
push (@deps, $so);
}
}
}
}
}
+ # refresh pkgdeps to remove skipped packages
+ update_pkgdeps();
+ update_pkgddeps();
}
! (grep $_ eq $name, @skipped) &&
! (grep $_ eq $name, @running))
{
- next if (! exists $pkgddeps{$name});
+ next if (exists $tmp_expansion_errors{$name});
my @bdeps = @{$pkgddeps{$name}};
my $add = 1;
foreach my $depp (@bdeps) {