mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-06-13 18:53:52 +02:00
scripts/package-metadata.pl: fix handling transitive conditional dependencies
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>
This commit is contained in:
parent
821cf6dd38
commit
6c3eff9dd8
|
@ -161,9 +161,6 @@ sub mconf_depends {
|
||||||
my $condition = $parent_condition;
|
my $condition = $parent_condition;
|
||||||
|
|
||||||
next if $condition eq $depend;
|
next if $condition eq $depend;
|
||||||
next if $seen->{"$parent_condition:$depend"};
|
|
||||||
next if $seen->{":$depend"};
|
|
||||||
$seen->{"$parent_condition:$depend"} = 1;
|
|
||||||
if ($depend =~ /^(.+):(.+)$/) {
|
if ($depend =~ /^(.+):(.+)$/) {
|
||||||
if ($1 ne "PACKAGE_$pkgname") {
|
if ($1 ne "PACKAGE_$pkgname") {
|
||||||
if ($condition) {
|
if ($condition) {
|
||||||
|
@ -174,6 +171,9 @@ sub mconf_depends {
|
||||||
}
|
}
|
||||||
$depend = $2;
|
$depend = $2;
|
||||||
}
|
}
|
||||||
|
next if $seen->{"$parent_condition:$depend"};
|
||||||
|
next if $seen->{":$depend"};
|
||||||
|
$seen->{"$parent_condition:$depend"} = 1;
|
||||||
if ($flags =~ /\+/) {
|
if ($flags =~ /\+/) {
|
||||||
my $vdep = $vpackage{$depend};
|
my $vdep = $vpackage{$depend};
|
||||||
if ($vdep) {
|
if ($vdep) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user