[bug#37284] added gnu/packages/fmit.scm (Free Musical Instrument Tuner)
diff mbox series

Message ID UidibyLcn3xTwjDrxMaQPt6gOp2iz1d42z4V71_RpF1uRvC6-Vhn-1br5zn7snkgfzjsa4SB9UD2u-ZU7wboCHLchlXrtsbXAEFvkKjUayg=@protonmail.com
State New
Headers show
Series
  • [bug#37284] added gnu/packages/fmit.scm (Free Musical Instrument Tuner)
Related show

Commit Message

Tobias Geerinckx-Rice via Guix-patches via Sept. 2, 2019, 4:16 p.m. UTC
* gnu/packages/fmit.scm: created

---
 gnu/packages/fmit.scm | 64 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 gnu/packages/fmit.scm

--
2.23.0

Comments

Nicolas Goaziou Sept. 2, 2019, 5:29 p.m. UTC | #1
Hello,

raingloom via Guix-patches via <guix-patches@gnu.org> writes:

> * gnu/packages/fmit.scm: created

Thank you!

> ---
>  gnu/packages/fmit.scm | 64 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 64 insertions(+)
>  create mode 100644 gnu/packages/fmit.scm
>
> diff --git a/gnu/packages/fmit.scm b/gnu/packages/fmit.scm

Is there any reason to create a new module instead of putting the
package into "music.scm"?

> +    (arguments
> +     '(#:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "PREFIX=" out) (string-append "PREFIXSHORTCUT=" out)))

This line is too long. Moreover, I think "PREFIX=" is not necessary, as
Guix adds it automatically. I'm not sure about "PREFIXSHORTCUT=", tho.

It seems PREFIX and PREFIXSHORTCUT are used in qmake, not in make, so it
may be possible to remove the whole #:make-flags altogether. WDYT?

> +       #:phases
> +       (modify-phases %standard-phases
> +	 (delete 'configure)

Indentation looks wrong. Could you take care about it?

> +	 (add-before 'build 'qmake
> +	   (lambda _
> + (let ((out (assoc-ref %outputs "out"))) (invoke "qmake" "fmit.pro"
> (string-append "PREFIX=" out) (string-append "PREFIXSHORTCUT=" out)
> "CONFIG+=acs_qt acs_alsa acs_jack acs_portaudio"))))

The line is too long. I suggest:

  (let ((out (assoc-ref %outputs "out")))
    (invoke "qmake"
            "fmit.pro"
            (string-append "PREFIX=" out)
            (string-append "PREFIXSHORTCUT=" out)
            "CONFIG+=acs_qt acs_alsa acs_jack acs_portaudio"))

> +    (inputs
> +     `(("fftw" ,fftw)
> +       ("portaudio" ,portaudio)
> +       ("qtmultimedia" ,qtmultimedia)
> +       ("qtsvg" ,qtsvg)
> +       ("alsa-lib" ,alsa-lib)
> +       ("jack" ,jack-1)
> +       ("qtbase" ,qtbase)))
> +    (native-inputs
> +     `(("itstool" ,itstool)
> +       ("qttools" ,qttools)
> +       ("hicolor-icon-theme" ,hicolor-icon-theme)
> +       ("gettext" ,gnu-gettext)))

Could you re-order (native-)inputs alphabetically?

> +    (synopsis "Free Musical Instrument Tuner")

I understand Free is the F from FMIT, but, as a synopsis, I don't think
it brings much value. Maybe "Musical instrument tuner" is enough?

> +    (description "FMIT is a graphical utility for tuning musical instruments, with error and volume history, and advanced features")
> +    (home-page "http://gillesdegottex.github.io/fmit/")

Prefer https:// here.

> +    (license gpl3+)))

If you move it to music.scm, I believe it should be prefixed with
license:

Also, the license seems wrong, it should be (list license:gpl2+
license:lgpl2.1) with a comment explaining that most of the code is
under GPL2+, but some abstract or helper classes are under LGPL2.1.

Regards,
Tobias Geerinckx-Rice via Guix-patches via Sept. 8, 2019, 9:22 a.m. UTC | #2
> 37284: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=37284
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems
> Hello,
>
> raingloom raingloom@protonmail.com writes:
>
> > Updated again. Is sending it as an attachment fine?
>
> Well, oddly, it seems that your update addressed only one of my
> suggestions.

That's be weird indeed, I'm pretty sure I went through all of them.... ah. Ahh heck. Forgot to commit. >_>
Git is confusing.

Patch
diff mbox series

diff --git a/gnu/packages/fmit.scm b/gnu/packages/fmit.scm
new file mode 100644
index 0000000000..2db5b1ca25
--- /dev/null
+++ b/gnu/packages/fmit.scm
@@ -0,0 +1,64 @@ 
+(define-module (gnu packages fmit)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages gettext))
+
+(define-public fmit
+  (package
+    (name "fmit")
+    (version "1.2.6")
+    (source (origin
+	      (method git-fetch)
+	      (uri (git-reference
+		    (url "https://github.com/gillesdegottex/fmit/")
+		    (commit (string-append "v" version))))
+	      (sha256 (base32 "03nzkig5mw2rqwhwmg0qvc5cnk9bwh2wp13jh0mdrr935w0587mz"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "PREFIX=" out) (string-append "PREFIXSHORTCUT=" out)))
+       #:phases
+       (modify-phases %standard-phases
+	 (delete 'configure)
+	 (add-before 'build 'qmake
+	   (lambda _
+	     (let ((out (assoc-ref %outputs "out"))) (invoke "qmake" "fmit.pro" (string-append "PREFIX=" out) (string-append "PREFIXSHORTCUT=" out) "CONFIG+=acs_qt acs_alsa acs_jack acs_portaudio"))))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/fmit")
+                 `("QT_PLUGIN_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/plugins"))
+                         '("qtbase" "qtmultimedia" "qtsvg")))
+                 `("QML2_IMPORT_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/qml"))
+                         '("qtmultimedia"))))
+               #t))))))
+    (inputs
+     `(("fftw" ,fftw)
+       ("portaudio" ,portaudio)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)
+       ("alsa-lib" ,alsa-lib)
+       ("jack" ,jack-1)
+       ("qtbase" ,qtbase)))
+    (native-inputs
+     `(("itstool" ,itstool)
+       ("qttools" ,qttools)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("gettext" ,gnu-gettext)))
+    (synopsis "Free Musical Instrument Tuner")
+    (description "FMIT is a graphical utility for tuning musical instruments, with error and volume history, and advanced features")
+    (home-page "http://gillesdegottex.github.io/fmit/")
+    (license gpl3+)))