From 24b9fa9ee3faaf0b46f70bf1b59928079859239447789cc727f9655755bfb6d6 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Tue, 10 Sep 2024 03:08:41 +0000 Subject: [PATCH] - Add patch use-logging-lock-directly.patch: * Use logging._lock as a context manager. - Switch to autosetup macro. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-logutils?expand=0&rev=17 --- python-logutils.changes | 7 ++++ python-logutils.spec | 9 ++--- use-logging-lock-directly.patch | 65 +++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 use-logging-lock-directly.patch diff --git a/python-logutils.changes b/python-logutils.changes index 9edcd72..a08efc8 100644 --- a/python-logutils.changes +++ b/python-logutils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Sep 10 03:08:22 UTC 2024 - Steve Kowalik + +- Add patch use-logging-lock-directly.patch: + * Use logging._lock as a context manager. +- Switch to autosetup macro. + ------------------------------------------------------------------- Thu Sep 5 18:08:30 UTC 2024 - Christoph G diff --git a/python-logutils.spec b/python-logutils.spec index a34b1cb..1835be8 100644 --- a/python-logutils.spec +++ b/python-logutils.spec @@ -21,14 +21,15 @@ Version: 0.3.5 Release: 0 Summary: Logging utilities License: BSD-3-Clause -Group: Development/Languages/Python URL: https://logutils.readthedocs.io/ Source: https://files.pythonhosted.org/packages/source/l/logutils/logutils-%{version}.tar.gz Patch0: sphinx4.patch # PATCH-FIX-UPSTREAM logutils-pr1-fix-testasserts-py3.12.patch https://bitbucket.org/vinay.sajip/logutils/pull-requests/1 Patch1: https://bitbucket.org/hugovk/logutils/commits/0a3af211128567c437e68261a02591ffe2682d95/raw#/logutils-pr1-fix-testasserts-py3.12.patch -# PATCH-FIX-UPSTREA logutils-intersphinx.patch +# PATCH-FIX-UPSTREAM logutils-intersphinx.patch Patch2: logutils-intersphinx.patch +# PATCH-FIX-OPENSUSE Use logging._lock as a context manager directly +Patch3: use-logging-lock-directly.patch BuildRequires: %{python_module pip} BuildRequires: %{python_module redis} BuildRequires: %{python_module setuptools} @@ -51,7 +52,6 @@ of Python and so are packaged here. %package -n python-logutils-doc Summary: Documentation for %{name} -Group: Documentation/Other Provides: %{python_module logutils-doc = %{version}} %description -n python-logutils-doc @@ -66,8 +66,7 @@ of Python and so are packaged here. This package contains the documentation. %prep -%setup -q -n logutils-%{version} -%autopatch -p1 +%autosetup -p1 -n logutils-%{version} %build %pyproject_wheel diff --git a/use-logging-lock-directly.patch b/use-logging-lock-directly.patch new file mode 100644 index 0000000..8c3ae08 --- /dev/null +++ b/use-logging-lock-directly.patch @@ -0,0 +1,65 @@ +Index: logutils-0.3.5/logutils/dictconfig.py +=================================================================== +--- logutils-0.3.5.orig/logutils/dictconfig.py ++++ logutils-0.3.5/logutils/dictconfig.py +@@ -290,8 +290,7 @@ class DictConfigurator(BaseConfigurator) + raise ValueError("Unsupported version: %s" % config['version']) + incremental = config.pop('incremental', False) + EMPTY_DICT = {} +- logging._acquireLock() +- try: ++ with logging._lock: + if incremental: + handlers = config.get('handlers', EMPTY_DICT) + # incremental handler config only if handler name +@@ -430,8 +429,6 @@ class DictConfigurator(BaseConfigurator) + e = sys.exc_info()[1] + raise ValueError('Unable to configure root ' + 'logger: %s' % e) +- finally: +- logging._releaseLock() + + def configure_formatter(self, config): + """Configure a formatter from a dictionary.""" +Index: logutils-0.3.5/tests/test_dictconfig.py +=================================================================== +--- logutils-0.3.5.orig/tests/test_dictconfig.py ++++ logutils-0.3.5/tests/test_dictconfig.py +@@ -39,8 +39,7 @@ class ConfigDictTest(unittest.TestCase): + self.adapter = LoggerAdapter(l, {}) + + logger_dict = logging.getLogger().manager.loggerDict +- logging._acquireLock() +- try: ++ with logging._lock: + self.saved_handlers = logging._handlers.copy() + self.saved_handler_list = logging._handlerList[:] + self.saved_loggers = logger_dict.copy() +@@ -49,8 +48,6 @@ class ConfigDictTest(unittest.TestCase): + else: + self.saved_level_to_name = logging._levelToName.copy() + self.saved_name_to_level = logging._nameToLevel.copy() +- finally: +- logging._releaseLock() + + self.root_logger = logging.getLogger("") + self.original_logging_level = self.root_logger.getEffectiveLevel() +@@ -58,8 +55,7 @@ class ConfigDictTest(unittest.TestCase): + + def tearDown(self): + self.root_logger.setLevel(self.original_logging_level) +- logging._acquireLock() +- try: ++ with logging._lock: + if hasattr(logging, '_levelNames'): + logging._levelNames.clear() + logging._levelNames.update(self.saved_level_names) +@@ -74,8 +70,6 @@ class ConfigDictTest(unittest.TestCase): + loggerDict = logging.getLogger().manager.loggerDict + loggerDict.clear() + loggerDict.update(self.saved_loggers) +- finally: +- logging._releaseLock() + + message_num = 0 +