diff mbox

gnu: Add praat

Message ID 87bn0ayt1e.fsf@ike.i-did-not-set--mail-host-address--so-tickle-me
State New
Headers show

Commit Message

Marius Bakke Aug. 30, 2016, 7:07 p.m. UTC
Brendan Tildesley <brendan.tildesley@openmailbox.org> writes:

> This marks my first attempt at writing a package definition for Guix.
> Please assume it is broken since I still don't know what I'm doing, and
> forgive me if you need to school me on things written in the manual. If
> someone on GuixSD could test if it builds, load an audio file and see if
> it plays correctly, that would be a good test. When I compiled it on
> Parabola, it sets the wrong audio server by default so I had to change
> it in settings to ALSA via PortAudio in the GUI. I'm interested to see
> if it requires that on someone else's configuration too.

Hi Brendan,

Thanks for your contribution!

The patch was not recognized by my mail client, it's likely your mail
user agent changed the formatting.

I've fixed the patch indentation and commit message, and also added it
to local.mk, see updated patch below.

I don't have a Guix system with audio atm so someone else will have to
review it :)

Cheers,
Marius

Comments

Alex Griffin Aug. 31, 2016, 4:08 p.m. UTC | #1
On Tue, Aug 30, 2016, at 02:07 PM, Marius Bakke wrote:
> I don't have a Guix system with audio atm so someone else will have to
> review it :)

It works for me on GuixSD OOTB.

Brendan Tildesley wrote:
> +    (home-page "http://praat.org")

The docs point to "http://www.praat.org", so I think we should include
the www.

> +    (synopsis "Doing phonetics by computer")
> +    (description
> +     "Praat is a program for linguists to analyse, synthesize, and
> +manipulate speech, generate graphs for scientific papers, and more.")

I know it's Praat's tagline, but the synopsis doesn't match the rest of
our packages. Something like "Phonetic analysis program" would be
better. The description could probably be a bit more fleshed out too,
but I think it's also fine if you don't want to bother.

> +    (license license:gpl2)))

This should be gpl2+. It looks like praat bundles some third-party
libraries under external/ with various licenses. These should be
unbundled if possible, or else their licenses should be added to praat's
license field.

Thanks for contributing, hope it's not too much trouble cleaning up
these last few details!
diff mbox

Patch

From b2194272655f6455e7a7ad7bdf78cb827f204f3d Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <brendan.tildesley@openmailbox.org>
Date: Wed, 31 Aug 2016 02:08:15 +1000
Subject: [PATCH 1/1] gnu: Add praat.

* gnu/packages/linguistics.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk                 |  1 +
 gnu/packages/linguistics.scm | 79 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+)
 create mode 100644 gnu/packages/linguistics.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index d75ab54..c38bdef 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -211,6 +211,7 @@  GNU_SYSTEM_MODULES =				\
   %D%/packages/libusb.scm			\
   %D%/packages/libunwind.scm			\
   %D%/packages/libupnp.scm			\
+  %D%/packages/linguistics.scm			\
   %D%/packages/links.scm			\
   %D%/packages/linux.scm			\
   %D%/packages/lirc.scm				\
diff --git a/gnu/packages/linguistics.scm b/gnu/packages/linguistics.scm
new file mode 100644
index 0000000..6c4823c
--- /dev/null
+++ b/gnu/packages/linguistics.scm
@@ -0,0 +1,79 @@ 
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Brendan Tildesley <brendan.tildesley@openmailbox.org>
+;;;
+;;; 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 linguistics)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix utils)
+  #:use-module (guix download)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages linux) ; for alsa-lib
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages pulseaudio))
+
+(define-public praat
+  (package
+    (name "praat")
+    (version "6.0.19")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/praat/praat/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fhzqzygx5h6xkjaxwgzvnby393q7c3lby0fq3bnhscfdhzkm0a0"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk" ,gtk+-2)
+       ("alsa-lib" ,alsa-lib)
+       ("pulseaudio" ,pulseaudio)
+       ("python" ,python)))             ; optional scripts
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'copy-makefile
+           ;; setup makefile for compiling on Linux as per README.md. There may
+           ;; be issues with this. The audio config may need to be changed in
+           ;; the GUI. If that is the case when tested on GuixSD, I'd like to
+           ;; figure out how to patch praat to work by default.
+           (lambda _
+             (copy-file "makefiles/makefile.defs.linux.pulse"
+                        "makefile.defs")
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (target (string-append out "/bin")))
+               (mkdir-p target)
+               (install-file "praat" target))
+             #t)))))
+    (home-page "http://praat.org")
+    (synopsis "Doing phonetics by computer")
+    (description
+     "Praat is a program for linguists to analyse, synthesize, and
+manipulate speech, generate graphs for scientific papers, and more.")
+    (license license:gpl2)))
-- 
2.9.3