From 10069c4e5d353401533420e05d77bb6a8460b442 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 11 Jul 2026 15:39:06 -0400 Subject: [PATCH] tor, torproxy: Avoid error if defaults file missing during uninstall See: https://discuss.freedombox.org/t/error-when-uninstalling-tor-and-tor-proxy/4295 sunil: Use pathlib.Path.unlink() Tests: - Install Tor and Tor Proxy. Uninstall both. Uninstall is succesful. - Install Tor and Tor Proxy. Manually delete /var/run/tor-instances/*.defaults. Uninstall both apps. Uninstall is successful. A warning is printed in the logs. Signed-off-by: James Valleroy Signed-off-by: Sunil Mohan Adapa Reviewed-by: Sunil Mohan Adapa --- plinth/modules/tor/privileged.py | 4 +++- plinth/modules/torproxy/privileged.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plinth/modules/tor/privileged.py b/plinth/modules/tor/privileged.py index 1aec47b85..230b00aac 100644 --- a/plinth/modules/tor/privileged.py +++ b/plinth/modules/tor/privileged.py @@ -494,5 +494,7 @@ def uninstall(): for directory in directories: shutil.rmtree(directory, ignore_errors=True) - os.unlink(f'/var/run/tor-instances/{INSTANCE_NAME}.defaults') + defaults_file = f'/var/run/tor-instances/{INSTANCE_NAME}.defaults' + pathlib.Path(defaults_file).unlink(missing_ok=True) + action_utils.service_unmask(SERVICE_NAME) diff --git a/plinth/modules/torproxy/privileged.py b/plinth/modules/torproxy/privileged.py index 883df4a79..056b32316 100644 --- a/plinth/modules/torproxy/privileged.py +++ b/plinth/modules/torproxy/privileged.py @@ -2,7 +2,7 @@ """Configure Tor Proxy service.""" import logging -import os +import pathlib import shutil from typing import Any @@ -190,5 +190,7 @@ def uninstall(): for directory in directories: shutil.rmtree(directory, ignore_errors=True) - os.unlink(f'/var/run/tor-instances/{INSTANCE_NAME}.defaults') + defaults_file = f'/var/run/tor-instances/{INSTANCE_NAME}.defaults' + pathlib.Path(defaults_file).unlink(missing_ok=True) + action_utils.service_unmask(SERVICE_NAME)