[OpenWrt-Devel] [PATCH 1/2] base-files: pass "save_config" option to the "sysupgrade" method

Rafał Miłecki zajec5 at gmail.com
Fri Aug 16 11:05:16 EDT 2019


From: Rafał Miłecki <rafal at milecki.pl>

This explicitly lets stage2 know if config should be preserved.

Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 package/base-files/files/lib/upgrade/common.sh | 2 +-
 package/base-files/files/lib/upgrade/do_stage2 | 2 +-
 package/base-files/files/lib/upgrade/stage2    | 2 --
 package/base-files/files/sbin/sysupgrade       | 5 ++++-
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh
index 2afa0addb4..efa301cd95 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -218,7 +218,7 @@ indicate_upgrade() {
 # $(2): (optional) pipe command to extract firmware, e.g. dd bs=n skip=m
 default_do_upgrade() {
 	sync
-	if [ "$SAVE_CONFIG" -eq 1 ]; then
+	if [ "$UPGRADE_OPT_SAVE_CONFIG" -eq 1 ]; then
 		get_image "$1" "$2" | mtd $MTD_ARGS $MTD_CONFIG_ARGS -j "$CONF_TAR" write - "${PART_NAME:-image}"
 	else
 		get_image "$1" "$2" | mtd $MTD_ARGS write - "${PART_NAME:-image}"
diff --git a/package/base-files/files/lib/upgrade/do_stage2 b/package/base-files/files/lib/upgrade/do_stage2
index 8aae452560..0e6cc1bfc3 100755
--- a/package/base-files/files/lib/upgrade/do_stage2
+++ b/package/base-files/files/lib/upgrade/do_stage2
@@ -11,7 +11,7 @@ else
 	default_do_upgrade "$IMAGE"
 fi
 
-if [ "$SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then
+if [ "$UPGRADE_OPT_SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then
 	platform_copy_config
 fi
 
diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2
index fef121f37c..4e5837af83 100755
--- a/package/base-files/files/lib/upgrade/stage2
+++ b/package/base-files/files/lib/upgrade/stage2
@@ -6,7 +6,6 @@
 export IMAGE="$1"
 COMMAND="$2"
 
-export SAVE_CONFIG=1
 export SAVE_PARTITIONS=1
 
 export INTERACTIVE=0
@@ -18,7 +17,6 @@ RAMFS_COPY_BIN=		# extra programs for temporary ramfs root
 RAMFS_COPY_DATA=	# extra data files
 
 
-[ -f "$CONF_TAR" ] || export SAVE_CONFIG=0
 [ -f /tmp/sysupgrade.always.overwrite.bootdisk.partmap ] && export SAVE_PARTITIONS=0
 
 include /lib/upgrade
diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade
index 001e644476..15514159b3 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/package/base-files/files/sbin/sysupgrade
@@ -369,6 +369,9 @@ else
 	ubus call system sysupgrade "{
 		\"prefix\": $(json_string "$RAM_ROOT"),
 		\"path\": $(json_string "$IMAGE"),
-		\"command\": $(json_string "$COMMAND")
+		\"command\": $(json_string "$COMMAND"),
+		\"options\": {
+			\"save_config\": $SAVE_CONFIG
+		}
 	}"
 fi
-- 
2.21.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list