When a package foo depends on PACKAGE_foo:bar (in order to make build
dependencies conditional), tracking transitive dependencies can fail because
the internal seen flag is checked/set before eliminating the fake conditional
dependency. This can show up as a depends on not properly turned into a
select further down in the dependency chain
Signed-off-by: Felix Fietkau <nbd@nbd.name>
my $condition = $parent_condition;
next if $condition eq $depend;
- next if $seen->{"$parent_condition:$depend"};
- next if $seen->{":$depend"};
- $seen->{"$parent_condition:$depend"} = 1;
if ($depend =~ /^(.+):(.+)$/) {
if ($1 ne "PACKAGE_$pkgname") {
if ($condition) {
}
$depend = $2;
}
+ next if $seen->{"$parent_condition:$depend"};
+ next if $seen->{":$depend"};
+ $seen->{"$parent_condition:$depend"} = 1;
if ($flags =~ /\+/) {
my $vdep = $vpackage{$depend};
if ($vdep) {