mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-10-18 21:48:23 +02:00
build: add DEVICE_COMPAT_VERSION and DEVICE_COMPAT_MESSAGE
We regularly encounter the situation that devices are subject to changes that will make them incompatible to previous versions. Removing SUPPORTED_DEVICES will not really be helpful in most of these cases, as this only helps after a rename. To solve this situation, this patchset introduces a compatibility version for devices. It will be implemented via a per-device Make variable DEVICE_COMPAT_VERSION, which will be set to 1.0 globally by default and then can be overwritten as needed. Furthermore, a variable DEVICE_COMPAT_MESSAGE is added, where a message to be displayed during sysupgrade may be specified optionally. This patch only implements the build variables and adds them to the sysupgrade metadata, the evaluation will be addressed in a subsequent patch. To set it, one would just need to add the following to a device node: define Device/somedevice ... DEVICE_COMPAT_VERSION := 1.1 DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA endef Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
84cb0f7ace
commit
6867d86e08
@ -384,13 +384,16 @@ define Build/tplink-v2-image
|
|||||||
rm -rf $@.new
|
rm -rf $@.new
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
compat_version=$(if $(DEVICE_COMPAT_VERSION),$(DEVICE_COMPAT_VERSION),1.0)
|
||||||
json_quote=$(subst ','\'',$(subst ",\",$(1)))
|
json_quote=$(subst ','\'',$(subst ",\",$(1)))
|
||||||
#")')
|
#")')
|
||||||
metadata_devices=$(if $(1),$(subst "$(space)","$(comma)",$(strip $(foreach v,$(1),"$(call json_quote,$(v))"))))
|
metadata_devices=$(if $(1),$(subst "$(space)","$(comma)",$(strip $(foreach v,$(1),"$(call json_quote,$(v))"))))
|
||||||
metadata_json = \
|
metadata_json = \
|
||||||
'{ $(if $(IMAGE_METADATA),$(IMAGE_METADATA)$(comma)) \
|
'{ $(if $(IMAGE_METADATA),$(IMAGE_METADATA)$(comma)) \
|
||||||
"metadata_version": "1.0", \
|
"metadata_version": "1.0", \
|
||||||
"supported_devices":[$(call metadata_devices,$(1))], \
|
"compat_version": "$(call json_quote,$(compat_version))", \
|
||||||
|
$(if $(DEVICE_COMPAT_MESSAGE),"compat_message": "$(call json_quote,$(DEVICE_COMPAT_MESSAGE))"$(comma)) \
|
||||||
|
"supported_devices":[$(call metadata_devices,$(SUPPORTED_DEVICES))], \
|
||||||
"version": { \
|
"version": { \
|
||||||
"dist": "$(call json_quote,$(VERSION_DIST))", \
|
"dist": "$(call json_quote,$(VERSION_DIST))", \
|
||||||
"version": "$(call json_quote,$(VERSION_NUMBER))", \
|
"version": "$(call json_quote,$(VERSION_NUMBER))", \
|
||||||
@ -401,7 +404,7 @@ metadata_json = \
|
|||||||
}'
|
}'
|
||||||
|
|
||||||
define Build/append-metadata
|
define Build/append-metadata
|
||||||
$(if $(SUPPORTED_DEVICES),-echo $(call metadata_json,$(SUPPORTED_DEVICES)) | fwtool -I - $@)
|
$(if $(SUPPORTED_DEVICES),-echo $(call metadata_json) | fwtool -I - $@)
|
||||||
[ ! -s "$(BUILD_KEY)" -o ! -s "$(BUILD_KEY).ucert" -o ! -s "$@" ] || { \
|
[ ! -s "$(BUILD_KEY)" -o ! -s "$(BUILD_KEY).ucert" -o ! -s "$@" ] || { \
|
||||||
cp "$(BUILD_KEY).ucert" "$@.ucert" ;\
|
cp "$(BUILD_KEY).ucert" "$@.ucert" ;\
|
||||||
usign -S -m "$@" -s "$(BUILD_KEY)" -x "$@.sig" ;\
|
usign -S -m "$@" -s "$(BUILD_KEY)" -x "$@.sig" ;\
|
||||||
|
@ -419,6 +419,8 @@ define Device/Init
|
|||||||
|
|
||||||
BOARD_NAME :=
|
BOARD_NAME :=
|
||||||
UIMAGE_NAME :=
|
UIMAGE_NAME :=
|
||||||
|
DEVICE_COMPAT_VERSION := 1.0
|
||||||
|
DEVICE_COMPAT_MESSAGE :=
|
||||||
SUPPORTED_DEVICES :=
|
SUPPORTED_DEVICES :=
|
||||||
IMAGE_METADATA :=
|
IMAGE_METADATA :=
|
||||||
|
|
||||||
@ -436,6 +438,7 @@ DEFAULT_DEVICE_VARS := \
|
|||||||
VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
|
VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
|
||||||
DEVICE_DTS_CONFIG DEVICE_DTS_DIR SOC BOARD_NAME UIMAGE_NAME SUPPORTED_DEVICES \
|
DEVICE_DTS_CONFIG DEVICE_DTS_DIR SOC BOARD_NAME UIMAGE_NAME SUPPORTED_DEVICES \
|
||||||
IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR UBOOT_PATH IMAGE_SIZE \
|
IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR UBOOT_PATH IMAGE_SIZE \
|
||||||
|
DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
|
||||||
DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
|
DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
|
||||||
DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \
|
DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \
|
||||||
DEVICE_ALT1_VENDOR DEVICE_ALT1_MODEL DEVICE_ALT1_VARIANT \
|
DEVICE_ALT1_VENDOR DEVICE_ALT1_MODEL DEVICE_ALT1_VARIANT \
|
||||||
|
Loading…
Reference in New Issue
Block a user