[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