X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fmkresin.git;a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Fsbin%2Fsysupgrade;h=a378b029500ac5981d504889b0b3e6af3cf92a0d;hp=3fd612c37572aaf3884ccfb23f7592dbdd66b9f6;hb=5e1b4c57ded7898be5255aef594fa18ec206f0b2;hpb=3e98674bcf91c5273fd4ac830581622ee7e62651 diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index 3fd612c375..a378b02950 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -55,7 +55,6 @@ Usage: $0 [...] $0 [-q] [-i] upgrade-option: - -d add a delay before rebooting -f restore configuration from .tar.gz (file or url) -i interactive mode -c attempt to preserve all changed files in /etc/ @@ -97,12 +96,31 @@ EOF # prevent messages from clobbering the tarball when using stdout [ "$CONF_BACKUP" = "-" ] && export VERBOSE=0 + +list_conffiles() { + awk ' + BEGIN { conffiles = 0 } + /^Conffiles:/ { conffiles = 1; next } + !/^ / { conffiles = 0; next } + conffiles == 1 { print } + ' /usr/lib/opkg/status +} + +list_changed_conffiles() { + # Cannot handle spaces in filenames - but opkg cannot either... + list_conffiles | while read file csum; do + [ -r "$file" ] || continue + + echo "${csum} ${file}" | sha256sum -sc - || echo "$file" + done +} + add_uci_conffiles() { local file="$1" ( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \ /etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \ -type f -o -type l 2>/dev/null; - opkg list-changed-conffiles ) | sort -u > "$file" + list_changed_conffiles ) | sort -u > "$file" return 0 } @@ -119,7 +137,6 @@ add_overlayfiles() { # hooks sysupgrade_image_check="fwtool_check_image platform_check_image" -sysupgrade_pre_upgrade="fwtool_pre_upgrade" if [ $SAVE_OVERLAY = 1 ]; then [ ! -d /overlay/upper/etc ] && { @@ -246,10 +263,8 @@ else rm -f /tmp/sysupgrade.always.overwrite.bootdisk.partmap fi -run_hooks "" $sysupgrade_pre_upgrade - install_bin /sbin/upgraded -v "Commencing upgrade. All shell sessions will be closed now." +v "Commencing upgrade. Closing all shell sessions." COMMAND='. /lib/functions.sh; include /lib/upgrade; do_upgrade_stage2'