metadata: scripts/feeds: distinguish between source and binary packages, resolve virtual dependencies

Properly resolve build depends to source packages and runtime depends to
binary packages. Dependencies on virtual packages are resolved to the first
provider now.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This commit is contained in:
Matthias Schiffer
2018-01-11 18:38:42 +01:00
parent 47d6b05ad3
commit 52719c2b67
2 changed files with 112 additions and 70 deletions

View File

@@ -228,6 +228,7 @@ sub parse_package_metadata($) {
$pkg->{title} = "";
$pkg->{depends} = [];
$pkg->{mdepends} = [];
$pkg->{provides} = [$1];
$pkg->{tristate} = 1;
$pkg->{override} = $override;
$package{$1} = $pkg;
@@ -268,6 +269,7 @@ sub parse_package_metadata($) {
/^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
/^Provides: \s*(.+)\s*$/ and do {
my @vpkg = split /\s+/, $1;
@{$pkg->{provides}} = ($pkg->{name}, @vpkg);
foreach my $vpkg (@vpkg) {
$vpackage{$vpkg} or $vpackage{$vpkg} = [];
push @{$vpackage{$vpkg}}, $pkg;