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
This commit is contained in:
Ralph Hempel 2008-03-20 17:08:24 +00:00
parent 2b5f3d64a3
commit 585997f8d2
2 changed files with 18 additions and 8 deletions

View file

@ -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

View file

@ -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";
}
}
}