Subject: Re: [bug#43310] [PATCH] gnu: Add lsp-dsp-lib.

From: Efraim Flashner <[email-masked]>
Date: Mon, 14 Sep 2020 17:35:41 +0300

On Mon, Sep 14, 2020 at 03:17:48PM +0100, Alexandros Theodotou wrote:
> Hi Efraim,
> 
> Thanks for the review.
> 
> On Mon, 2020-09-14 at 17:02 +0300, Efraim Flashner wrote:
> > It looks like everything in the modules directory is vendored. Can we
> > build it separately and link it in? 
> 
> I asked the author something similar a while back 
> https://github.com/sadko4u/lsp-dsp-lib/issues/1#issuecomment-676517050
> I think the build system just expects those modules to be there as
> sources - not sure if they even build anything to link to. BTW, this is
> my initial patch, before the author started to provide an all-inclusive 
> tarball in the github releases page:
> 
> ```scheme
> (define-public lsp-dsp-lib
>   (package
>     (name "lsp-dsp-lib")
>     (version "0.5.6")
>     (source
>       (origin
>         (method git-fetch)
>         (uri (git-reference
>                (url "https://github.com/sadko4u/lsp-dsp-lib")
>                (commit (string-append "lsp-dsp-lib-" version))))
>         (file-name (git-file-name name version))
>         (sha256
>          (base32
>           "1n5qp9bjsgg1ziy9mqnx034qlzbsp7yl473vk9aigzkyj883dfpj"))))
>     (build-system gnu-build-system)
>     (arguments
>      `(#:tests? #f ; no tests
>        #:make-flags
>        (list "CC=gcc")
>        #:phases
>        (modify-phases %standard-phases
>          (add-before 'build 'copy-modules
>            (lambda* (#:key inputs #:allow-other-keys)
>              (copy-recursively (assoc-ref inputs "lsp-common-lib")
>                                "modules/lsp-common-lib")
>              (copy-recursively (assoc-ref inputs "lsp-test-fw")
>                                "modules/lsp-test-fw")
>              #t))
>          (replace 'configure
>            (lambda _
>              (invoke "make" "config" (string-append "PREFIX=" (assoc-
> ref %outputs "out")))
>              #t)))))
>     (inputs
>      `(("lsp-common-lib" ,(origin
>          (method git-fetch)
>          (uri (git-reference
>                 (url "https://github.com/sadko4u/lsp-common-lib")
>                 (commit "lsp-common-lib-1.0.7")))
>          (file-name (git-file-name name version))
>          (sha256
>            (base32
>              "1alxv2ryivbj122gryxrrvyicw6zgbdk15wp010lrq6r1nj7mjxh"))))
>        ("lsp-test-fw" ,(origin
>          (method git-fetch)
>          (uri (git-reference
>                 (url "https://github.com/sadko4u/lsp-test-fw")
>                 (commit "lsp-test-fw-1.0.5")))
>          (file-name (git-file-name name version))
>          (sha256
>            (base32
>              "0n4ircp9bgzwfaa6023bvfsb90qvl2iawbihnwivr5id1js5jq3p"))))
>        ))
>     (home-page "https://github.com/sadko4u/lsp-dsp-lib")
>     (synopsis "Digital signal processing library")
>     (description "The LSP DSP library provides a set of functions that
> perform
> SIMD-optimized computing on several hardware architectures.  All
> functions
> currently operate on IEEE-754 single-precision floating-point
> numbers.")
>     (license license:lgpl3+)))
> ```

The current patch looks better. It is the same author and all.

> 
> > Also, I saw that there were a few
> > test directories. Are there tests to be built?
> 
> Not sure - I don't see a check/test make target (see `make help`)
> 

I didn't see anything either.

> 
> > > +    (arguments
> > > +     `(#:tests? #f ; no tests
> > > +       #:make-flags
> > > +       (list "CC=gcc")
> > 
> > This can be cc-for-target
> >          (list (string-append "CC=" ,(cc-for-target)))
> 
> ACK
> 
> > > +       (modify-phases %standard-phases
> > > +         (replace 'configure
> > > +           (lambda _
> > > +             (invoke "make" "config" (string-append "PREFIX="
> > > (assoc-ref %outputs "out")))
> > > +             #t)))))
> > 
> > We'd rather not use %outputs if possible, but to add it to the
> > lambda.
> > Also invoke already returns #t
> > 
> >            (lambda* (#:key outputs #:allow-other-keys)
> >              (invoke "make" "config"
> >                      (string-append "PREFIX=" (assoc-ref outputs
> > "out"))))))))
> 
> ACK
> 
> Please find the updated patch attached.
> 
> Thanks,
> Alex

Thanks! Patch pushed.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted