Loading maintainers/maintainer-list.nix +6 −0 Original line number Diff line number Diff line Loading @@ -7810,6 +7810,12 @@ githubId = 24463229; name = "Forden"; }; ForgottenBeast = { email = "forgottenbeast@riseup.net"; github = "ForgottenBeast"; githubId = 5754552; name = "ForgottenBeast"; }; forkk = { email = "forkk@forkk.net"; github = "Forkk"; Loading pkgs/by-name/va/vanguards/package.nix 0 → 100644 +38 −0 Original line number Diff line number Diff line { python312Packages, fetchFromGitHub, lib, }: python312Packages.buildPythonApplication rec { pname = "vanguards"; version = "0.3.1-unstable-2023-10-31"; dependencies = [ python312Packages.stem ]; #tries to access the network during the tests, which fails doCheck = false; src = fetchFromGitHub { owner = "mikeperry-tor"; repo = "vanguards"; rev = "8132fa0e556fbcbb3538ff9b48a2180c0c5e8fbd"; sha256 = "sha256-XauSTgoH6zXv2DXyX2lQc6gy6Ysm41fKnyuWZ3hj7kI="; }; patches = [ ./python-3.12.patch ]; postPatch = '' # fix import cycle issue substituteInPlace src/vanguards/main.py --replace-fail \ 'import stem.response.events' 'import stem.socket; import stem.control; import stem.response.events' ''; meta = { maintainers = with lib.maintainers; [ ForgottenBeast ]; mainProgram = "vanguards"; license = lib.licenses.mit; homepage = "https://github.com/mikeperry-tor/vanguards"; description = "Protects TOR hidden services against guard node attacks"; longDescription = '' Runs alongside tor and interacts with its control port in order to protect and alert against guard node attacks on hidden services ''; }; } pkgs/by-name/va/vanguards/python-3.12.patch 0 → 100644 +51 −0 Original line number Diff line number Diff line Origin: https://github.com/mikeperry-tor/vanguards/pull/105/commits/183d24775521feb3ed61b681088347279c3fc84c From: Dave Jones <dave@waveform.org.uk> Date: Wed, 28 Aug 2024 12:54:24 +0100 Subject: [PATCH] Python 3.12 compatibility Python 3.12 removes the deprecated `SafeConfigParser` class. This patch switches the code to using ConfigParser and read_file from Python 3.x, and patches 2.7's SafeConfigParser to a compatible definition. --- src/vanguards/config.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/vanguards/config.py b/src/vanguards/config.py index 1c33391..b8e3f9c 100644 --- a/src/vanguards/config.py +++ b/src/vanguards/config.py @@ -16,9 +16,12 @@ from .logger import plog try: - from configparser import SafeConfigParser, Error + from configparser import ConfigParser, Error except ImportError: from ConfigParser import SafeConfigParser, Error + class ConfigParser(SafeConfigParser): + def read_file(self, f, source=None): + return self.readfp(f, source) ################# Global options ################## @@ -209,7 +212,7 @@ def set_options_from_module(config, module, section): config.set(section, param, str(val)) def generate_config(): - config = SafeConfigParser(allow_no_value=True) + config = ConfigParser(allow_no_value=True) set_options_from_module(config, sys.modules[__name__], "Global") set_options_from_module(config, vanguards, "Vanguards") set_options_from_module(config, bandguards, "Bandguards") @@ -219,9 +222,9 @@ def generate_config(): return config def apply_config(config_file): - config = SafeConfigParser(allow_no_value=True) + config = ConfigParser(allow_no_value=True) - config.readfp(open(config_file, "r")) + config.read_file(open(config_file, "r")) get_options_for_module(config, sys.modules[__name__], "Global") get_options_for_module(config, vanguards, "Vanguards") Loading
maintainers/maintainer-list.nix +6 −0 Original line number Diff line number Diff line Loading @@ -7810,6 +7810,12 @@ githubId = 24463229; name = "Forden"; }; ForgottenBeast = { email = "forgottenbeast@riseup.net"; github = "ForgottenBeast"; githubId = 5754552; name = "ForgottenBeast"; }; forkk = { email = "forkk@forkk.net"; github = "Forkk"; Loading
pkgs/by-name/va/vanguards/package.nix 0 → 100644 +38 −0 Original line number Diff line number Diff line { python312Packages, fetchFromGitHub, lib, }: python312Packages.buildPythonApplication rec { pname = "vanguards"; version = "0.3.1-unstable-2023-10-31"; dependencies = [ python312Packages.stem ]; #tries to access the network during the tests, which fails doCheck = false; src = fetchFromGitHub { owner = "mikeperry-tor"; repo = "vanguards"; rev = "8132fa0e556fbcbb3538ff9b48a2180c0c5e8fbd"; sha256 = "sha256-XauSTgoH6zXv2DXyX2lQc6gy6Ysm41fKnyuWZ3hj7kI="; }; patches = [ ./python-3.12.patch ]; postPatch = '' # fix import cycle issue substituteInPlace src/vanguards/main.py --replace-fail \ 'import stem.response.events' 'import stem.socket; import stem.control; import stem.response.events' ''; meta = { maintainers = with lib.maintainers; [ ForgottenBeast ]; mainProgram = "vanguards"; license = lib.licenses.mit; homepage = "https://github.com/mikeperry-tor/vanguards"; description = "Protects TOR hidden services against guard node attacks"; longDescription = '' Runs alongside tor and interacts with its control port in order to protect and alert against guard node attacks on hidden services ''; }; }
pkgs/by-name/va/vanguards/python-3.12.patch 0 → 100644 +51 −0 Original line number Diff line number Diff line Origin: https://github.com/mikeperry-tor/vanguards/pull/105/commits/183d24775521feb3ed61b681088347279c3fc84c From: Dave Jones <dave@waveform.org.uk> Date: Wed, 28 Aug 2024 12:54:24 +0100 Subject: [PATCH] Python 3.12 compatibility Python 3.12 removes the deprecated `SafeConfigParser` class. This patch switches the code to using ConfigParser and read_file from Python 3.x, and patches 2.7's SafeConfigParser to a compatible definition. --- src/vanguards/config.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/vanguards/config.py b/src/vanguards/config.py index 1c33391..b8e3f9c 100644 --- a/src/vanguards/config.py +++ b/src/vanguards/config.py @@ -16,9 +16,12 @@ from .logger import plog try: - from configparser import SafeConfigParser, Error + from configparser import ConfigParser, Error except ImportError: from ConfigParser import SafeConfigParser, Error + class ConfigParser(SafeConfigParser): + def read_file(self, f, source=None): + return self.readfp(f, source) ################# Global options ################## @@ -209,7 +212,7 @@ def set_options_from_module(config, module, section): config.set(section, param, str(val)) def generate_config(): - config = SafeConfigParser(allow_no_value=True) + config = ConfigParser(allow_no_value=True) set_options_from_module(config, sys.modules[__name__], "Global") set_options_from_module(config, vanguards, "Vanguards") set_options_from_module(config, bandguards, "Bandguards") @@ -219,9 +222,9 @@ def generate_config(): return config def apply_config(config_file): - config = SafeConfigParser(allow_no_value=True) + config = ConfigParser(allow_no_value=True) - config.readfp(open(config_file, "r")) + config.read_file(open(config_file, "r")) get_options_for_module(config, sys.modules[__name__], "Global") get_options_for_module(config, vanguards, "Vanguards")