X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=scripts%2Fmetadata.pm;h=8334f26d3179a0eb83aa1aa976778ff5828faf45;hb=69903c3ee6843d6d65185dd15096471ac5fa6585;hp=0ed3524e8175ecfc6f8e0a16cd13c4e57aaa3d04;hpb=3d8c8cf3bb3c56d84051de4fcd0c16c6f7cd4e10;p=openwrt%2Fopenwrt.git diff --git a/scripts/metadata.pm b/scripts/metadata.pm index 0ed3524e81..8334f26d31 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -68,7 +68,6 @@ sub parse_target_metadata($) { } }; /^Target-Name:\s*(.+)\s*$/ and $target->{name} = $1; - /^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1; /^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1; /^Target-Arch-Packages:\s*(.+)\s*$/ and $target->{arch_packages} = $1; /^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ]; @@ -85,15 +84,19 @@ sub parse_target_metadata($) { $profile = { id => $1, name => $1, + priority => 999, packages => [] }; + $1 =~ /^DEVICE_/ and $target->{has_devices} = 1; push @{$target->{profiles}}, $profile; }; /^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1; + /^Target-Profile-Priority:\s*(\d+)\s*$/ and do { + $profile->{priority} = $1; + $target->{sort} = 1; + }; /^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ]; /^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(*FILE); - /^Target-Profile-Config:/ and $profile->{config} = get_multiline(*FILE, "\t"); - /^Target-Profile-Kconfig:/ and $profile->{kconfig} = 1; } close FILE; foreach my $target (@target) { @@ -108,6 +111,11 @@ sub parse_target_metadata($) { packages => [] } ]; + + $target->{sort} and @{$target->{profiles}} = sort { + $a->{priority} <=> $b->{priority} or + $a->{name} cmp $b->{name}; + } @{$target->{profiles}}; } return @target; } @@ -154,10 +162,10 @@ sub parse_package_metadata($) { $overrides{$src} = 1; }; next unless $src; - next if $ignore{$src}; /^Package:\s*(.+?)\s*$/ and do { undef $feature; $pkg = {}; + $pkg->{ignore} = $ignore{$src}; $pkg->{src} = $src; $pkg->{makefile} = $makefile; $pkg->{name} = $1; @@ -181,7 +189,7 @@ sub parse_package_metadata($) { $feature and do { /^Target-Name:\s*(.+?)\s*$/ and do { $features{$1} or $features{$1} = []; - push @{$features{$1}}, $feature; + push @{$features{$1}}, $feature unless $ignore{$src}; }; /^Target-Title:\s*(.+?)\s*$/ and $feature->{target_title} = $1; /^Feature-Priority:\s*(\d+)\s*$/ and $feature->{priority} = $1; @@ -222,7 +230,7 @@ sub parse_package_metadata($) { /^Build-Depends: \s*(.+)\s*$/ and $pkg->{builddepends} = [ split /\s+/, $1 ]; /^Build-Depends\/(\w+): \s*(.+)\s*$/ and $pkg->{"builddepends/$1"} = [ split /\s+/, $2 ]; /^Build-Types:\s*(.+)\s*$/ and $pkg->{buildtypes} = [ split /\s+/, $1 ]; - /^Feed:\s*(.+?)\s*$/ and $pkg->{feed} = $1; + /^Repository:\s*(.+?)\s*$/ and $pkg->{repository} = $1; /^Category: \s*(.+)\s*$/ and do { $pkg->{category} = $1; defined $category{$1} or $category{$1} = {}; @@ -248,7 +256,7 @@ sub parse_package_metadata($) { $preconfig = { id => $1 }; - $preconfig{$pkgname}->{$1} = $preconfig; + $preconfig{$pkgname}->{$1} = $preconfig unless $ignore{$src}; } }; /^Preconfig-Type:\s*(.*?)\s*$/ and $preconfig->{type} = $1;