File kvmd-python3.12-compat.patch of Package kvmd
From 2cd922a5458e3eed49bf4c121f2c902b9f47f753 Mon Sep 17 00:00:00 2001
From: Oleg Girko <ol@infoserver.lv>
Date: Sat, 16 Mar 2024 14:16:25 +0000
Subject: [PATCH] Fix Python 3.12 compatibility.
The find_module() method of importlib.machinery.FileFinder class
has been deprecated long ago, and was finally removed in Python 3.12.
This change replaces this deprecated method with recommended
find_spec() one.
Signed-off-by: Oleg Girko <ol@infoserver.lv>
---
kvmd/keyboard/keysym.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/kvmd/keyboard/keysym.py b/kvmd/keyboard/keysym.py
index dd311e98..985fc60f 100644
--- a/kvmd/keyboard/keysym.py
+++ b/kvmd/keyboard/keysym.py
@@ -87,7 +87,11 @@ def _get_keysyms() -> dict[str, int]:
for (finder, module_name, _) in pkgutil.walk_packages(Xlib.keysymdef.__path__):
if not isinstance(finder, importlib.machinery.FileFinder):
continue
- loader = finder.find_module(module_name)
+ spec = finder.find_spec(module_name)
+ if spec is None:
+ loader = None
+ else:
+ loader = spec.loader
if loader is None:
continue
module = loader.load_module(module_name)
--
2.48.1