image: add gzip-filename build recipe
authorMichael Pratt <mcpratt@pm.me>
Thu, 22 Dec 2022 02:33:04 +0000 (21:33 -0500)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 6 Jan 2023 14:34:07 +0000 (15:34 +0100)
Some vendors use basic gzip metadata (original filename and timestamp)
to verify valid images, along with the size of it's contents.

Also, add a new device profile variable FACTORY_IMG_NAME
which would be ideal to use with this new recipe.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
include/image-commands.mk
include/image.mk

index 15084093d23943a3f1f317529a2212ed2fb715c3..ff8acf96c4f316570572eb3c736b9056045cc7f3 100644 (file)
@@ -316,6 +316,15 @@ define Build/gzip
        @mv $@.new $@
 endef
 
+define Build/gzip-filename
+       @mkdir -p $@.tmp
+       @cp $@ $@.tmp/$(word 1,$(1))
+       $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $@.tmp/$(word 1,$(1)) $(word 2,$(1)))
+       $(STAGING_DIR_HOST)/bin/gzip -f -9 -N -c $@.tmp/$(word 1,$(1)) $(word 2,$(1)) > $@.new
+       @mv $@.new $@
+       @rm -rf $@.tmp
+endef
+
 define Build/install-dtb
        $(call locked, \
                $(foreach dts,$(DEVICE_DTS), \
index 5d9d4acb414dfa35b669c47f9f9194c418379961..01bc3bda86865a36f112eeda75831cfc962752e7 100644 (file)
@@ -359,6 +359,7 @@ define Device/Init
   ARTIFACTS :=
   DEVICE_IMG_PREFIX := $(IMG_PREFIX)-$(1)
   DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1)-$$(2)
+  FACTORY_IMG_NAME :=
   IMAGE_SIZE :=
   KERNEL_PREFIX = $$(DEVICE_IMG_PREFIX)
   KERNEL_SUFFIX := -kernel.bin
@@ -418,6 +419,7 @@ DEFAULT_DEVICE_VARS := \
   DEVICE_FDT_NUM DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
   SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \
   UBOOT_PATH IMAGE_SIZE \
+  FACTORY_IMG_NAME \
   DEVICE_PACKAGES DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
   DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
   DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \