diff mbox series

[bug#58162] gnu: Add qdmr

Message ID 20220929015726.26821-1-ryan@using.tech
State Accepted
Headers show
Series [bug#58162] gnu: Add qdmr | expand

Checks

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

Commit Message

Ryan Tolboom Sept. 29, 2022, 1:57 a.m. UTC
---
 gnu/packages/radio.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

Comments

\( Sept. 29, 2022, 5:50 p.m. UTC | #1
Hey!

On Thu Sep 29, 2022 at 2:57 AM BST, Ryan Tolboom wrote:
> +    (native-inputs (list qttools-5))
> +    (inputs (list qtbase-5 qtserialport qtlocation yaml-cpp libusb))

Usually inputs and native-inputs come after arguments.

> +    (arguments
> +     `(#:tests? #f ;No tests
> +       #:phases (modify-phases %standard-phases
> +                  (add-after 'unpack 'fix-paths
> +                    (lambda* (#:key outputs #:allow-other-keys)
> +                      (substitute* "lib/CMakeLists.txt"
> +                        (("DESTINATION \"/etc/udev/")
> +                         (string-append "DESTINATION \""
> +                                        (assoc-ref outputs "out") "/lib/udev/"))))))))

Try using the new gexp style for arguments:

  (arguments
   (list #:tests? #f ;no tests
         #:phases
         #~(modify-phases %standard-phases
             (add-after 'unpack 'patch-paths
               (lambda _
                 (substitute* "lib/CMakeLists.txt"
                   (("(DESTINATION \")/etc/udev/" _ directive)
                    (string-append directive #$output "/lib/udev/"))))))))

> +    (description
> +     "qdmr is a graphical user interface (GUI) application that allows one to
> +program several types of DMR radios.  To this end, it aims at being a more
> +universal codeplug programming software (CPS) compared to the device and even
> +revision specific CPSs provided by the manufacturers.  The goal of this project
> +is to provide a single, comfortable, well-documented and platform-independent
> +CPS for several types of (mainly Chinese) DMR radios.
> +
> +To install the qdmr udev rules, you must extend @code{udev-service-type} with this
> +package.  E.g.: @code{(udev-rules-service 'qdmr qdmr)}")

IMO this is too long and markety :) Also, I don't think you should mention
services in a package description.

> +    (home-page "https://dm3mat.darc.de/qdmr/")

Home-page usually goes directly before synopsis.

    -- (
Ryan Tolboom Sept. 29, 2022, 9:20 p.m. UTC | #2
Hello,

Thank you very much for your comments! I apologize for my brevity, I'm
still trying to work out the whole 'git send-email' workflow so my
patches arrive without comments. I did leave some comments through the
web interface, but I'm not seeing them show up.

I was using the 'Hello World' package example initially:
https://guix.gnu.org/cookbook/en/html_node/A-_0060_0060Hello-World_0027_0027-package.html
Do you think I should submit a patch to move home-page to the correct
place in that example?

Regarding the description, I was on the fence about it. I took it from
the GitHub page for the project and wasn't quite sure if it was too
wordy. Also regarding mentioning services in the description, several
other packages in radio.scm do it as well: rtl-sdr, airspyhf, hackrf,
and rfcat. I actually found it quite useful when setting things up,
does it have to be removed?

Anyway the new patch implements all your changes, which BTW
g-expressions are really neat, with the exception of removing the
service line from the description.

Let me know your thoughts,

Ryan


On Thu, Sep 29, 2022 at 1:51 PM ( <paren@disroot.org> wrote:
>
> Hey!
>
> On Thu Sep 29, 2022 at 2:57 AM BST, Ryan Tolboom wrote:
> > +    (native-inputs (list qttools-5))
> > +    (inputs (list qtbase-5 qtserialport qtlocation yaml-cpp libusb))
>
> Usually inputs and native-inputs come after arguments.
>
> > +    (arguments
> > +     `(#:tests? #f ;No tests
> > +       #:phases (modify-phases %standard-phases
> > +                  (add-after 'unpack 'fix-paths
> > +                    (lambda* (#:key outputs #:allow-other-keys)
> > +                      (substitute* "lib/CMakeLists.txt"
> > +                        (("DESTINATION \"/etc/udev/")
> > +                         (string-append "DESTINATION \""
> > +                                        (assoc-ref outputs "out") "/lib/udev/"))))))))
>
> Try using the new gexp style for arguments:
>
>   (arguments
>    (list #:tests? #f ;no tests
>          #:phases
>          #~(modify-phases %standard-phases
>              (add-after 'unpack 'patch-paths
>                (lambda _
>                  (substitute* "lib/CMakeLists.txt"
>                    (("(DESTINATION \")/etc/udev/" _ directive)
>                     (string-append directive #$output "/lib/udev/"))))))))
>
> > +    (description
> > +     "qdmr is a graphical user interface (GUI) application that allows one to
> > +program several types of DMR radios.  To this end, it aims at being a more
> > +universal codeplug programming software (CPS) compared to the device and even
> > +revision specific CPSs provided by the manufacturers.  The goal of this project
> > +is to provide a single, comfortable, well-documented and platform-independent
> > +CPS for several types of (mainly Chinese) DMR radios.
> > +
> > +To install the qdmr udev rules, you must extend @code{udev-service-type} with this
> > +package.  E.g.: @code{(udev-rules-service 'qdmr qdmr)}")
>
> IMO this is too long and markety :) Also, I don't think you should mention
> services in a package description.
>
> > +    (home-page "https://dm3mat.darc.de/qdmr/")
>
> Home-page usually goes directly before synopsis.
>
>     -- (
diff mbox series

Patch

diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 2968f9d390..72a8b726e5 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -11,6 +11,7 @@ 
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;; Copyright © 2022 Sheng Yang <styang@fastmail.com>
 ;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 Ryan Tolboom <ryan@using.tech>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,6 +90,7 @@  (define-module (gnu packages radio)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tcl)
@@ -2668,3 +2670,42 @@  (define-public gnss-sdr
 position fixes) the signals of the BeiDou, Galileo, GLONASS and GPS Global
 Navigation Satellite System.")
     (license license:gpl3+)))
+
+(define-public qdmr
+  (package
+    (name "qdmr")
+    (version "0.10.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/hmatuschek/qdmr")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "037vkwk974zrwacxafslkb3mbw9258v9sdpwdvb23msjzbc3snrn"))))
+    (build-system cmake-build-system)
+    (native-inputs (list qttools-5))
+    (inputs (list qtbase-5 qtserialport qtlocation yaml-cpp libusb))
+    (arguments
+     `(#:tests? #f ;No tests
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-paths
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (substitute* "lib/CMakeLists.txt"
+                        (("DESTINATION \"/etc/udev/")
+                         (string-append "DESTINATION \""
+                                        (assoc-ref outputs "out") "/lib/udev/"))))))))
+    (synopsis "GUI application and command line tool to program DMR radios")
+    (description
+     "qdmr is a graphical user interface (GUI) application that allows one to
+program several types of DMR radios.  To this end, it aims at being a more
+universal codeplug programming software (CPS) compared to the device and even
+revision specific CPSs provided by the manufacturers.  The goal of this project
+is to provide a single, comfortable, well-documented and platform-independent
+CPS for several types of (mainly Chinese) DMR radios.
+
+To install the qdmr udev rules, you must extend @code{udev-service-type} with this
+package.  E.g.: @code{(udev-rules-service 'qdmr qdmr)}")
+    (home-page "https://dm3mat.darc.de/qdmr/")
+    (license license:gpl3+)))