base-files: sysupgrade: add uci-defaults script disabling services #2

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>
This commit is contained in:
Rafał Miłecki 2024-02-28 11:51:02 +01:00
parent e36cc53092
commit 0ad062a21b

View File

@ -236,6 +236,7 @@ include /lib/upgrade
create_backup_archive() { create_backup_archive() {
local conf_tar="$1" local conf_tar="$1"
local disabled
[ "$(rootfs_type)" = "tmpfs" ] && { [ "$(rootfs_type)" = "tmpfs" ] && {
echo "Cannot save config while running from ramdisk." >&2 echo "Cannot save config while running from ramdisk." >&2
@ -250,6 +251,14 @@ create_backup_archive() {
[ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V="" [ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
sed -i -e 's,^/,,' "$CONFFILES" 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 # Part of archive with installed packages info
if [ "$SAVE_INSTALLED_PKGS" -eq 1 ]; then if [ "$SAVE_INSTALLED_PKGS" -eq 1 ]; then
# Format: pkg-name<TAB>{rom,overlay,unknown} # Format: pkg-name<TAB>{rom,overlay,unknown}