Message ID | PU1PR01MB2155201726E55A5FC0EE82DF8DB19@PU1PR01MB2155.apcprd01.prod.exchangelabs.com |
---|---|
State | New |
Headers | show |
Series | [bug#51072] gnu: Add Weka | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/issue | success | View issue |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
>+ (uri "mirror://sourceforge/weka/weka-3-9/3.9.5/weka-3-9-5.zip") These isn't source code, these are binaries (*). With the exception of the bootstrap seeds, things in Guix must be built from source (and even then, we still can build them from source, with "guix build bootstrap-tarballs"). Looking at the git repository, it appears to use Ant, and we have an ant-build-system, so unless there are complicated dependencies, it should be feasible. >+ (native-inputs `(("unzip" ,unzip))) >+ (inputs `(("jre" ,icedtea))) Nowadays you can avoid input labels with (native-inputs (list unzip)) and (inputs (list icedtea)). >+ (display >+ (string-append >+ "#!/bin/sh\n\n" >+ (assoc-ref inputs "jre") "/bin/java -jar " >+ out "/share/weka/weka.jar \"$@\"\n")))) >+ (chmod wrapper #o555)) Do (search-input-file inputs "bin/java") to avoid depending on input labels. Also, you are using /bin/sh (which IIUC will be patched to /gnu/store/.../bin/sh), but for such patching to work, you need to have bash-minimal (or bash) in the inputs -- while bash-minimal is an implicit (native-)input of many build systems, it isn't a regular implicit input, at least for copy-build-system, so this wouldn't work when cross-compiling, so I propose to add bash-minimal to the inputs. > + #t))))) Trailing #t are obsolete nowadays. (*) At least, I expect them to be; the download is in-progress. Greetings, Maxime.
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 029422677a..98412894b0 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -40,6 +40,7 @@ #:use-module (guix download) #:use-module (guix svn-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system ocaml) #:use-module (guix build-system python) @@ -65,6 +66,7 @@ #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages image) + #:use-module (gnu packages java) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -2934,3 +2936,41 @@ Note: currently this package does not provide GPU support.") "Hmmlearn is a set of algorithms for unsupervised learning and inference of Hidden Markov Models.") (license license:bsd-3))) + +(define-public weka + (package + (name "weka") + (version "3.9.5") + (source (origin + (method url-fetch) + (uri "mirror://sourceforge/weka/weka-3-9/3.9.5/weka-3-9-5.zip") + (sha256 + (base32 + "0scnqk4zysdp9hv7w2rgz3pwkqirszj8pfv94drkhlnyc9cz9kf6")))) + (build-system copy-build-system) + (native-inputs `(("unzip" ,unzip))) + (inputs `(("jre" ,icedtea))) + (arguments '(#:install-plan '(("." "share/weka/")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (wrapper (string-append out "/bin/weka"))) + (mkdir-p (string-append out "/bin")) + (with-output-to-file wrapper + (lambda _ + (display + (string-append + "#!/bin/sh\n\n" + (assoc-ref inputs "jre") "/bin/java -jar " + out "/share/weka/weka.jar \"$@\"\n")))) + (chmod wrapper #o555)) + #t))))) + (synopsis "Machine learning algorithms for data mining tasks") + (description + "Weka is a collection of machine learning algorithms in Java. +It contains tools for data preparation, classification, regression, +clustering, association rules mining, and visualization.") + (home-page "https://www.cs.waikato.ac.nz/ml/weka/") + (license license:gpl3+)))