git: dbd3ca6f415f - main - scikit-fusion: Unbreak by replacing import imp with importlib.util
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 11 Jul 2026 01:00:15 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=dbd3ca6f415fbdc44426530140ccd30e9a902884
commit dbd3ca6f415fbdc44426530140ccd30e9a902884
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-07-11 00:50:34 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-07-11 01:00:12 +0000
scikit-fusion: Unbreak by replacing import imp with importlib.util
Reported by: fallout
---
misc/py-scikit-fusion/Makefile | 2 --
misc/py-scikit-fusion/files/patch-setup.py | 27 +++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/misc/py-scikit-fusion/Makefile b/misc/py-scikit-fusion/Makefile
index d1737dfd88af..f5bbc52d36b1 100644
--- a/misc/py-scikit-fusion/Makefile
+++ b/misc/py-scikit-fusion/Makefile
@@ -12,8 +12,6 @@ WWW= https://github.com/marinkaz/scikit-fusion
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-BROKEN= not compatible with Python 3.12 (upstream last the project updated 6 years ago)
-
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}joblib>=0.8.4:devel/py-joblib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}scipy>=0.12.0:science/py-scipy@${PY_FLAVOR}
diff --git a/misc/py-scikit-fusion/files/patch-setup.py b/misc/py-scikit-fusion/files/patch-setup.py
new file mode 100644
index 000000000000..b66fb2a9b71a
--- /dev/null
+++ b/misc/py-scikit-fusion/files/patch-setup.py
@@ -0,0 +1,27 @@
+-- Fix setup.py for Python 3.12 compatibility.
+-- The 'imp' module was removed in Python 3.12; replace imp.load_source
+-- with importlib.util.module_from_spec/spec_from_file_location.
+
+--- setup.py.orig 2023-04-10 00:00:00 UTC
++++ setup.py
+@@ -4,7 +4,7 @@ descr = """A Python module for data fusion built on top of factorized models."""
+ from setuptools import setup, find_packages
+ import subprocess
+ import os
+-import imp
++import importlib.util
+
+ DISTNAME = 'scikit-fusion'
+ DESCRIPTION = 'A Python module for data fusion built on top of factorized models.'
+@@ -69,8 +69,11 @@ def write_version_py(filename='skfusion/version.py'):
+ elif os.path.exists('skfusion/version.py'):
+ # must be a source distribution, use existing version file
+- version = imp.load_source("skfusion.version", "skfusion/version.py")
+- GIT_REVISION = version.git_revision
++ spec = importlib.util.spec_from_file_location("skfusion.version",
++ "skfusion/version.py")
++ version = importlib.util.module_from_spec(spec)
++ spec.loader.exec_module(version)
++ GIT_REVISION = getattr(version, 'git_revision', "Unknown")
+ else:
+ GIT_REVISION = "Unknown"