openwrt/package/base-files/files/lib/upgrade
Adrian Schmutzler ad3e1f9db4 base-files: fwtool: implement compatibility check for images
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. In this patch, the actual checks are implemented
into fwtool_check_image():

If an incompatible change is introduced, one can increase either
the minor version (1.0->1.1) or the major version (1.0->2.0).

Minor version increment:
This will still allow sysupgrade, but require to reset config
(-n or SAVE_CONFIG=0). If sysupgrade is called without -n, a
corresponding message will be printed. If sysupgrade is called
with -n, it will just pass, with supported devices being checked
as usual. (Which will allow us to add back SUPPORTED_DEVICES for
many cases.)

Major version increment:
This is meant for potential (rare) cases where sysupgrade is
not possible at all, because it would break the device.
In this case, a warning will be printed, and -n won't help.

If image check fails because of one of the versions parts not
matching, the content of DEVICE_COMPAT_MESSAGE is printed in
addition to the generic message (if set).

For both cases, upgrade can still be forced with -F as usual.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-31 11:40:15 +02:00
..
keep.d base-files: Add /etc/shinit for non-login shell init 2020-03-01 21:35:59 +01:00
common.sh base-files: upgrade: fix indent 2020-05-08 20:15:43 +02:00
do_stage2 treewide: sysupgrade: use $UPGRADE_BACKUP to check for backup 2019-09-11 09:05:35 +02:00
fwtool.sh base-files: fwtool: implement compatibility check for images 2020-07-31 11:40:15 +02:00
nand.sh base-files: replace backticks in lib/upgrade/nand.sh 2020-07-15 18:33:56 +02:00
stage2 base-files: switch_to_ramfs: add nand-utils 2020-05-18 18:24:06 +02:00