@ -2,7 +2,7 @@ package metadata;
use base 'Exporter' ;
use base 'Exporter' ;
use strict ;
use strict ;
use warnings ;
use warnings ;
our @ EXPORT = qw( %package %srcpackage %category %subdir %preconfig %features clear_packages parse_package_metadata get_multiline ) ;
our @ EXPORT = qw( %package %srcpackage %category %subdir %preconfig %features %overrides clear_packages parse_package_metadata get_multiline ) ;
our % package ;
our % package ;
our % preconfig ;
our % preconfig ;
@ -10,6 +10,7 @@ our %srcpackage;
our % category ;
our % category ;
our % subdir ;
our % subdir ;
our % features ;
our % features ;
our % overrides ;
sub get_multiline {
sub get_multiline {
my $ fh = shift ;
my $ fh = shift ;
@ -30,6 +31,7 @@ sub clear_packages() {
% srcpackage = ( ) ;
% srcpackage = ( ) ;
% category = ( ) ;
% category = ( ) ;
% features = ( ) ;
% features = ( ) ;
% overrides = ( ) ;
}
}
sub parse_package_metadata ($) {
sub parse_package_metadata ($) {
@ -40,6 +42,7 @@ sub parse_package_metadata($) {
my $ preconfig ;
my $ preconfig ;
my $ subdir ;
my $ subdir ;
my $ src ;
my $ src ;
my $ override ;
open FILE , "<$file" or do {
open FILE , "<$file" or do {
warn "Cannot open '$file': $!\n" ;
warn "Cannot open '$file': $!\n" ;
@ -54,8 +57,13 @@ sub parse_package_metadata($) {
$ subdir =~ s/^package\/// ;
$ subdir =~ s/^package\/// ;
$ subdir { $ src } = $ subdir ;
$ subdir { $ src } = $ subdir ;
$ srcpackage { $ src } = [] ;
$ srcpackage { $ src } = [] ;
$ override = "" ;
undef $ pkg ;
undef $ pkg ;
} ;
} ;
/^Override: \s*(.+?)\s*$/ and do {
$ override = $ 1 ;
$ overrides { $ src } = 1 ;
} ;
next unless $ src ;
next unless $ src ;
/^Package:\s*(.+?)\s*$/ and do {
/^Package:\s*(.+?)\s*$/ and do {
undef $ feature ;
undef $ feature ;
@ -70,6 +78,7 @@ sub parse_package_metadata($) {
$ pkg - > { buildtypes } = [] ;
$ pkg - > { buildtypes } = [] ;
$ pkg - > { subdir } = $ subdir ;
$ pkg - > { subdir } = $ subdir ;
$ pkg - > { tristate } = 1 ;
$ pkg - > { tristate } = 1 ;
$ pkg - > { override } = $ override ;
$ package { $ 1 } = $ pkg ;
$ package { $ 1 } = $ pkg ;
push @ { $ srcpackage { $ src } } , $ pkg ;
push @ { $ srcpackage { $ src } } , $ pkg ;
} ;
} ;