From e26859bf9d1d776287a3710bc0d64e64a2276c3f Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Mon, 16 Oct 2023 13:12:16 -0400 Subject: [PATCH] variety: patch to fix for Python 3.12. --- .../patches/Jumble_importlib_3.12_fix.patch | 36 +++++++++++++++++++ srcpkgs/variety/template | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/variety/patches/Jumble_importlib_3.12_fix.patch diff --git a/srcpkgs/variety/patches/Jumble_importlib_3.12_fix.patch b/srcpkgs/variety/patches/Jumble_importlib_3.12_fix.patch new file mode 100644 index 0000000000000..ba7254029b5a5 --- /dev/null +++ b/srcpkgs/variety/patches/Jumble_importlib_3.12_fix.patch @@ -0,0 +1,36 @@ +--- a/jumble/Jumble.py ++++ b/jumble/Jumble.py +@@ -14,7 +14,8 @@ + # with this program. If not, see . + ### END LICENSE + +-import imp ++import importlib.util ++import sys + import inspect + import logging + import os +@@ -39,13 +40,16 @@ + for location, f in self._walk_python_files(): + path = os.path.join(location, f) + name = os.path.splitext(f)[0] +- info = imp.find_module(name, [location]) +- try: +- logger.info(lambda: "Jumble loading module in %s from %s" % (name, path)) +- yield imp.load_module(name, *info), path +- except Exception: +- logger.exception("Could not load plugin module %s" % path) +- continue ++ if (spec := importlib.util.spec_from_file_location(name, path)) is not None: ++ try: ++ module = importlib.util.module_from_spec(spec) ++ logger.info(lambda: "Jumble loading module in %s from %s" % (name, path)) ++ sys.modules[name] = module ++ spec.loader.exec_module(module) ++ yield module, path ++ except Exception: ++ logger.exception("Could not load plugin module %s" % path) ++ continue + + def _walk_plugin_classes(self): + for module, path in self._walk_modules(): diff --git a/srcpkgs/variety/template b/srcpkgs/variety/template index 33b02011caf4a..fc90702f3ac08 100644 --- a/srcpkgs/variety/template +++ b/srcpkgs/variety/template @@ -1,7 +1,7 @@ # Template file for 'variety' pkgname=variety version=0.8.10 -revision=2 +revision=3 build_style=python3-module pycompile_dirs="usr/share/variety/plugins" hostmakedepends="python3-setuptools python3-distutils-extra intltool"