diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index a13a6aaf5ae..2afa0addb46 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -225,25 +225,3 @@ default_do_upgrade() { fi [ $? -ne 0 ] && exit 1 } - -do_upgrade_stage2() { - v "Performing system upgrade..." - if type 'platform_do_upgrade' >/dev/null 2>/dev/null; then - platform_do_upgrade "$IMAGE" - else - default_do_upgrade "$IMAGE" - fi - - if [ "$SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then - platform_copy_config - fi - - v "Upgrade completed" - sleep 1 - - v "Rebooting system..." - umount -a - reboot -f - sleep 5 - echo b 2>/dev/null >/proc/sysrq-trigger -} diff --git a/package/base-files/files/lib/upgrade/do_stage2 b/package/base-files/files/lib/upgrade/do_stage2 new file mode 100755 index 00000000000..8aae4525608 --- /dev/null +++ b/package/base-files/files/lib/upgrade/do_stage2 @@ -0,0 +1,25 @@ +#!/bin/sh + +. /lib/functions.sh + +include /lib/upgrade + +v "Performing system upgrade..." +if type 'platform_do_upgrade' >/dev/null 2>/dev/null; then + platform_do_upgrade "$IMAGE" +else + default_do_upgrade "$IMAGE" +fi + +if [ "$SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then + platform_copy_config +fi + +v "Upgrade completed" +sleep 1 + +v "Rebooting system..." +umount -a +reboot -f +sleep 5 +echo b 2>/dev/null >/proc/sysrq-trigger diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2 index 05d9214377f..0a11cb2005e 100755 --- a/package/base-files/files/lib/upgrade/stage2 +++ b/package/base-files/files/lib/upgrade/stage2 @@ -59,7 +59,7 @@ switch_to_ramfs() { local file="$(which "$binary" 2>/dev/null)" [ -n "$file" ] && install_bin "$file" done - install_file /etc/resolv.conf /lib/*.sh /lib/functions/*.sh /lib/upgrade/*.sh $RAMFS_COPY_DATA + install_file /etc/resolv.conf /lib/*.sh /lib/functions/*.sh /lib/upgrade/*.sh /lib/upgrade/do_stage2 $RAMFS_COPY_DATA [ -L "/lib64" ] && ln -s /lib $RAM_ROOT/lib64 diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index 54d7a64b485..73291262e7d 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -363,7 +363,7 @@ fi install_bin /sbin/upgraded v "Commencing upgrade. Closing all shell sessions." -COMMAND='. /lib/functions.sh; include /lib/upgrade; do_upgrade_stage2' +COMMAND='/lib/upgrade/do_stage2' if [ -n "$FAILSAFE" ]; then printf '%s\x00%s\x00%s' "$RAM_ROOT" "$IMAGE" "$COMMAND" >/tmp/sysupgrade