[bug#43310] gnu: Add lsp-dsp-lib.
diff mbox series

Message ID 3128d450cf954008cadc7c24d9817c5e88a6b4ea.camel@zrythm.org
State New
Headers show
Series
  • [bug#43310] gnu: Add lsp-dsp-lib.
Related show

Commit Message

Alexandros Theodotou Sept. 14, 2020, 2:17 p.m. UTC
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+)))
```

> 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`)


> > +    (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

Comments

Efraim Flashner Sept. 14, 2020, 2:35 p.m. UTC | #1
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.

Patch
diff mbox series

From 2efb2e2dfbfe4cd82b90fef44f6d6919a5cac865 Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <alex@zrythm.org>
Date: Mon, 14 Sep 2020 15:16:30 +0100
Subject: [PATCH] gnu: Add lsp-dsp-lib.

* gnu/packages/audio.scm (lsp-dsp-lib): New variable.
---
 gnu/packages/audio.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 5e6008f31e..38ee4f8bcc 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -4778,6 +4778,37 @@  edited, converted, compressed and saved.")
        ,@(package-inputs ztoolkit)))
     (synopsis "ZToolkit with SVG support")))
 
+(define-public lsp-dsp-lib
+  (package
+    (name "lsp-dsp-lib")
+    (version "0.5.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/sadko4u/lsp-dsp-lib/"
+                            "releases/download/lsp-dsp-lib-" version
+                            "/lsp-dsp-lib-" version "-src.tar.gz"))
+        (sha256
+         (base32
+          "07w3d2i0z0xmvi1ngcgs7lc5a0da8jvf7rv4dnjk01md43b7fkh1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "config"
+                     (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+    (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+)))
+
 (define-public codec2
   (package
     (name "codec2")
-- 
2.27.0