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 @@ -1,25 +1,23 @@ PORTNAME= scikit-fusion DISTVERSION= 0.2.1 PORTREVISION= 6 CATEGORIES= misc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Data fusion based on recent collective latent factor models 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} USES= python USE_PYTHON= autoplist distutils NO_ARCH= yes .include 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"