X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=scripts%2Fmetadata.pm;h=8334f26d3179a0eb83aa1aa976778ff5828faf45;hb=08fb61d316dc897b62a3d746927768b87e1bff58;hp=3b756216a5ee7fac5ba31497f75ff5741d1d4998;hpb=1189af85fd35f46fa5239b5de6113d3665b9d9cf;p=openwrt%2Fstaging%2Fflorian.git diff --git a/scripts/metadata.pm b/scripts/metadata.pm index 3b756216a5..8334f26d31 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -87,17 +87,16 @@ sub parse_target_metadata($) { priority => 999, packages => [] }; + $1 =~ /^DEVICE_/ and $target->{has_devices} = 1; push @{$target->{profiles}}, $profile; }; - /^Target-Profile-Name:\s*(.+)\s*$/ and do { + /^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1; + /^Target-Profile-Priority:\s*(\d+)\s*$/ and do { + $profile->{priority} = $1; $target->{sort} = 1; - $profile->{name} = $1; }; - /^Target-Profile-Priority:\s*(\d+)\s*$/ and $profile->{priority} = $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) { @@ -112,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; } @@ -158,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; @@ -185,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; @@ -252,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;