From 13c379e5c6e37b3822bf6e4e18cc6317e5b40fbb Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 6 Mar 2019 14:45:15 +0100 Subject: [PATCH] ib: display whether profile comes with image metadata Having image metadata (and signature) appended is a condition for semi-automated sysupgrade, hence IB needs to be able to tell which images will end up with metadata. Signed-off-by: Daniel Golle --- include/image.mk | 1 + scripts/metadata.pm | 2 ++ scripts/target-metadata.pl | 1 + target/imagebuilder/files/Makefile | 2 +- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/image.mk b/include/image.mk index 5268f0bdb7..62e3af9e4f 100644 --- a/include/image.mk +++ b/include/image.mk @@ -557,6 +557,7 @@ define Device/DumpInfo Target-Profile: DEVICE_$(1) Target-Profile-Name: $(DEVICE_TITLE) Target-Profile-Packages: $(DEVICE_PACKAGES) +Target-Profile-hasImageMetadata: $(if $(foreach image,$(IMAGES),$(findstring append-metadata,$(IMAGE/$(image)))),1,0) Target-Profile-Description: $(DEVICE_DESCRIPTION) @@ diff --git a/scripts/metadata.pm b/scripts/metadata.pm index 5300e293e7..d9804f8dc3 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -139,6 +139,7 @@ sub parse_target_metadata($) { $profile = { id => $1, name => $1, + has_image_metadata => 0, priority => 999, packages => [] }; @@ -146,6 +147,7 @@ sub parse_target_metadata($) { push @{$target->{profiles}}, $profile; }; /^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1; + /^Target-Profile-hasImageMetadata:\s*(\d+)\s*$/ and $profile->{has_image_metadata} = $1; /^Target-Profile-Priority:\s*(\d+)\s*$/ and do { $profile->{priority} = $1; $target->{sort} = 1; diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index ef0a34eb4f..2f045eb379 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -422,6 +422,7 @@ sub gen_profile_mk() { print "PROFILE_NAMES = ".join(" ", map { $_->{id} } @{$cur->{profiles}})."\n"; foreach my $profile (@{$cur->{profiles}}) { print $profile->{id}.'_NAME:='.$profile->{name}."\n"; + print $profile->{id}.'_HAS_IMAGE_METADATA:='.$profile->{has_image_metadata}."\n"; print $profile->{id}.'_PACKAGES:='.join(' ', @{$profile->{packages}})."\n"; } } diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile index 76ea19028e..1370ec27df 100644 --- a/target/imagebuilder/files/Makefile +++ b/target/imagebuilder/files/Makefile @@ -73,7 +73,7 @@ include $(INCLUDE_DIR)/target.mk USER_PROFILE ?= $(firstword $(PROFILE_NAMES)) PROFILE_LIST = $(foreach p,$(PROFILE_NAMES), \ - echo '$(patsubst DEVICE_%,%,$(p)):'; $(if $($(p)_NAME),echo ' $(subst ','"'"',$($(p)_NAME))'; ) echo ' Packages: $($(p)_PACKAGES)'; \ + echo '$(patsubst DEVICE_%,%,$(p)):'; $(if $($(p)_NAME),echo ' $(subst ','"'"',$($(p)_NAME))'; ) echo ' Packages: $($(p)_PACKAGES)'; echo ' hasImageMetadata: $($(p)_HAS_IMAGE_METADATA)';\ ) .profiles.mk: .targetinfo