X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=scripts%2Fmetadata.pm;h=a527d68f8f4254044f01c3911c2be605211ccafc;hb=405ff62784ca0e5ab00346208db710ba38f62f03;hp=f90446298af1841f741ed14caeacaa0078b45ded;hpb=d29153dc010840afa45e70ced91c5e558fca6bb6;p=openwrt-10.03%2F.git diff --git a/scripts/metadata.pm b/scripts/metadata.pm index f90446298..a527d68f8 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -54,6 +54,7 @@ sub parse_package_metadata($) { $srcpackage{$src} = []; undef $pkg; }; + next unless $src; /^Package:\s*(.+?)\s*$/ and do { $pkg = {}; $pkg->{src} = $src; @@ -63,6 +64,7 @@ sub parse_package_metadata($) { $pkg->{depends} = []; $pkg->{builddepends} = []; $pkg->{subdir} = $subdir; + $pkg->{tristate} = 1; $package{$1} = $pkg; push @{$srcpackage{$src}}, $pkg; }; @@ -75,7 +77,13 @@ sub parse_package_metadata($) { /^Provides: \s*(.+)\s*$/ and do { my @vpkg = split /\s+/, $1; foreach my $vpkg (@vpkg) { - $package{$vpkg} or $package{$vpkg} = { vdepends => [] }; + $package{$vpkg} or $package{$vpkg} = { + name => $vpkg, + vdepends => [], + src => $src, + subdir => $subdir, + makefile => $makefile + }; push @{$package{$vpkg}->{vdepends}}, $pkg->{name}; } }; @@ -88,7 +96,14 @@ sub parse_package_metadata($) { push @{$category{$1}->{$src}}, $pkg; }; /^Description: \s*(.*)\s*$/ and $pkg->{description} = "\t\t $1\n". get_multiline(*FILE, "\t\t "); - /^Config: \s*(.*)\s*$/ and $pkg->{config} = "$1\n".get_multiline(*FILE); + /^Type: \s*(.+)\s*$/ and do { + $pkg->{type} = [ split /\s+/, $1 ]; + undef $pkg->{tristate}; + foreach my $type (@{$pkg->{type}}) { + $type =~ /ipkg/ and $pkg->{tristate} = 1; + } + }; + /^Config: \s*(.*)\s*$/ and $pkg->{config} = "$1\n".get_multiline(*FILE, "\t"); /^Prereq-Check:/ and $pkg->{prereq} = 1; /^Preconfig:\s*(.+)\s*$/ and do { my $pkgname = $pkg->{name}; @@ -107,7 +122,7 @@ sub parse_package_metadata($) { /^Preconfig-Default:\s*(.*?)\s*$/ and $preconfig->{default} = $1; } close FILE; - return %category; + return 1; } 1;