unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ng0 <ng0@we.make.ritual.n0.is>
To: Brendan Tildesley <brendan.tildesley@openmailbox.org>,
	guix-devel@gnu.org
Subject: Re: [PATCH] gnu: Add praat
Date: Fri, 02 Sep 2016 11:08:40 +0000	[thread overview]
Message-ID: <87y43aimo7.fsf@we.make.ritual.n0.is> (raw)
In-Reply-To: <50962352-6623-74c9-0f33-3615daf46fcc@openmailbox.org>

Brendan Tildesley <brendan.tildesley@openmailbox.org> 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 <brendan.tildesley@openmailbox.org>
> 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 <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))

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	other threads:[~2016-09-02 11:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-30 16:08 [PATCH] gnu: Add praat Brendan Tildesley
2016-08-30 19:02 ` ng0
2016-08-30 19:07 ` Marius Bakke
2016-08-31 16:08   ` Alex Griffin
2016-09-01 17:43 ` Brendan Tildesley
2016-09-02 11:08   ` ng0 [this message]
2016-09-02 12:20   ` Ludovic Courtès
2016-09-02 15:12     ` Brendan Tildesley
2016-09-03 13:43       ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y43aimo7.fsf@we.make.ritual.n0.is \
    --to=ng0@we.make.ritual.n0.is \
    --cc=brendan.tildesley@openmailbox.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).