Subject: [bug#30266] Add FANN

From: Ben Woodcroft <[email-masked]>
Date: Sun, 28 Jan 2018 12:13:42 +1000

Hi Mark,

Thanks for the patch.

> +(define-module (gnu packages ai)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix utils)
> +  #:use-module (guix download)
> +  #:use-module (guix packages)
> +  #:use-module (guix build-system cmake)
> +  #:use-module (guix git-download)
> +  #:use-module (gnu packages))
I think machine-learning.scm would be a good home for this package, so a 
new file wouldn't be needed.

> +
> +(define-public libfann
> +  (package
> +    (name "libfann")
> +    (version "d71d54788b")

The last release is 129 commits behind and it has been some time, so I 
think you are right - we should package from a git commit.

Usually we package from git using this style though (i.e. reason for not 
using the release, use of 'file-name', and a version that includes the 
last release followed by '-1.<commit>').

   ;; There are no recent releases so we package from git.
   (let ((commit "da121155a977197cab9fbb15953ca1b40b11eb87"))
     (package
       (name "newick-utils")
       (version (string-append "1.6-1." (string-take commit 8)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/tjunier/newick_utils.git")
                       (commit commit)))
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
"1hkw21rq1mwf7xp0rmbb2gqc0i6p11108m69i7mr7xcjl268pxnb"))))

> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url"https://github.com/libfann/fann.git")
> +                    (commit version)))
> +              (sha256
> +               (base32
> +                "0ibwpfrjs6q2lijs8slxjgzb2llcl6rk3v2ski4r6215g5jjhg3x"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     `(#:tests? #f))
I see from the website:

> Once you have installed the library you can test it out by going to 
> the examples directory and type |make runtest|, which will compile the 
> examples and run a few of them to test that everything is working.
Is that possible? Ideally, since there are tests it would be good to run 
them.

> +    (home-page"http://leenissen.dk/fann/wp/")
> +    (synopsis "Fast Artificial Neural Network")
> +    (description
> +     "FANN is a free open source neural network library, which implements
> +multilayer artificial neural networks in C with support for both fully
> +connected and sparsely connected networks.")
> +    (license license:lgpl2.1)))
Otherwise LGTM. Can you send an updated patch please?

Thanks, ben