[RFC PATCH 2/2] base-files: sysupgrade: fine-tune preserved files during upgrade

Paul Spooren mail at aparcar.org
Sun Dec 27 16:39:08 EST 2020



On Fr, Jul 10, 2020 at 12:47, Adrian Schmutzler 
<freifunk at adrianschmutzler.de> wrote:
> For some downstream projects it is desirable not to keep the whole
> set of configuration files, but to have most of them reset during
> upgrade (and reconfigured afterwards) and just keep a small subset
> in /etc/sysupgrade.conf.
> 
> With this patch, the subset of files kept during upgrade is made
> configurable, while default setup remains untouched:
> 
> By setting the appropriate variables or providing command line
> options, one can now selectively disable keeping ...
> 
> ... the files in /lib/upgrade/keep.d/* by
>     setting SAVE_CONFIG_KEEPD=0 or providing --no-keepd
> 
> ... the files managed by opkg accessible via /usr/lib/opkg/status by
>     setting SAVE_CONFIG_OPKG=0 or providing --no-opkg
> 
> If a file is listed in multiple locations, it is kept until it is
> "disabled" everywhere.
> 
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>

Acked-by: Paul Spooren <mail at aparcar.org>

> ---
>  package/base-files/files/sbin/sysupgrade | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/package/base-files/files/sbin/sysupgrade 
> b/package/base-files/files/sbin/sysupgrade
> index 4ecea5a303..e48870497e 100755
> --- a/package/base-files/files/sbin/sysupgrade
> +++ b/package/base-files/files/sbin/sysupgrade
> @@ -10,6 +10,8 @@ export MTD_CONFIG_ARGS=""
>  export INTERACTIVE=0
>  export VERBOSE=1
>  export SAVE_CONFIG=1
> +export SAVE_CONFIG_KEEPD=1
> +export SAVE_CONFIG_OPKG=1
>  export SAVE_OVERLAY=0
>  export SAVE_OVERLAY_PATH=
>  export SAVE_PARTITIONS=1
> @@ -32,6 +34,8 @@ while [ -n "$1" ]; do
>  		-v) export VERBOSE="$(($VERBOSE + 1))";;
>  		-q) export VERBOSE="$(($VERBOSE - 1))";;
>  		-n) export SAVE_CONFIG=0;;
> +		--no-keepd) export SAVE_CONFIG_KEEPD=0;;
> +		--no-opkg) export SAVE_CONFIG_OPKG=0;;
>  		-c) export SAVE_OVERLAY=1 SAVE_OVERLAY_PATH=/etc;;
>  		-o) export SAVE_OVERLAY=1 SAVE_OVERLAY_PATH=/;;
>  		-p) export SAVE_PARTITIONS=0;;
> @@ -73,6 +77,8 @@ upgrade-option:
>  	             from packages but including changed confs.
>  	-u           skip from backup files that are equal to those in /rom
>  	-n           do not save configuration over reflash
> +	--no-keepd   do not save (exclude) keep.d configuration files over 
> reflash
> +	--no-opkg    do not save (exclude) opkg-managed configuration files 
> over reflash
>  	-p           do not attempt to restore the partition table after 
> flash.
>  	-k           include in backup a list of current installed packages 
> at
>  	             $INSTALLED_PACKAGES
> @@ -123,6 +129,8 @@ list_conffiles() {
>  }
> 
>  list_changed_conffiles() {
> +	[ $SAVE_CONFIG_OPKG = 1 ] || return
> +
>  	# Cannot handle spaces in filenames - but opkg cannot either...
>  	list_conffiles | while read file csum; do
>  		[ -r "$file" ] || continue
> @@ -133,9 +141,11 @@ list_changed_conffiles() {
> 
>  list_static_conffiles() {
>  	local filter=$1
> +	local filelist=/etc/sysupgrade.conf
> +	[ $SAVE_CONFIG_KEEPD = 1 ] && filelist="$filelist 
> /lib/upgrade/keep.d/*"
> 
>  	find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
> -		/etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \
> +		$filelist 2>/dev/null) \
>  		\( -type f -o -type l \) $filter 2>/dev/null
>  }
> 
> --
> 2.20.1
> 
> 
> _______________________________________________
> 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