diff options
| -rw-r--r-- | package/Makefile | 1 | ||||
| -rwxr-xr-x | scripts/metadata.pl | 28 | 
2 files changed, 17 insertions, 12 deletions
| diff --git a/package/Makefile b/package/Makefile index 38e39da29..aa059a7d2 100644 --- a/package/Makefile +++ b/package/Makefile @@ -20,6 +20,7 @@ $(curdir)/cleanup: $(TMP_DIR)/.build  	rm -rf $(TARGET_DIR)  $(curdir)/rootfs-prepare: $(TMP_DIR)/.build +	@-$(MAKE) package/preconfig  	@if [ -d $(TOPDIR)/files ]; then \  		$(CP) $(TOPDIR)/files/. $(TARGET_DIR); \  	fi diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 695abf7b3..03041f97c 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -132,11 +132,15 @@ sub parse_package_metadata() {  		/^Prereq-Check:/ and $pkg->{prereq} = 1;  		/^Preconfig:\s*(.+)\s*$/ and do {  			my $pkgname = $pkg->{name}; -			$preconfig{$pkgname} or $preconfig{$pkgname} = []; -			$preconfig = { -				id => $1 -			}; -			push @{$preconfig{$pkgname}}, $preconfig; +			$preconfig{$pkgname} or $preconfig{$pkgname} = {}; +			if (exists $preconfig{$pkgname}->{$1}) { +				$preconfig = $preconfig{$pkgname}->{$1}; +			} else { +				$preconfig = { +					id => $1 +				}; +				$preconfig{$pkgname}->{$1} = $preconfig; +			}  		};  		/^Preconfig-Type:\s*(.*?)\s*$/ and $preconfig->{type} = $1;  		/^Preconfig-Label:\s*(.*?)\s*$/ and $preconfig->{label} = $1; @@ -451,14 +455,14 @@ sub gen_package_config() {  	parse_package_metadata();  	print "menuconfig UCI_PRECONFIG\n\tbool \"Image configuration\"\n";  	foreach my $preconfig (keys %preconfig) { -		foreach my $cfg (@{$preconfig{$preconfig}}) { -			my $conf = $cfg->{id}; +		foreach my $cfg (keys %{$preconfig{$preconfig}}) { +			my $conf = $preconfig{$preconfig}->{$cfg}->{id};  			$conf =~ tr/\.-/__/;  			print <<EOF  	config UCI_PRECONFIG_$conf -		string "$cfg->{label}" if UCI_PRECONFIG +		string "$preconfig{$preconfig}->{$cfg}->{label}" if UCI_PRECONFIG  		depends PACKAGE_$preconfig -		default "$cfg->{default}" +		default "$preconfig{$preconfig}->{$cfg}->{default}"  EOF  		} @@ -524,10 +528,10 @@ sub gen_package_mk() {  	}  	foreach my $preconfig (keys %preconfig) {  		my $cmds; -		foreach my $cfg (@{$preconfig{$preconfig}}) { -			my $conf = $cfg->{id}; +		foreach my $cfg (keys %{$preconfig{$preconfig}}) { +			my $conf = $preconfig{$preconfig}->{$cfg}->{id};  			$conf =~ tr/\.-/__/; -			$cmds .= "\techo \"uci set '$cfg->{id}=\$(subst \",,\$(CONFIG_UCI_PRECONFIG_$conf))'\"; \\\n"; +			$cmds .= "\techo \"uci set '$preconfig{$preconfig}->{$cfg}->{id}=\$(subst \",,\$(CONFIG_UCI_PRECONFIG_$conf))'\"; \\\n";  		}  		next unless $cmds;  		print <<EOF | 
