瀏覽代碼

imagebuilder: exclude metadata for profiles that have no kernel

Device profiles that specify 'DEFAULT := n' are being included
in the imagebuilder metadata, specifically in .profiles.mk, even
though there is no kernel built for the device.  This results in
'make info' showing the device as valid, but then 'make image
PROFILE=xxx' failing with 'No rule to make target xxx-kernel.bin ...'

We exclude these profiles from the imagebuilder, avoiding these
errors.

Fixes: https://github.com/openwrt/openwrt/issues/18410
Signed-off-by: Eric Fahlgren <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/18748
(cherry picked from commit b88f3ebb3341281fa7e61dc4f039062e72c86b9e)
Link: https://github.com/openwrt/openwrt/pull/18765
Signed-off-by: Robert Marko <[email protected]>
Eric Fahlgren 7 月之前
父節點
當前提交
52d4559fe1
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      scripts/target-metadata.pl

+ 1 - 1
scripts/target-metadata.pl

@@ -433,7 +433,7 @@ sub gen_profile_mk() {
 	my @targets = parse_target_metadata($file);
 	my @targets = parse_target_metadata($file);
 	foreach my $cur (@targets) {
 	foreach my $cur (@targets) {
 		next unless $cur->{id} eq $target;
 		next unless $cur->{id} eq $target;
-		my @profile_ids_unique =  do { my %seen; grep { !$seen{$_}++} map { $_->{id} } @{$cur->{profiles}}};
+		my @profile_ids_unique =  do { my %seen; grep { !$seen{$_}++} map { $_->{id} } grep { $_->{default} !~ /^n/ } @{$cur->{profiles}}};
 		print "PROFILE_NAMES = ".join(" ", @profile_ids_unique)."\n";
 		print "PROFILE_NAMES = ".join(" ", @profile_ids_unique)."\n";
 		foreach my $profile (@{$cur->{profiles}}) {
 		foreach my $profile (@{$cur->{profiles}}) {
 			print $profile->{id}.'_NAME:='.$profile->{name}."\n";
 			print $profile->{id}.'_NAME:='.$profile->{name}."\n";