Hi, [...]
> diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl > index 980ad24dc0..41e7108322 100755 > --- a/scripts/package-metadata.pl > +++ b/scripts/package-metadata.pl > @@ -101,14 +101,16 @@ my %dep_check; > sub __find_package_dep($$) { > my $pkg = shift; > my $name = shift; > - my $deps = ($pkg->{vdepends} or $pkg->{depends}); > + my $deps = $pkg->{depends}; > > return 0 unless defined $deps; > - foreach my $dep (@{$deps}) { > - next if $dep_check{$dep}; > - $dep_check{$dep} = 1; > - return 1 if $dep eq $name; > - return 1 if ($package{$dep} and > (__find_package_dep($package{$dep},$name) == 1)); > + foreach my $vpkg (@{$deps}) { > + foreach my $dep (@{$vpackage{$vpkg}}) { > + next if $dep_check{$dep->{name}}; > + $dep_check{$dep->{name}} = 1; > + return 1 if $dep->{name} eq $name; > + return 1 if (__find_package_dep($dep, $name) == 1); > + } > } > return 0; > } > @@ -156,7 +158,6 @@ sub mconf_depends { > my $m = "depends on"; > my $flags = ""; > $depend =~ s/^([@\+]+)// and $flags = $1; > - my $vdep; > my $condition = $parent_condition; > > next if $condition eq $depend; > @@ -173,23 +174,21 @@ sub mconf_depends { > } > $depend = $2; > } > - next if $package{$depend} and $package{$depend}->{buildonly}; > if ($flags =~ /\+/) { > - if ($vdep = $package{$depend}->{vdepends}) { > + my $vdep = $vpackage{$depend}; > + if ($vdep) { > my @vdeps; > - $depend = undef; > > foreach my $v (@$vdep) { > - if ($package{$v} && > $package{$v}->{variant_default}) { > - $depend = $v; > + next if $v->{buildonly}; > + if ($v->{variant_default}) { > + unshift @vdeps, $v->{name}; > } else { > - push @vdeps, $v; > + push @vdeps, $v->{name}; > } > } > > - if (!$depend) { > - $depend = shift @vdeps; > - } > + $depend = shift @vdeps; > > if (@vdeps > 1) { > $condition = ($condition ? "$condition > && " : '') . '!('.join("||", map { "PACKAGE_".$_ } @vdeps).')'; > @@ -209,7 +208,8 @@ sub mconf_depends { > > $flags =~ /@/ or $depend = "PACKAGE_$depend"; > } else { > - if ($vdep = $package{$depend}->{vdepends}) { > + my $vdep = $vpackage{$depend}; > + if ($vdep) { > $depend = join("||", map { "PACKAGE_".$_ } > @$vdep); Use "PACKAGE_".$_->{name} here as "$vdep" now is a reference to an array of package structures, not package names anymore. ~ Jo _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel