wpa_supplicant: improve scan cache reliability
[openwrt.git] / scripts / feeds
index 4176c31..78e65ad 100755 (executable)
@@ -83,7 +83,7 @@ sub update_link($$) {
        my $name = shift;
        my $src = abs_path(shift);
 
        my $name = shift;
        my $src = abs_path(shift);
 
-       system("ln -sf $src ./feeds/$name");
+       system("rm -f ./feeds/$name; ln -s $src ./feeds/$name");
 
        return 0;
 }
 
        return 0;
 }
@@ -104,9 +104,15 @@ sub update_git($$) {
 
 sub get_feed($) {
        my $feed = shift;
 
 sub get_feed($) {
        my $feed = shift;
+       my $file = "./feeds/$feed.index";
 
        clear_packages();
 
        clear_packages();
-       parse_package_metadata("./feeds/$feed.index") or return;
+
+       -f $file or do {
+               print "Ignoring feed '$feed' - index missing\n";
+               return;
+       };
+       parse_package_metadata($file) or return;
        return { %package };
 }
 
        return { %package };
 }
 
@@ -258,13 +264,6 @@ sub install_package {
        # newly installed packages set the source package
        $installed{$src} and return 0;
 
        # newly installed packages set the source package
        $installed{$src} and return 0;
 
-       # install all dependencies
-       foreach my $dep (@{$pkg->{depends}}) {
-               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;
        # check previously installed packages
        $installed{$name} and return 0;
        $installed{$src} = 1;
@@ -280,6 +279,13 @@ sub install_package {
                return 1;
        };
 
                return 1;
        };
 
+       # install all dependencies
+       foreach my $dep (@{$pkg->{depends}}, @{$pkg->{builddepends}}) {
+               next if $dep =~ /@/;
+               $dep =~ s/^\+//;
+               install_package($feed, $dep) == 0 or $ret = 1;
+       }
+
        return $ret;
 }
 
        return $ret;
 }
 
This page took 0.026366 seconds and 4 git commands to generate.