diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-01-08 12:17:30 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-01-13 19:54:44 +0100 |
commit | 47d6b05ad328e80e4ee05e48aa95462f3518c014 (patch) | |
tree | c1caa85b174473b25be2f5889cf4857529f13caf /scripts/feeds | |
parent | 565de8b8a8b3532d07abba7a083763ac31ca28ee (diff) | |
download | openwrt-47d6b05ad328e80e4ee05e48aa95462f3518c014.tar.gz openwrt-47d6b05ad328e80e4ee05e48aa95462f3518c014.tar.bz2 openwrt-47d6b05ad328e80e4ee05e48aa95462f3518c014.zip |
metadata: always resolve dependencies through provides list
Instead of adding virtual packages to the normal package list, keep a
separate list for provides, make each package provide itself, and resolve
all dependencies through this list. This allows to use PROVIDES to replace
existing packages.
Fixes FS#837.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Diffstat (limited to 'scripts/feeds')
-rwxr-xr-x | scripts/feeds | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/scripts/feeds b/scripts/feeds index 4595c824a4..f5d764a175 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -252,7 +252,6 @@ sub search_feed { my $substr; my $pkgmatch = 1; - next if $pkg->{vdepends}; foreach my $substr (@substr) { my $match; foreach my $key (qw(name title description src)) { @@ -306,7 +305,6 @@ sub list_feed { get_feed($feed); foreach my $name (sort { lc($a) cmp lc($b) } keys %$feed_package) { my $pkg = $feed_package->{$name}; - next if $pkg->{vdepends}; if($pkg->{name}) { printf "\%-32s\t\%s\n", $pkg->{name}, $pkg->{title}; } @@ -534,6 +532,7 @@ sub install_package { @{$feed_src->{$src}{"builddepends/host"}}, map { @{$_->{depends}} } @{$feed_src->{$src}{packages}} ) { + # TODO: handle virtual packages and PROVIDES next if $dep =~ /@/; $dep =~ s/^\+//; $dep =~ s/^.+://; @@ -594,7 +593,6 @@ sub install { get_feed($f->[1]); foreach my $name (sort { lc($a) cmp lc($b) } keys %$feed_package) { my $p = $feed_package->{$name}; - next if $p->{vdepends}; if( $p->{name} ) { install_package($feed, $p->{name}, exists($opts{f})) == 0 or $ret = 1; get_feed($f->[1]); |