fix scripts/feeds dependency lookup: process deps for all virtual packages of a src...
[openwrt-10.03/.git] / scripts / feeds
index 2b50d5c1a5a4b954b01e71cdcadeaec7124a43fd..f1baad5766dd2742c78c40211a5afd1f9e0b6f90 100755 (executable)
@@ -264,13 +264,6 @@ sub install_package {
        # newly installed packages set the source package
        $installed{$src} and return 0;
 
-       # install all dependencies
-       foreach my $dep (@{$pkg->{depends}}, @{$pkg->{builddepends}}) {
-               next if $dep =~ /@/;
-               $dep =~ s/^\+//;
-               install_package($feed, $dep) == 0 or $ret = 1;
-       }
-
        # check previously installed packages
        $installed{$name} and return 0;
        $installed{$src} = 1;
@@ -286,6 +279,15 @@ sub install_package {
                return 1;
        };
 
+       # install all dependencies
+       foreach my $vpkg (@{$srcpackage{$src}}) {
+               foreach my $dep (@{$vpkg->{depends}}, @{$vpkg->{builddepends}}) {
+                       next if $dep =~ /@/;
+                       $dep =~ s/^\+//;
+                       install_package($feed, $dep) == 0 or $ret = 1;
+               }
+       }
+
        return $ret;
 }