summaryrefslogtreecommitdiffstats
path: root/meta-offline-voice-agent/recipes-python/python3-scikit-learn
diff options
context:
space:
mode:
Diffstat (limited to 'meta-offline-voice-agent/recipes-python/python3-scikit-learn')
-rw-r--r--meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch563
-rw-r--r--meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb36
2 files changed, 599 insertions, 0 deletions
diff --git a/meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch b/meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch
new file mode 100644
index 00000000..bd0f9458
--- /dev/null
+++ b/meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch
@@ -0,0 +1,563 @@
+From eed8f56c787a251a6cad0f4291ca8f4055e463cf Mon Sep 17 00:00:00 2001
+From: Jack Mitchell <ml@embed.me.uk>
+Date: Fri, 22 Jan 2021 10:16:08 +0000
+Subject: [PATCH] hack around numpy get_include to force looking in target
+ sysroot
+
+---
+ sklearn/__check_build/setup.py | 4 ++--
+ sklearn/cluster/setup.py | 12 ++++++------
+ sklearn/datasets/setup.py | 4 ++--
+ sklearn/decomposition/setup.py | 6 +++---
+ sklearn/ensemble/setup.py | 22 +++++++++++-----------
+ sklearn/feature_extraction/setup.py | 4 ++--
+ sklearn/linear_model/setup.py | 8 ++++----
+ sklearn/manifold/setup.py | 6 +++---
+ sklearn/metrics/cluster/setup.py | 4 ++--
+ sklearn/neighbors/setup.py | 15 +++++++--------
+ sklearn/preprocessing/setup.py | 4 ++--
+ sklearn/setup.py | 4 ++--
+ sklearn/svm/setup.py | 11 ++++++-----
+ sklearn/tree/setup.py | 10 +++++-----
+ sklearn/utils/setup.py | 16 ++++++++--------
+ 15 files changed, 65 insertions(+), 65 deletions(-)
+
+diff --git a/sklearn/__check_build/setup.py b/sklearn/__check_build/setup.py
+index b8c30d9c8..e2bfc90ee 100644
+--- a/sklearn/__check_build/setup.py
++++ b/sklearn/__check_build/setup.py
+@@ -1,7 +1,7 @@
+ # Author: Virgile Fritsch <virgile.fritsch@inria.fr>
+ # License: BSD 3 clause
+
+-import numpy
++import numpy, os
+
+
+ def configuration(parent_package='', top_path=None):
+@@ -9,7 +9,7 @@ def configuration(parent_package='', top_path=None):
+ config = Configuration('__check_build', parent_package, top_path)
+ config.add_extension('_check_build',
+ sources=['_check_build.pyx'],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ return config
+
+diff --git a/sklearn/cluster/setup.py b/sklearn/cluster/setup.py
+index 48ed25c5c..bd395e3aa 100644
+--- a/sklearn/cluster/setup.py
++++ b/sklearn/cluster/setup.py
+@@ -2,7 +2,7 @@
+ # License: BSD 3 clause
+ import os
+
+-import numpy
++import numpy, os
+
+
+ def configuration(parent_package='', top_path=None):
+@@ -16,28 +16,28 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_dbscan_inner',
+ sources=['_dbscan_inner.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ language="c++")
+
+ config.add_extension('_hierarchical_fast',
+ sources=['_hierarchical_fast.pyx'],
+ language="c++",
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_k_means_fast',
+ sources=['_k_means_fast.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_k_means_lloyd',
+ sources=['_k_means_lloyd.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_k_means_elkan',
+ sources=['_k_means_elkan.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_subpackage('tests')
+diff --git a/sklearn/datasets/setup.py b/sklearn/datasets/setup.py
+index 1107505d4..de4ac3c87 100644
+--- a/sklearn/datasets/setup.py
++++ b/sklearn/datasets/setup.py
+@@ -1,5 +1,5 @@
+
+-import numpy
++import numpy, os
+ import os
+ import platform
+
+@@ -14,7 +14,7 @@ def configuration(parent_package='', top_path=None):
+ if platform.python_implementation() != 'PyPy':
+ config.add_extension('_svmlight_format_fast',
+ sources=['_svmlight_format_fast.pyx'],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+ config.add_subpackage('tests')
+ return config
+
+diff --git a/sklearn/decomposition/setup.py b/sklearn/decomposition/setup.py
+index f915d6d78..26799c0af 100644
+--- a/sklearn/decomposition/setup.py
++++ b/sklearn/decomposition/setup.py
+@@ -1,5 +1,5 @@
+ import os
+-import numpy
++import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+
+@@ -12,12 +12,12 @@ def configuration(parent_package="", top_path=None):
+
+ config.add_extension("_online_lda_fast",
+ sources=["_online_lda_fast.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_cdnmf_fast',
+ sources=['_cdnmf_fast.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_subpackage("tests")
+diff --git a/sklearn/ensemble/setup.py b/sklearn/ensemble/setup.py
+index 05d71cf31..c12382220 100644
+--- a/sklearn/ensemble/setup.py
++++ b/sklearn/ensemble/setup.py
+@@ -1,4 +1,4 @@
+-import numpy
++import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+
+@@ -7,7 +7,7 @@ def configuration(parent_package="", top_path=None):
+
+ config.add_extension("_gradient_boosting",
+ sources=["_gradient_boosting.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_subpackage("tests")
+
+@@ -15,39 +15,39 @@ def configuration(parent_package="", top_path=None):
+ config.add_extension(
+ "_hist_gradient_boosting._gradient_boosting",
+ sources=["_hist_gradient_boosting/_gradient_boosting.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting.histogram",
+ sources=["_hist_gradient_boosting/histogram.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting.splitting",
+ sources=["_hist_gradient_boosting/splitting.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting._binning",
+ sources=["_hist_gradient_boosting/_binning.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting._predictor",
+ sources=["_hist_gradient_boosting/_predictor.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting._loss",
+ sources=["_hist_gradient_boosting/_loss.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting._bitset",
+ sources=["_hist_gradient_boosting/_bitset.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting.common",
+ sources=["_hist_gradient_boosting/common.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension("_hist_gradient_boosting.utils",
+ sources=["_hist_gradient_boosting/utils.pyx"],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_subpackage("_hist_gradient_boosting.tests")
+
+diff --git a/sklearn/feature_extraction/setup.py b/sklearn/feature_extraction/setup.py
+index 8c3bbb100..a872c7603 100644
+--- a/sklearn/feature_extraction/setup.py
++++ b/sklearn/feature_extraction/setup.py
+@@ -3,7 +3,7 @@ import platform
+
+
+ def configuration(parent_package='', top_path=None):
+- import numpy
++ import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+ config = Configuration('feature_extraction', parent_package, top_path)
+@@ -14,7 +14,7 @@ def configuration(parent_package='', top_path=None):
+ if platform.python_implementation() != 'PyPy':
+ config.add_extension('_hashing_fast',
+ sources=['_hashing_fast.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+ config.add_subpackage("tests")
+
+diff --git a/sklearn/linear_model/setup.py b/sklearn/linear_model/setup.py
+index d0c9e8c04..962340210 100644
+--- a/sklearn/linear_model/setup.py
++++ b/sklearn/linear_model/setup.py
+@@ -1,5 +1,5 @@
+ import os
+-import numpy
++import numpy, os
+
+ from sklearn._build_utils import gen_from_templates
+
+@@ -15,12 +15,12 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_cd_fast',
+ sources=['_cd_fast.pyx'],
+- include_dirs=numpy.get_include(),
++ include_dirs=os.environ["NUMPY_INCLUDE_PATH"],
+ libraries=libraries)
+
+ config.add_extension('_sgd_fast',
+ sources=['_sgd_fast.pyx'],
+- include_dirs=numpy.get_include(),
++ include_dirs=os.environ["NUMPY_INCLUDE_PATH"],
+ libraries=libraries)
+
+ # generate sag_fast from template
+@@ -29,7 +29,7 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_sag_fast',
+ sources=['_sag_fast.pyx'],
+- include_dirs=numpy.get_include())
++ include_dirs=os.environ["NUMPY_INCLUDE_PATH"])
+
+ # add other directories
+ config.add_subpackage('tests')
+diff --git a/sklearn/manifold/setup.py b/sklearn/manifold/setup.py
+index 0db2d5d04..959a4996a 100644
+--- a/sklearn/manifold/setup.py
++++ b/sklearn/manifold/setup.py
+@@ -1,6 +1,6 @@
+ import os
+
+-import numpy
++import numpy, os
+
+
+ def configuration(parent_package="", top_path=None):
+@@ -14,13 +14,13 @@ def configuration(parent_package="", top_path=None):
+
+ config.add_extension("_utils",
+ sources=["_utils.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ extra_compile_args=["-O3"])
+
+ config.add_extension("_barnes_hut_tsne",
+ sources=["_barnes_hut_tsne.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ extra_compile_args=['-O3'])
+
+diff --git a/sklearn/metrics/cluster/setup.py b/sklearn/metrics/cluster/setup.py
+index c39e414d9..98640b5f3 100644
+--- a/sklearn/metrics/cluster/setup.py
++++ b/sklearn/metrics/cluster/setup.py
+@@ -1,6 +1,6 @@
+ import os
+
+-import numpy
++import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+
+@@ -11,7 +11,7 @@ def configuration(parent_package="", top_path=None):
+ libraries.append('m')
+ config.add_extension("_expected_mutual_info_fast",
+ sources=["_expected_mutual_info_fast.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_subpackage("tests")
+diff --git a/sklearn/neighbors/setup.py b/sklearn/neighbors/setup.py
+index 926404467..aeedcb940 100644
+--- a/sklearn/neighbors/setup.py
++++ b/sklearn/neighbors/setup.py
+@@ -2,7 +2,7 @@ import os
+
+
+ def configuration(parent_package='', top_path=None):
+- import numpy
++ import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+ config = Configuration('neighbors', parent_package, top_path)
+@@ -12,28 +12,27 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_ball_tree',
+ sources=['_ball_tree.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_kd_tree',
+ sources=['_kd_tree.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_dist_metrics',
+ sources=['_dist_metrics.pyx'],
+- include_dirs=[numpy.get_include(),
+- os.path.join(numpy.get_include(),
+- 'numpy')],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"],
++ os.path.join(os.environ["NUMPY_INCLUDE_PATH"], 'numpy')],
+ libraries=libraries)
+
+ config.add_extension('_typedefs',
+ sources=['_typedefs.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+ config.add_extension("_quad_tree",
+ sources=["_quad_tree.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_subpackage('tests')
+diff --git a/sklearn/preprocessing/setup.py b/sklearn/preprocessing/setup.py
+index 29dae9b8f..7c059d90f 100644
+--- a/sklearn/preprocessing/setup.py
++++ b/sklearn/preprocessing/setup.py
+@@ -2,7 +2,7 @@ import os
+
+
+ def configuration(parent_package='', top_path=None):
+- import numpy
++ import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+ config = Configuration('preprocessing', parent_package, top_path)
+@@ -12,7 +12,7 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_csr_polynomial_expansion',
+ sources=['_csr_polynomial_expansion.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_subpackage('tests')
+diff --git a/sklearn/setup.py b/sklearn/setup.py
+index e5d7e6e26..a814bca87 100644
+--- a/sklearn/setup.py
++++ b/sklearn/setup.py
+@@ -6,7 +6,7 @@ from sklearn._build_utils import cythonize_extensions
+
+ def configuration(parent_package='', top_path=None):
+ from numpy.distutils.misc_util import Configuration
+- import numpy
++ import numpy, os
+
+ libraries = []
+ if os.name == 'posix':
+@@ -69,7 +69,7 @@ def configuration(parent_package='', top_path=None):
+ # add cython extension module for isotonic regression
+ config.add_extension('_isotonic',
+ sources=['_isotonic.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ )
+
+diff --git a/sklearn/svm/setup.py b/sklearn/svm/setup.py
+index dffcff8eb..d01614780 100644
+--- a/sklearn/svm/setup.py
++++ b/sklearn/svm/setup.py
+@@ -1,6 +1,6 @@
+ import os
+ from os.path import join
+-import numpy
++import numpy, os
+
+
+ def configuration(parent_package='', top_path=None):
+@@ -13,7 +13,7 @@ def configuration(parent_package='', top_path=None):
+ # newrand wrappers
+ config.add_extension('_newrand',
+ sources=['_newrand.pyx'],
+- include_dirs=[numpy.get_include(),
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"],
+ join('src', 'newrand')],
+ depends=[join('src', 'newrand', 'newrand.h')],
+ language='c++',
+@@ -34,6 +34,7 @@ def configuration(parent_package='', top_path=None):
+ extra_link_args=['-lstdc++'],
+ # Use C++11 to use the random number generator fix
+ extra_compiler_args=['-std=c++11'],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ )
+
+ libsvm_sources = ['_libsvm.pyx']
+@@ -45,7 +46,7 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_libsvm',
+ sources=libsvm_sources,
+- include_dirs=[numpy.get_include(),
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"],
+ join('src', 'libsvm'),
+ join('src', 'newrand')],
+ libraries=['libsvm-skl'],
+@@ -82,7 +83,7 @@ def configuration(parent_package='', top_path=None):
+ include_dirs=[join('.', 'src', 'liblinear'),
+ join('.', 'src', 'newrand'),
+ join('..', 'utils'),
+- numpy.get_include()],
++ os.environ["NUMPY_INCLUDE_PATH"]],
+ depends=liblinear_depends,
+ # extra_compile_args=['-O0 -fno-inline'],
+ )
+@@ -93,7 +94,7 @@ def configuration(parent_package='', top_path=None):
+ libsvm_sparse_sources = ['_libsvm_sparse.pyx']
+ config.add_extension('_libsvm_sparse', libraries=['libsvm-skl'],
+ sources=libsvm_sparse_sources,
+- include_dirs=[numpy.get_include(),
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"],
+ join("src", "libsvm"),
+ join("src", "newrand")],
+ depends=[join("src", "libsvm", "svm.h"),
+diff --git a/sklearn/tree/setup.py b/sklearn/tree/setup.py
+index 079ae9d86..0308a5cf9 100644
+--- a/sklearn/tree/setup.py
++++ b/sklearn/tree/setup.py
+@@ -1,6 +1,6 @@
+ import os
+
+-import numpy
++import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+
+@@ -11,22 +11,22 @@ def configuration(parent_package="", top_path=None):
+ libraries.append('m')
+ config.add_extension("_tree",
+ sources=["_tree.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ extra_compile_args=["-O3"])
+ config.add_extension("_splitter",
+ sources=["_splitter.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ extra_compile_args=["-O3"])
+ config.add_extension("_criterion",
+ sources=["_criterion.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ extra_compile_args=["-O3"])
+ config.add_extension("_utils",
+ sources=["_utils.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries,
+ extra_compile_args=["-O3"])
+
+diff --git a/sklearn/utils/setup.py b/sklearn/utils/setup.py
+index 098adeecc..d24e1b1c8 100644
+--- a/sklearn/utils/setup.py
++++ b/sklearn/utils/setup.py
+@@ -5,7 +5,7 @@ from sklearn._build_utils import gen_from_templates
+
+
+ def configuration(parent_package='', top_path=None):
+- import numpy
++ import numpy, os
+ from numpy.distutils.misc_util import Configuration
+
+ config = Configuration('utils', parent_package, top_path)
+@@ -24,7 +24,7 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('arrayfuncs',
+ sources=['arrayfuncs.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('murmurhash',
+@@ -34,12 +34,12 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('graph_shortest_path',
+ sources=['graph_shortest_path.pyx'],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension('_fast_dict',
+ sources=['_fast_dict.pyx'],
+ language="c++",
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension('_openmp_helpers',
+@@ -53,21 +53,21 @@ def configuration(parent_package='', top_path=None):
+
+ config.add_extension('_seq_dataset',
+ sources=['_seq_dataset.pyx'],
+- include_dirs=[numpy.get_include()])
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]])
+
+ config.add_extension('_weight_vector',
+ sources=['_weight_vector.pyx'],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension("_random",
+ sources=["_random.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_extension("_logistic_sigmoid",
+ sources=["_logistic_sigmoid.pyx"],
+- include_dirs=[numpy.get_include()],
++ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]],
+ libraries=libraries)
+
+ config.add_subpackage('tests')
diff --git a/meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb b/meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb
new file mode 100644
index 00000000..64a532f0
--- /dev/null
+++ b/meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb
@@ -0,0 +1,36 @@
+SUMMARY = "A set of python modules for machine learning and data mining"
+HOMEPAGE = "http://scikit-learn.org"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8d7e027b3e67a2b1fe7fe85ebeb17d7"
+
+SRC_URI = "git://github.com/scikit-learn/scikit-learn.git;branch=0.24.X;protocol=https \
+ file://0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch \
+ "
+SRCREV = "15a949460dbf19e5e196b8ef48f9712b72a3b3c3"
+S = "${WORKDIR}/git"
+
+DEPENDS += "python3-numpy-native python3-scipy-native python3-cython-native python3-numpy python3-scipy python3-cython"
+
+inherit setuptools3 pkgconfig python3-dir
+
+RDEPENDS:${PN} += "python3-numpy python3-scipy python3-joblib python3-threadpoolctl python3-pytest"
+
+export PYTHON_CROSSENV = "1"
+export SKLEARN_BUILD_PARALLEL = "${@oe.utils.cpu_count()}"
+export NPY_PKG_CONFIG_PATH = "${WORKDIR}/npy-pkg-config"
+export NUMPY_INCLUDE_PATH = "${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core/include"
+
+# Tell Numpy to look in target sysroot site-packages directory for libraries
+LDFLAGS:append = " -L${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/lib"
+
+do_compile:prepend() {
+ echo "[ALL]" > ${S}/site.cfg
+ echo "library_dirs = ${STAGING_LIBDIR}" >> ${S}/site.cfg
+ echo "include_dirs = ${STAGING_INCDIR}" >> ${S}/site.cfg
+
+ mkdir -p ${WORKDIR}/npy-pkg-config
+ cp ${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core/lib/npy-pkg-config/* ${WORKDIR}/npy-pkg-config
+ sed -i 's&prefix=${pkgdir}&prefix=${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core&g' ${WORKDIR}/npy-pkg-config/npymath.ini
+ sed -i 's&prefix=${pkgdir}&prefix=${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core&g' ${WORKDIR}/npy-pkg-config/mlib.ini
+}