Subject: Re: [bug#38865] [PATCH] add package definition for liquid-dsp-1.3.2

From: Christopher Howard <[email-masked]>
Date: Fri, 10 Jan 2020 21:42:54 -0900

I went ahead and attached the updated patch as originally requested, in
case it is needed. I copied in the description the other uploader had
used since that seemed much better. One difference between my
definition and the other one, is that I include fftw and fftwf as
package inputs. fftw is an optional dependency of liquid-dsp, which I
think does not change the API of liquid-dsp, but does affects the
backend performance.

As far as sdr.scm vs. ham-radio.scm: I am a licensed ham radio operator
(US General Class), but nevertheless SDR and DSP are really not
exclusive to ham radio. Liquid DSP, e.g., could be used in a lot of
non-licensed or commercial-licensed applications (referring to the
frequency license).

-- 
Christopher Howard
p: +1 (907) 374-0257
w: https://librehacker.com
social: https://gnusocial.club/librehacker
gpg: ADDEAADE5D607C8D (keys.gnupg.net)

On Fri, 2020-01-10 at 19:57 -0600, Brett Gilio wrote:
> Ludovic Courtès <[email-masked]> writes:
> 
> > Hi,
> > 
> > Christopher Howard <[email-masked]> skribis:
> > 
> > > Patch is attached for a new package definition. It passed all
> > > guix lint
> > > checks, except that I received an error from guix lint that it
> > > could
> > > not find the CVE json URL. Package builds and passes all tests on
> > > x86-
> > > 64.
> > 
> > Oh, the CVE error is weird; could you paste it?
> > 
> > > From 3c8ccf400dbbf23191b958dfdcef986d1927719c Mon Sep 17 00:00:00
> > > 2001
> > > From: Christopher Howard <[email-masked]>
> > > Date: Wed, 1 Jan 2020 19:58:25 -0900
> > > Subject: [PATCH] Adds new package liquid-dsp
> > > 
> > > ---
> > >  gnu/packages/liquid-dsp.scm | 53
> > > +++++++++++++++++++++++++++++++++++++
> > 
> > Could you provide a commit log?  (See
> > <
> > https://guix.gnu.org/manual/devel/en/html_node/Submitting-Patches.html>
> > ;.)
> > 
> > Overall the patch LGTM; minor comments:
> > 
> > > --- /dev/null
> > > +++ b/gnu/packages/liquid-dsp.scm
> > 
> > Packages are usually grouped together in a file that reflect the
> > category they belong to.  Would it make sense to call this file
> > ‘sdr.scm’, and it would eventually include other packages related
> > to
> > software-defined ratio, or perhaps dsp.scm?
> > 
> > > +(define-public liquid-dsp
> > > +  (package
> > > +    (name "liquid-dsp")
> > > +    (version "1.3.2")
> > > +    (source
> > > +     (origin (method git-fetch)
> > > +             (uri (git-reference
> > > +                   (url (string-append "
> > > https://github.com/jgaeddert/liquid-dsp.git"))
> > 
> > No need for ‘string-append’ here.  :-)
> > 
> > > +    (synopsis "Signal processing library for software-defined
> > > radios written in C")
> > 
> > I’d dropped “written in C” from the synopsis.
> > 
> > > +    (description
> > > +     "Liquid DSP provides a set of extensible DSP modules that
> > > do not
> >                                                  ^
> > Please write: “@dfn{digital signal processing} (DSP) modules”, for
> > clarity.
> > 
> > > +rely on external dependencies or cumbersome frameworks")
> > 
> > Please add a period at the end.  Bonus point if you can expound a
> > bit.
> > 
> > Could you send an updated patch?
> > 
> > Thank you!
> > 
> > Ludo’.
> > 
> > 
> > 
> > 
> 
> There is also a liquid-dsp patch in #38842 by Evan Straw (cc).
> 
From 0064c61e7884c6f7d6356dfa22b04279bc460b2a Mon Sep 17 00:00:00 2001
From: Christopher Howard <[email-masked]>
Date: Fri, 10 Jan 2020 21:19:24 -0900
Subject: [PATCH] gnu: Add liquid-dsp.

* gnu/packages/sdr.scm (liquid-dsp): New variable
---
 gnu/packages/sdr.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 gnu/packages/sdr.scm

diff --git a/gnu/packages/sdr.scm b/gnu/packages/sdr.scm
new file mode 100644
index 0000000000..f6c9050503
--- /dev/null
+++ b/gnu/packages/sdr.scm
@@ -0,0 +1,58 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Christopher Howard <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages sdr)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools))
+
+(define-public liquid-dsp
+  (package
+    (name "liquid-dsp")
+    (version "1.3.2")
+    (source
+     (origin (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/jgaeddert/liquid-dsp.git")
+                   (commit (string-append "v" version))))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32 "1n6dbg13q8ga5qhg1yiszwly4jj0rxqr6f1xwm9waaly5z493xsd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)))
+    (inputs
+     `(("fftw" ,fftw)
+       ("fftwf" ,fftwf)))
+    (home-page "https://liquidsdr.org")
+    (synopsis "Signal processing library for software-defined radios")
+    (description
+     "Liquid DSP is a @dfn{digital signal processing} (DSP) library designed
+specifically for software-defined radios on embedded platforms.  The aim is to
+provide a lightweight DSP library that does not rely on a myriad of external
+dependencies or proprietary and otherwise cumbersome frameworks.  All signal
+processing elements are designed to be flexible, scalable, and dynamic,
+including filters, filter design, oscillators, modems, synchronizers, complex
+mathematical operations, and much more.")
+    (license license:expat)))
-- 
2.24.1