From 71f80f548741fa61fa3bc2039c296feb1a25d4de Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 2 Jun 2015 15:10:37 +0200 Subject: [PATCH] gnu: Add python-libsvm. * gnu/packages/machine-learning.scm (python-libsvm): New variable. --- gnu/packages/machine-learning.scm | 35 ++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 78d7e649a9..b35e9b72c6 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -22,7 +22,8 @@ (define-module (gnu packages machine-learning) #:use-module (guix utils) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (gnu packages)) + #:use-module (gnu packages) + #:use-module (gnu packages python)) (define-public libsvm (package @@ -63,3 +64,35 @@ (define-public libsvm distribution estimation (one-class SVM). It supports multi-class classification.") (license license:bsd-3))) + +(define-public python-libsvm + (package (inherit libsvm) + (name "python-libsvm") + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no "check" target + #:make-flags '("-C" "python") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace + 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((site (string-append (assoc-ref outputs "out") + "/lib/python" + (string-take + (string-take-right + (assoc-ref inputs "python") 5) 3) + "/site-packages/"))) + (substitute* "python/svm.py" + (("../libsvm.so.2") "libsvm.so.2")) + (mkdir-p site) + (for-each (lambda (file) + (copy-file file (string-append site (basename file)))) + (find-files "python" "\\.py")) + (copy-file "libsvm.so.2" + (string-append site "libsvm.so.2"))) + #t))))) + (inputs + `(("python" ,python))) + (synopsis "Python bindings of libSVM")))