[source] base-files: fix sysupgrade -b/-l when -c is used

LEDE Commits lede-commits at lists.infradead.org
Thu Dec 14 00:29:52 PST 2017


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/3e98674bcf91c5273fd4ac830581622ee7e62651

commit 3e98674bcf91c5273fd4ac830581622ee7e62651
Author: Luiz Angelo Daros de Luca <luizluca at gmail.com>
AuthorDate: Tue Nov 21 01:45:05 2017 -0200

    base-files: fix sysupgrade -b/-l when -c is used
    
    Since /overlay/upper appeared, -b ignored -c silently (cause it was
    still checking for /overlay/etc). Now, if /overlay/upper is absent,
    sysupgrade -c will fail and exit verbosely.
    
    Fix -l to consider -c (it never did).
    
    Clean up to always use /overlay/upper/xxx instead of still checking
    for /overlay/xxx.
    
    Signed-off-by: Luiz Angelo Daros de Luca <luizluca at gmail.com>
---
 package/base-files/files/sbin/sysupgrade | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade
index 359f21f..3fd612c 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/package/base-files/files/sbin/sysupgrade
@@ -108,14 +108,8 @@ add_uci_conffiles() {
 
 add_overlayfiles() {
 	local file="$1"
-	if [ -d /overlay/upper ]; then
-		local overlaydir="/overlay/upper"
-	else
-		local overlaydir="/overlay"
-	fi
-	find $overlaydir/etc/ -type f -o -type l | sed \
+	find /overlay/upper/etc/ -type f -o -type l | sed \
 		-e 's,^/overlay\/upper/,/,' \
-		-e 's,^/overlay/,/,' \
 		-e '\,/META_[a-zA-Z0-9]*$,d' \
 		-e '\,/functions.sh$,d' \
 		-e '\,/[^/]*-opkg$,d' \
@@ -126,9 +120,16 @@ add_overlayfiles() {
 # hooks
 sysupgrade_image_check="fwtool_check_image platform_check_image"
 sysupgrade_pre_upgrade="fwtool_pre_upgrade"
-[ $SAVE_OVERLAY = 0 -o ! -d /overlay/etc ] && \
-	sysupgrade_init_conffiles="add_uci_conffiles" || \
+
+if [ $SAVE_OVERLAY = 1 ]; then
+	[ ! -d /overlay/upper/etc ] && {
+		echo "Cannot find '/overlay/upper/etc', required for '-c'"
+		exit 1
+	}
 	sysupgrade_init_conffiles="add_overlayfiles"
+else
+	sysupgrade_init_conffiles="add_uci_conffiles"
+fi
 
 include /lib/upgrade
 
@@ -152,7 +153,7 @@ do_save_conffiles() {
 }
 
 if [ $CONF_BACKUP_LIST -eq 1 ]; then
-	add_uci_conffiles "$CONFFILES"
+	run_hooks "$CONFFILES" $sysupgrade_init_conffiles
 	cat "$CONFFILES"
 	rm -f "$CONFFILES"
 	exit 0



More information about the lede-commits mailing list