guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: Add praat


From: ng0
Subject: Re: [PATCH] gnu: Add praat
Date: Fri, 02 Sep 2016 11:08:40 +0000

Brendan Tildesley <address@hidden> writes:

> Please discard the first patch and consider this updated version. I was
> able to identify a timestamp and remove it, make the build reproducible.
> Also, I have added all the licenses to the best of my ability, by which
> I mean I ripped off the debian package. Praat looks messy but it's fun
> software. For example, you if you are learning a tonal language, you can
> import recordings to have it show the contours and see how they differ
> from the idealised textbook versions (quite a lot!) --
> http://www.sinosplice.com/life/archives/2008/01/21/seeing-the-tones-of-mandarin-chinese-with-praat
> From bdc94ded90345e67885a7aa3b7e649bc546ad22c Mon Sep 17 00:00:00 2001
> From: Brendan Tildesley <address@hidden>
> Date: Fri, 2 Sep 2016 03:28:58 +1000
> Subject: [PATCH] gnu: Add praat
>
> * gnu/packages/linguistics.scm (praat): New variable
> ---
>  gnu/local.mk                 |   1 +
>  gnu/packages/linguistics.scm | 111 
> +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 112 insertions(+)
>  create mode 100644 gnu/packages/linguistics.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 5b90dfb..795a246 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -214,6 +214,7 @@ GNU_SYSTEM_MODULES =                              \
>    %D%/packages/libunwind.scm                 \
>    %D%/packages/libupnp.scm                   \
>    %D%/packages/links.scm                     \
> +  %D%/packages/linguistics.scm                       \
>    %D%/packages/linux.scm                     \
>    %D%/packages/lirc.scm                              \
>    %D%/packages/lisp.scm                              \
> diff --git a/gnu/packages/linguistics.scm b/gnu/packages/linguistics.scm
> new file mode 100644
> index 0000000..70a0d43
> --- /dev/null
> +++ b/gnu/packages/linguistics.scm
> @@ -0,0 +1,111 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 Brendan Tildesley <address@hidden>
> +;;;
> +;;; 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))

These are just minor details to save lines of code, which do not affect
the build process. I assume the package builds as you wrote before.

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

I would move this up:

                 (uri (string-append "https://github.com/praat/praat/archive/v"; 
version ".tar.gz"))

but as this saves nothing, you could as well do:

                 (uri (string-append "https://github.com/praat/praat/";
                                     "archive/v" version ".tar.gz"))

> +              (file-name (string-append name "-" version ".tar.gz"))
> +              (sha256
> +               (base32 
> "1fhzqzygx5h6xkjaxwgzvnby393q7c3lby0fq3bnhscfdhzkm0a0"))))

This could be moved, as (almost) every package does this:
(sha256
 (base32
   "incrediblelongspelltosummoncthulhu"))

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

         `(#:tests? #f ; Tests fail because $reason(s)
or just:
         `(#:tests? #f ; No make check

> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure)
> +         (add-after 'unpack 'be-timeless
> +           (lambda _
> +             (substitute* "external/portaudio/pa_front.c"
> +               ((" \\(built \" __DATE__  \" \" __TIME__ \"\\)") ""))
> +             #t))
> +         (add-before
> +             'build
> +             'copy-makefile

As far as I know we can change this to
(add-before 'build 'copy-makefile

> +           (lambda _
> +             (copy-file "makefiles/makefile.defs.linux.pulse"
> +                        "makefile.defs")
> +             #t))
> +         (replace
> +             'install

and this to (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://www.praat.org";)
> +    (synopsis "Phonetics analysis program for linguists")
> +    (description
> +     "According to its authors, praat is \"doing phonetics by
> +computer\". Through its graphical interface, several speech analysis
> +functionalities are available: spectrograms, cochleograms, and pitch and
> +formant extraction. Articulatory synthesis, as well as synthesis from pitch,
> +formant, and intensity are also available. Other features are segmentation,
> +labelling using the phonetic alphabet, and computation of statistics. Praat 
> is
> +configurable and extensible through its own scripting language and has
> +provisions for communicating with other programs.")

The license list is pretty long. I would change it...

> +    (license (list
> +              ;; Praat it's self (no version stated => gpl2+ by gpl terms)
> +              ;; EEG/*, FFNet/*, LPC/* external/mp3/*
> +              ;; external/espeak/espeakdata_FileInMemory.*
> +              ;; contrib/ola/*
> +              ;; kar/ipaSerifRegularPS.cpp
> +              ;; dwsys/regularExp.h
> +              ;; dwsys/NUMmathlib.cpp
> +              license:gpl2+
> +              ;; external/gsl/*
> +              ;; external/glpk/*
> +              ;; external/espeak/*
> +              license:gpl3+
> +              ;; external/flac/*
> +              license:bsd-3
> +              ;; external/portaudio/*
> +              license:expat
> +              ;; num/NUMrandom.cpp
> +              license:public-domain
> +              ;; external/flac/flac_share_alloc.h
> +              ;; external/glpk/colamd.c
> +              license:lgpl2.1+
> +              ))))

...to:

(license (list
          ;; Praat itself (no version stated => gpl2+ by gpl terms)
          ;; EEG/*, FFNet/*, LPC/* external/mp3/*
          ;; external/espeak/espeakdata_FileInMemory.*
          ;; contrib/ola/* , kar/ipaSerifRegularPS.cpp
          ;; dwsys/regularExp.h , dwsys/NUMmathlib.cpp
          license:gpl2+
          ;; external/gsl/* , external/glpk/* , external/espeak/*
          license:gpl3+
          license:bsd-3 ; external/flac/*
          license:expat ; external/portaudio/*
          license:public-domain ; num/NUMrandom.cpp
          ;; external/flac/flac_share_alloc.h , external/glpk/colamd.c
          license:lgpl2.1+))))
and this                  ^ otherwise the parens feel lonely and lint
                            becomes sad.


Or something similar to this.
> -- 
> 2.9.3
>

-- 
ng0
For non-prism friendly talk find me on http://www.psyced.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]