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