base-files: sysupgrade: add uci-defaults script disabling services #2
authorRafał Miłecki <rafal@milecki.pl>
Wed, 28 Feb 2024 10:51:02 +0000 (11:51 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 29 Feb 2024 15:12:06 +0000 (16:12 +0100)
Disabled services should be kept disabled after sysupgrade. This can be
easily handled using a proper uci-defaults script.

Extend sysupgrade to check for disabled services, generate uci-defaults
script disabling them and include it in backup.

Cc: Christian Marangi <ansuelsmth@gmail.com>
Cc: Jo-Philipp Wich <jo@mein.io>
Cc: Jonas Gorski <jonas.gorski@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Jo-Philipp Wich <jo@mein.io>
package/base-files/files/sbin/sysupgrade

index a11e17615c4e75f14ea33256fa3f9209f3c49549..78ec455067910aea384338c4d0242a419d717515 100755 (executable)
@@ -236,6 +236,7 @@ include /lib/upgrade
 
 create_backup_archive() {
        local conf_tar="$1"
+       local disabled
 
        [ "$(rootfs_type)" = "tmpfs" ] && {
                echo "Cannot save config while running from ramdisk." >&2
@@ -250,6 +251,14 @@ create_backup_archive() {
        [ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
        sed -i -e 's,^/,,' "$CONFFILES"
        {
+               for service in /etc/init.d/*; do
+                       if ! $service enabled; then
+                               disabled="$disabled$service disable\n"
+                       fi
+               done
+               disabled="$disabled\nexit 0"
+               tar_print_member "/etc/uci-defaults/10_disable_services" "$(echo -e $disabled)"
+
                # Part of archive with installed packages info
                if [ "$SAVE_INSTALLED_PKGS" -eq 1 ]; then
                        # Format: pkg-name<TAB>{rom,overlay,unknown}