From d791d3d0face1626a103aec95246945fef0d1904 Mon Sep 17 00:00:00 2001 From: Horea Christian Date: Sun, 16 Jun 2019 20:09:48 +0200 Subject: [PATCH] sci-libs/scikits_learn: new package ahead of gentoo main Package-Manager: Portage-2.3.66, Repoman-2.3.12 Signed-off-by: Horea Christian --- sci-libs/scikits_learn/ChangeLog | 8 ++ sci-libs/scikits_learn/Manifest | 1 + .../scikits_learn-0.14.1-system-cblas.patch | 28 +++++ .../scikits_learn-0.17.1-system-cblas.patch | 30 +++++ .../scikits_learn-0.18.1-system-cblas.patch | 32 ++++++ sci-libs/scikits_learn/metadata.xml | 17 +++ .../scikits_learn/scikits_learn-0.20.3.ebuild | 106 ++++++++++++++++++ 7 files changed, 222 insertions(+) create mode 100644 sci-libs/scikits_learn/ChangeLog create mode 100644 sci-libs/scikits_learn/Manifest create mode 100644 sci-libs/scikits_learn/files/scikits_learn-0.14.1-system-cblas.patch create mode 100644 sci-libs/scikits_learn/files/scikits_learn-0.17.1-system-cblas.patch create mode 100644 sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch create mode 100644 sci-libs/scikits_learn/metadata.xml create mode 100644 sci-libs/scikits_learn/scikits_learn-0.20.3.ebuild diff --git a/sci-libs/scikits_learn/ChangeLog b/sci-libs/scikits_learn/ChangeLog new file mode 100644 index 0000000..d090222 --- /dev/null +++ b/sci-libs/scikits_learn/ChangeLog @@ -0,0 +1,8 @@ +*scikits_learn-0.20.3 (16 Jun 2019) + + 16 Jun 2019; + +files/scikits_learn-0.14.1-system-cblas.patch, + +files/scikits_learn-0.17.1-system-cblas.patch, + +files/scikits_learn-0.18.1-system-cblas.patch, +metadata.xml, + +scikits_learn-0.20.3.ebuild: + sci-libs/scikits_learn: new package ahead of gentoo main diff --git a/sci-libs/scikits_learn/Manifest b/sci-libs/scikits_learn/Manifest new file mode 100644 index 0000000..7cea361 --- /dev/null +++ b/sci-libs/scikits_learn/Manifest @@ -0,0 +1 @@ +DIST scikit-learn-0.20.3.tar.gz 11818490 SHA256 c503802a81de18b8b4d40d069f5e363795ee44b1605f38bc104160ca3bfe2c41 SHA512 fedc697b123e53badd7d75e2e0fa0749d9270c8ba52906227fda98f08b61bb40db9e0d1ffe71b030c30b64e77d000e7ba72cd9530c9f88c988dfc090c6c2872a WHIRLPOOL c8275fb275e39a183091f7bbbf78a364e4f2c297420b603f1c4a154aba23ae241263fad9ef60060c4334ac1a22bdf8ddfe1bbc4a1709db1cc4940a1e356fb976 diff --git a/sci-libs/scikits_learn/files/scikits_learn-0.14.1-system-cblas.patch b/sci-libs/scikits_learn/files/scikits_learn-0.14.1-system-cblas.patch new file mode 100644 index 0000000..96c6cc2 --- /dev/null +++ b/sci-libs/scikits_learn/files/scikits_learn-0.14.1-system-cblas.patch @@ -0,0 +1,28 @@ +--- sklearn/setup.py.orig 2013-08-08 13:54:08.310879167 -0700 ++++ sklearn/setup.py 2013-08-08 13:52:59.808456423 -0700 +@@ -68,14 +68,6 @@ + libraries=libraries, + ) + +- # some libs needs cblas, fortran-compiled BLAS will not be sufficient +- blas_info = get_info('blas_opt', 0) +- if (not blas_info) or ( +- ('NO_ATLAS_INFO', 1) in blas_info.get('define_macros', [])): +- config.add_library('cblas', +- sources=[join('src', 'cblas', '*.c')]) +- warnings.warn(BlasNotFoundError.__doc__) +- + # the following packages depend on cblas, so they have to be build + # after the above. + config.add_subpackage('linear_model') +--- sklearn/_build_utils.py.orig 2013-08-08 14:01:35.994589269 -0700 ++++ sklearn/_build_utils.py 2013-08-08 12:19:41.875967870 -0700 +@@ -23,7 +23,7 @@ + return False + + blas_info = get_info('blas_opt', 0) +- if (not blas_info) or atlas_not_found(blas_info): ++ if (not blas_info): + cblas_libs = ['cblas'] + blas_info.pop('libraries', None) + else: diff --git a/sci-libs/scikits_learn/files/scikits_learn-0.17.1-system-cblas.patch b/sci-libs/scikits_learn/files/scikits_learn-0.17.1-system-cblas.patch new file mode 100644 index 0000000..42657a7 --- /dev/null +++ b/sci-libs/scikits_learn/files/scikits_learn-0.17.1-system-cblas.patch @@ -0,0 +1,30 @@ +diff -Nur scikit-learn-0.17.1.orig/sklearn/_build_utils.py scikit-learn-0.17.1/sklearn/_build_utils.py +--- scikit-learn-0.17.1.orig/sklearn/_build_utils.py 2016-03-09 00:27:54.756813784 +0000 ++++ scikit-learn-0.17.1/sklearn/_build_utils.py 2016-03-09 00:30:09.605118512 +0000 +@@ -23,7 +23,7 @@ + return False + + blas_info = get_info('blas_opt', 0) +- if (not blas_info) or atlas_not_found(blas_info): ++ if (not blas_info): + cblas_libs = ['cblas'] + blas_info.pop('libraries', None) + else: +diff -Nur scikit-learn-0.17.1.orig/sklearn/setup.py scikit-learn-0.17.1/sklearn/setup.py +--- scikit-learn-0.17.1.orig/sklearn/setup.py 2016-03-09 00:27:54.806813156 +0000 ++++ scikit-learn-0.17.1/sklearn/setup.py 2016-03-09 00:29:28.215638848 +0000 +@@ -58,14 +58,6 @@ + libraries=libraries, + ) + +- # some libs needs cblas, fortran-compiled BLAS will not be sufficient +- blas_info = get_info('blas_opt', 0) +- if (not blas_info) or ( +- ('NO_ATLAS_INFO', 1) in blas_info.get('define_macros', [])): +- config.add_library('cblas', +- sources=[join('src', 'cblas', '*.c')]) +- warnings.warn(BlasNotFoundError.__doc__) +- + # the following packages depend on cblas, so they have to be build + # after the above. + config.add_subpackage('linear_model') diff --git a/sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch b/sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch new file mode 100644 index 0000000..e60f649 --- /dev/null +++ b/sci-libs/scikits_learn/files/scikits_learn-0.18.1-system-cblas.patch @@ -0,0 +1,32 @@ +Index: scikit-learn-0.18.1/sklearn/_build_utils/__init__.py +=================================================================== +--- scikit-learn-0.18.1.orig/sklearn/_build_utils/__init__.py ++++ scikit-learn-0.18.1/sklearn/_build_utils/__init__.py +@@ -31,7 +31,7 @@ def get_blas_info(): + return False + + blas_info = get_info('blas_opt', 0) +- if (not blas_info) or atlas_not_found(blas_info): ++ if (not blas_info): + cblas_libs = ['cblas'] + blas_info.pop('libraries', None) + else: +Index: scikit-learn-0.18.1/sklearn/setup.py +=================================================================== +--- scikit-learn-0.18.1.orig/sklearn/setup.py ++++ scikit-learn-0.18.1/sklearn/setup.py +@@ -63,14 +63,6 @@ def configuration(parent_package='', top + libraries=libraries, + ) + +- # some libs needs cblas, fortran-compiled BLAS will not be sufficient +- blas_info = get_info('blas_opt', 0) +- if (not blas_info) or ( +- ('NO_ATLAS_INFO', 1) in blas_info.get('define_macros', [])): +- config.add_library('cblas', +- sources=[join('src', 'cblas', '*.c')]) +- warnings.warn(BlasNotFoundError.__doc__) +- + # the following packages depend on cblas, so they have to be build + # after the above. + config.add_subpackage('linear_model') diff --git a/sci-libs/scikits_learn/metadata.xml b/sci-libs/scikits_learn/metadata.xml new file mode 100644 index 0000000..0f62a4a --- /dev/null +++ b/sci-libs/scikits_learn/metadata.xml @@ -0,0 +1,17 @@ + + + + + sci@gentoo.org + Gentoo Science Project + + + scikits.learn is a python library for machine learning. It aims to + implement classic machine learning algorithms while remaining simple + and efficient. + + + scikit-learn + scikit-learn + + diff --git a/sci-libs/scikits_learn/scikits_learn-0.20.3.ebuild b/sci-libs/scikits_learn/scikits_learn-0.20.3.ebuild new file mode 100644 index 0000000..1a7298c --- /dev/null +++ b/sci-libs/scikits_learn/scikits_learn-0.20.3.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{5,6} ) + +inherit distutils-r1 flag-o-matic + +MYPN="${PN/scikits_/scikit-}" +MYP="${MYPN}-${PV}" + +DESCRIPTION="Python modules for machine learning and data mining" +HOMEPAGE="https://scikit-learn.org" +SRC_URI="mirror://pypi/${MYPN:0:1}/${MYPN}/${MYP}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="examples test" + +# tried to unbundle virtual/python-funcsigs, funcsigs, odict +# but it is a large mess to maintain + +RDEPEND=" + dev-python/matplotlib[${PYTHON_USEDEP}] + dev-python/nose[${PYTHON_USEDEP}] + dev-python/numpy[lapack,${PYTHON_USEDEP}] + sci-libs/scikits[${PYTHON_USEDEP}] + sci-libs/scipy[${PYTHON_USEDEP}] + virtual/blas:= + virtual/cblas:= +" + +DEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + dev-python/numpy[lapack,${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + sci-libs/scipy[${PYTHON_USEDEP}] + virtual/blas:= + virtual/cblas:= +" + +S="${WORKDIR}/${MYP}" + +PATCHES=( "${FILESDIR}"/${PN}-0.18.1-system-cblas.patch ) + +python_prepare_all() { + # bug #397605 + [[ ${CHOST} == *-darwin* ]] \ + && append-ldflags -bundle "-undefined dynamic_lookup" \ + || append-ldflags -shared + + # scikits-learn now uses the horrible numpy.distutils automagic + export SCIPY_FCONFIG="config_fc --noopt --noarch" + + # remove bundled cblas + rm -r sklearn/src || die + + # commented out, since it is a mess to maintain + # use system joblib + #rm -r sklearn/externals/joblib || die + #sed -i -e '/joblib/d' sklearn/externals/setup.py || die + #for f in sklearn/{*/,}*.py; do + # sed -r -e '/^from/s/(sklearn|\.|)\.externals\.joblib/joblib/' \ + # -e 's/from (sklearn|\.|)\.externals import/import/' -i $f || die + #done + + # use system funcsigs and odict + #rm sklearn/externals/funcsigs.py || die + #rm sklearn/externals/odict.py || die + #for f in sklearn/{utils/fixes.py,gaussian_process/{tests/test_,}kernels.py}; do + # sed -r -e 's/from (sklearn|\.|)\.externals\.funcsigs/from funcsigs/' -i $f || die + #done + distutils-r1_python_prepare_all +} + +python_compile() { + distutils-r1_python_compile ${SCIPY_FCONFIG} +} + +python_test() { + # doc builds and runs tests + use doc && return + distutils_install_for_testing ${SCIPY_FCONFIG} + esetup.py install \ + --root="${T}/test-${EPYTHON}" \ + --no-compile ${SCIPY_FCONFIG} + pushd "${T}/test-${EPYTHON}/$(python_get_sitedir)" || die > /dev/null + JOBLIB_MULTIPROCESSING=2 SKLEARN_SKIP_NETWORK_TESTS=1 nosetests -v sklearn --exe || die + popd > /dev/null +} + +python_install() { + distutils-r1_python_install ${SCIPY_FCONFIG} +} + +python_install_all() { + find "${S}" -name \*LICENSE.txt -delete + distutils-r1_python_install_all + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi + +}