projects
/
openwrt
/
staging
/
yousong.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b922280
)
fix infinite recursion in metadata.pl
author
Felix Fietkau
<nbd@openwrt.org>
Sat, 4 Oct 2008 16:22:24 +0000
(16:22 +0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Sat, 4 Oct 2008 16:22:24 +0000
(16:22 +0000)
SVN-Revision: 12851
scripts/metadata.pl
patch
|
blob
|
history
diff --git
a/scripts/metadata.pl
b/scripts/metadata.pl
index e05cc92c426652e3bc344026a4e9cd408e1e102e..9c10f9554ca01c7e8c4d9ca44c6bad04ecb64488 100755
(executable)
--- a/
scripts/metadata.pl
+++ b/
scripts/metadata.pl
@@
-367,7
+367,9
@@
sub mconf_depends($$) {
my $only_dep = shift;
my $res;
my $dep = shift;
my $only_dep = shift;
my $res;
my $dep = shift;
+ my $seen = shift;
$dep or $dep = {};
$dep or $dep = {};
+ $seen or $seen = {};
$depends or return;
my @depends = @$depends;
$depends or return;
my @depends = @$depends;
@@
-382,6
+384,8
@@
sub mconf_depends($$) {
$condition = $1;
$depend = $2;
}
$condition = $1;
$depend = $2;
}
+ next if $seen->{$depend};
+ $seen->{$depend} = 1;
if ($vdep = $package{$depend}->{vdepends}) {
$depend = join("||", map { "PACKAGE_".$_ } @$vdep);
} else {
if ($vdep = $package{$depend}->{vdepends}) {
$depend = join("||", map { "PACKAGE_".$_ } @$vdep);
} else {
@@
-390,7
+394,7
@@
sub mconf_depends($$) {
# thus if FOO depends on other config options, these dependencies
# will not be checked. To fix this, we simply emit all of FOO's
# depends here as well.
# thus if FOO depends on other config options, these dependencies
# will not be checked. To fix this, we simply emit all of FOO's
# depends here as well.
- $package{$depend} and mconf_depends($package{$depend}->{depends}, 1, $dep);
+ $package{$depend} and mconf_depends($package{$depend}->{depends}, 1, $dep
, $seen
);
$m = "select";
next if $only_dep;
$m = "select";
next if $only_dep;