diff --git a/textproc/dblatex/files/patch-lib_dbtexmf_core_dbtex.py b/textproc/dblatex/files/patch-lib_dbtexmf_core_dbtex.py new file mode 100644 index 000000000000..c28d09d6b0a6 --- /dev/null +++ b/textproc/dblatex/files/patch-lib_dbtexmf_core_dbtex.py @@ -0,0 +1,36 @@ +--- lib/dbtexmf/core/dbtex.py.orig 2025-12-19 19:39:32 UTC ++++ lib/dbtexmf/core/dbtex.py +@@ -15,7 +15,8 @@ import glob + except ImportError: + from urllib.request import pathname2url + import glob +-import imp ++import importlib.machinery ++import importlib.util + from optparse import OptionParser + from io import open + +@@ -540,15 +541,14 @@ class DbTexCommand: + + def load_plugin(self, pathname): + moddir, modname = os.path.split(pathname) +- try: +- filemod, path, descr = imp.find_module(modname, [moddir]) +- except ImportError: +- try: +- filemod, path, descr = imp.find_module(modname) +- except ImportError: +- failed_exit("Error: '%s' module not found" % modname) +- mod = imp.load_module(modname, filemod, path, descr) +- filemod.close() ++ spec = importlib.machinery.PathFinder.find_spec(modname, [moddir]) ++ if not spec: ++ spec = importlib.machinery.PathFinder.find_spec(modname) ++ if not spec: ++ failed_exit("Error: '%s' module not found" % modname) ++ mod = importlib.util.module_from_spec(spec) ++ spec.loader.exec_module(mod) ++ sys.modules[modname] = mod + return mod + + def run_setup(self, options): diff --git a/textproc/dblatex/files/patch-lib_dbtexmf_dblatex_grubber_plugins.py b/textproc/dblatex/files/patch-lib_dbtexmf_dblatex_grubber_plugins.py new file mode 100644 index 000000000000..ac232a848b87 --- /dev/null +++ b/textproc/dblatex/files/patch-lib_dbtexmf_dblatex_grubber_plugins.py @@ -0,0 +1,38 @@ +--- lib/dbtexmf/dblatex/grubber/plugins.py.orig 2025-12-19 19:39:46 UTC ++++ lib/dbtexmf/dblatex/grubber/plugins.py +@@ -4,7 +4,8 @@ All the modules must be derived from the TexModule cla + Mechanisms to dynamically load extra modules to help the LaTeX compilation. + All the modules must be derived from the TexModule class. + """ +-import imp ++import importlib.machinery ++import importlib.util + + from os.path import * + from dbtexmf.dblatex.grubber.msg import _, msg +@@ -108,17 +109,16 @@ class Plugins (object): + """ + if name in self.modules: + return 2 +- try: +- file, path, descr = imp.find_module(name, [""]) +- except ImportError: ++ spec = importlib.machinery.PathFinder.find_spec(name, [""]) ++ if not spec: + if not self.path: + return 0 +- try: +- file, path, descr = imp.find_module(name, self.path) +- except ImportError: +- return 0 +- module = imp.load_module(name, file, path, descr) +- file.close() ++ spec = importlib.machinery.PathFinder.find_spec(name, self.path) ++ if not spec: ++ return 0 ++ module = importlib.util.module_from_spec(spec) ++ spec.loader.exec_module(module) ++ sys.modules[name] = module + self.modules[name] = module + return 1 + diff --git a/textproc/dblatex/files/patch-lib_dbtexmf_xslt_xslt.py b/textproc/dblatex/files/patch-lib_dbtexmf_xslt_xslt.py new file mode 100644 index 000000000000..a04eac49e36f --- /dev/null +++ b/textproc/dblatex/files/patch-lib_dbtexmf_xslt_xslt.py @@ -0,0 +1,36 @@ +--- lib/dbtexmf/xslt/xslt.py.orig 2025-12-19 19:39:14 UTC ++++ lib/dbtexmf/xslt/xslt.py +@@ -2,20 +2,22 @@ import os + # Very simple plugin loader for Xslt classes + # + import os +-import imp ++import importlib.machinery ++import importlib.util + import glob ++import sys + + def load(modname): +- try: +- file, path, descr = imp.find_module(modname, [""]) +- except ImportError: +- try: +- file, path, descr = imp.find_module(modname, +- [os.path.dirname(__file__)]) +- except ImportError: +- raise ValueError("Xslt '%s' not found" % modname) +- mod = imp.load_module(modname, file, path, descr) +- file.close() ++ spec = importlib.machinery.PathFinder.find_spec(modname, [""]) ++ if not spec: ++ spec = importlib.machinery.PathFinder.find_spec(modname, ++ [os.path.dirname(__file__)]) ++ if not spec: ++ raise ValueError("Xslt '%s' not found" % modname) ++ ++ mod = importlib.util.module_from_spec(spec) ++ spec.loader.exec_module(mod) ++ sys.modules[modname] = mod + o = mod.Xslt() + return o +