From 585997f8d2cb0c080a9f9d6f158dcefe55f9ad12 Mon Sep 17 00:00:00 2001
From: Ralph Hempel <ralph.hempel@lantiq.com>
Date: Thu, 20 Mar 2008 17:08:24 +0000
Subject: [PATCH] fix package/symlinks target, will call scripts/feeds update /
 install introduce new package/symlinks-install and package/symlinks-clean
 targets - package/symlink-install will re-create the index files and the
 symlinks for all ./feeds (no update from repositories is performed) -
 package/symlink-clean will delete all installed symlinks (keeping the ./feeds
 untouched)

SVN-Revision: 10634
---
 Makefile      | 16 +++++++++++++---
 scripts/feeds | 10 +++++-----
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index 77660bb8d7..8b0ef0d57d 100644
--- a/Makefile
+++ b/Makefile
@@ -57,10 +57,20 @@ prepare: .config $(tools/stamp-install) $(toolchain/stamp-install)
 world: prepare $(target/stamp-compile) $(package/stamp-cleanup) $(package/stamp-compile) $(package/stamp-install) $(package/stamp-rootfs-prepare) $(target/stamp-install) FORCE
 	$(MAKE) package/index
 
+# update all feeds, re-create index files, install symlinks
 package/symlinks:
-	$(SCRIPT_DIR)/feeds update
-	cd package; ln -sf ../feeds/packages openwrt-packages
+	$(SCRIPT_DIR)/feeds update -a
+	$(SCRIPT_DIR)/feeds install -a
 
-.PHONY: clean dirclean prereq prepare world package/symlinks
+# re-create index files, install symlinks
+package/symlinks-install:
+	$(SCRIPT_DIR)/feeds update -i
+	$(SCRIPT_DIR)/feeds install -a
+
+# remove all symlinks, don't touch ./feeds
+package/symlinks-clean:
+	$(SCRIPT_DIR)/feeds uninstall -a
+
+.PHONY: clean dirclean prereq prepare world package/symlinks package/symlinks-install package/symlinks-clean
 
 endif
diff --git a/scripts/feeds b/scripts/feeds
index 3c6c05064f..4176c31f32 100755
--- a/scripts/feeds
+++ b/scripts/feeds
@@ -238,15 +238,17 @@ sub install_package {
 	$feed = lookup_package($feed, $name);
 	$feed or do {
 		$installed{$name} and return 0;
-		warn "WARNING: No feed for package '$name' found.\n";
-		return 1;
+		# TODO: check if it's already installed within ./package directory
+		warn "WARNING: No feed for package '$name' found, maybe it's already part of the standard packages?\n";
+		return 0;
 	};
 
 	my $pkg = $feed{$feed->[1]}->{$name} or return 1;
 	$pkg->{name} or do {
 		$installed{$name} and return 0;
+		# TODO: check if this is an alias package, maybe it's known by another name
 		warn "WARNING: Package '$name' is not available in feed $feed->[1].\n";
-		return 1;
+		return 0;
 	};
 	my $src = $pkg->{src};
 	my $type = $feed->[0];
@@ -327,8 +329,6 @@ sub install {
 					my $p = $package{$name};
 					if( $p->{name} ) {
 						install_package($feed, $p->{name}) == 0 or $ret = 1;
-					} else {
-						warn "WARNING: Package '$name' is not available\n";
 					}
 				}
 			}
-- 
GitLab