diff mbox series

[bug#35423] gnu: Add julius.

Message ID 3d5daf0540406554d3082f94fdc6079c@disroot.org
State Accepted
Headers show
Series [bug#35423] gnu: Add julius. | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Amar M. Singh April 25, 2019, 2:34 a.m. UTC
Julius is a speech recognition tool. Package uses a custom license.

From e01acf44822c57cf2af4678007ddd6a70b61ce1e Mon Sep 17 00:00:00 2001
From: Amar Singh <nly@disroot.org>
Date: Sun, 21 Apr 2019 19:37:37 +0530
Subject: [PATCH] gnu: Add julius.

* gnu/packages/speech.scm (julius): New variable.
---
 gnu/packages/speech.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

 synthesis, and the ability to use MBROLA voices.")
 (license license:gpl3+)))
+(define-public julius
+ (package
+ (name "julius")
+ (version "8c60cb8c")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/julius-speech/julius")
+ (commit version)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32
+ "11qbp9kid251lx6li4fv1r6l0pixxcs1m00sax1z057bhcv4jc7a"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("zlib" ,zlib)
+ ("sdl2" ,sdl2)
+ ("perl" ,perl)))
+ (home-page "https://github.com/julius-speech/")
+ (synopsis "Open-Source Large Vocabulary Continuous Speech
+Recognition Engine")
+ (description
+ "Julius is a high-performance, small-footprint large vocabulary continuous
+ speech recognition (LVCSR) decoder software for speech-related researchers and
+developers.")
+ (license
+ (license:non-copyleft "http://julius.osdn.jp/LICENSE.txt"
+ "Julius-Modified-BSD-4Clause"))))
+
 (define-public mitlm
 (package
 (name "mitlm")

Comments

Tobias Geerinckx-Rice April 25, 2019, 3:29 a.m. UTC | #1
nly,

Thanks for the patch!  Unfortunately, the indentation's buggered. 
How did you create/send it?

nly@disroot.org wrote:
> Julius is a speech recognition tool. Package uses a custom 
> license.
>
> From e01acf44822c57cf2af4678007ddd6a70b61ce1e Mon Sep 17 
> 00:00:00 2001
> From: Amar Singh <nly@disroot.org>
> Date: Sun, 21 Apr 2019 19:37:37 +0530
> Subject: [PATCH] gnu: Add julius.
>
> * gnu/packages/speech.scm (julius): New variable.
> ---
>  gnu/packages/speech.scm | 39 
>  +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
> index 2d6c63e3f9..a99be8a0aa 100644
> --- a/gnu/packages/speech.scm
> +++ b/gnu/packages/speech.scm
> @@ -33,9 +33,11 @@
>  #:use-module (gnu packages gcc)
>  #:use-module (gnu packages glib)
>  #:use-module (gnu packages linux)
> + #:use-module (gnu packages perl)
>  #:use-module (gnu packages pkg-config)
>  #:use-module (gnu packages pulseaudio)
>  #:use-module (gnu packages python)
> + #:use-module (gnu packages sdl)
>  #:use-module (gnu packages textutils))
>  (define-public espeak
> @@ -119,6 +121,43 @@ It is based on the eSpeak engine and 
> supports spectral and Klatt formant
>  synthesis, and the ability to use MBROLA voices.")
>  (license license:gpl3+)))
> +(define-public julius
> + (package
> + (name "julius")
> + (version "8c60cb8c")

Package versions must be monotonically increasing over time so 
Guix (and users) can determine which is newer.  Git commits 
aren't.

We also prefer to package upstream releases whenever possible, and 
I see there's a 4.5 release on GitHub.  Would that do?

If not, can you use GIT-VERSION (with "4.5" as the first argument) 
instead?  Examples abound in (gnu packages).

> + (source
> + (origin
> + (method git-fetch)
> + (uri
> + (git-reference
> + (url "https://github.com/julius-speech/julius")
> + (commit version)))
> + (file-name
> + (git-file-name name version))

This can remain unchanged even if you'd switch to GIT-VERSION.

> + (sha256
> + (base32
> + "11qbp9kid251lx6li4fv1r6l0pixxcs1m00sax1z057bhcv4jc7a"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (delete 'check))))
> + (inputs
> + `(("alsa-lib" ,alsa-lib)
> + ("zlib" ,zlib)
> + ("sdl2" ,sdl2)
> + ("perl" ,perl)))

Nitpick: might as wel sort these before they go in.

> + (home-page "https://github.com/julius-speech/")

According to the README, the ‘official’ home page is just

  https://github.com/julius-speech/julius

> + (synopsis "Open-Source Large Vocabulary Continuous Speech
> +Recognition Engine")

Everything in Guix is ‘Open Source’ (not a term we should be 
promoting anyway :-) so we don't mention it in synopses or 
descriptions.

I don't think the capitalisation is helpful (even if ‘LVCSR’ were 
a common initialism, ‘Engine’ wouldn't be capitalised).

> + (description
> + "Julius is a high-performance, small-footprint large 
> vocabulary continuous
> + speech recognition (LVCSR) decoder software for speech-related 
> researchers and
> +developers.")

Here you can use @acronym{LVCSR, large vocabulary continuous 
speech recognition} if you like.

This description is awfully short.  Since you're familiar with the 
software, would you mind expanding it?  You can re-use the most 
relevant parts of the README or other documentation.

> + (license
> + (license:non-copyleft "http://julius.osdn.jp/LICENSE.txt"
> + "Julius-Modified-BSD-4Clause"))))

Hmm.  I'm not sure if clauses 3 and 5 could be problematic.  Has 
this licence been previously discussed elsewhere in the FSDG 
world?

Thanks!

T G-R
Amar M. Singh April 26, 2019, 12:41 a.m. UTC | #2
> nly,

> Thanks for the patch! Unfortunately, the indentation's buggered.
> How did you create/send it?

> nly@disroot.org (mailto:nly@disroot.org) wrote:
> > Julius is a speech recognition tool. Package uses a custom
> > license.
> >
> > From e01acf44822c57cf2af4678007ddd6a70b61ce1e Mon Sep 17
> > 00:00:00 2001
> > From: Amar Singh <nly@disroot.org (mailto:nly@disroot.org)>
> > Date: Sun, 21 Apr 2019 19:37:37 +0530
> > Subject: [PATCH] gnu: Add julius.
> >
> > * gnu/packages/speech.scm (julius): New variable.
> > ---
> > gnu/packages/speech.scm | 39
> > +++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 39 insertions(+)
> >
> > diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
> > index 2d6c63e3f9..a99be8a0aa 100644
> > --- a/gnu/packages/speech.scm
> > +++ b/gnu/packages/speech.scm
> > @@ -33,9 +33,11 @@
> > #:use-module (gnu packages gcc)
> > #:use-module (gnu packages glib)
> > #:use-module (gnu packages linux)
> > + #:use-module (gnu packages perl)
> > #:use-module (gnu packages pkg-config)
> > #:use-module (gnu packages pulseaudio)
> > #:use-module (gnu packages python)
> > + #:use-module (gnu packages sdl)
> > #:use-module (gnu packages textutils))
> > (define-public espeak
> > @@ -119,6 +121,43 @@ It is based on the eSpeak engine and
> > supports spectral and Klatt formant
> > synthesis, and the ability to use MBROLA voices.")
> > (license license:gpl3+)))
> > +(define-public julius
> > + (package
> > + (name "julius")
> > + (version "8c60cb8c")

Web mail must've wrapped the text.

> Package versions must be monotonically increasing over time so
> Guix (and users) can determine which is newer. Git commits
> aren't.

> We also prefer to package upstream releases whenever possible, and
> I see there's a 4.5 release on GitHub. Would that do?

> If not, can you use GIT-VERSION (with "4.5" as the first argument)
> instead? Examples abound in (gnu packages).

> > + (source
> > + (origin
> > + (method git-fetch)
> > + (uri
> > + (git-reference
> > + (url "https://github.com/julius-speech/julius (https://github.com/julius-speech/julius)")
> > + (commit version)))
> > + (file-name
> > + (git-file-name name version))

> This can remain unchanged even if you'd switch to GIT-VERSION.

Using git-version now, (git-version "4.5" "1" commit). The commit is indeed version 4.5.

> > + (sha256
> > + (base32
> > + "11qbp9kid251lx6li4fv1r6l0pixxcs1m00sax1z057bhcv4jc7a"))))
> > + (build-system gnu-build-system)
> > + (arguments
> > + `(#:phases
> > + (modify-phases %standard-phases
> > + (delete 'check))))
> > + (inputs
> > + `(("alsa-lib" ,alsa-lib)
> > + ("zlib" ,zlib)
> > + ("sdl2" ,sdl2)
> > + ("perl" ,perl)))

> Nitpick: might as wel sort these before they go in.

> > + (home-page "https://github.com/julius-speech (https://github.com/julius-speech/)")

> According to the README, the ‘official’ home page is just

> https://github.com/julius-speech/julius (https://github.com/julius-speech/julius)

> > + (synopsis "Open-Source Large Vocabulary Continuous Speech
> > +Recognition Engine")

> Everything in Guix is ‘Open Source’ (not a term we should be
> promoting anyway :-) so we don't mention it in synopses or
> descriptions.

> I don't think the capitalisation is helpful (even if ‘LVCSR’ were
> a common initialism, ‘Engine’ wouldn't be capitalised).

> > + (description
> > + "Julius is a high-performance, small-footprint large
> > vocabulary continuous
> > + speech recognition (LVCSR) decoder software for speech-related
> > researchers and
> > +developers.")

> Here you can use @acronym{LVCSR, large vocabulary continuous
> speech recognition} if you like.

> This description is awfully short. Since you're familiar with the
> software, would you mind expanding it? You can re-use the most
> relevant parts of the README or other documentation.

Synopsis is lowercase now, Added one more sentence to description. Use
@(acronym ..) in description.

> > + (license
> > + (license:non-copyleft "http://julius.osdn.jp/LICENSE.txt (http://julius.osdn.jp/LICENSE.txt)"
> > + "Julius-Modified-BSD-4Clause"))))

> Hmm. I'm not sure if clauses 3 and 5 could be problematic. Has
> this licence been previously discussed elsewhere in the FSDG
> world?
>
> Thanks!

> T G-R

Yes, Julius is free software as of Version 4.2.2. It's been discussed at
Fedora project: https://fedoraproject.org/wiki/Licensing/Julius (https://fedoraproject.org/wiki/Licensing/Julius)

See attachment for patch. Alternatively: http://nly.info.tm:9001/guix/gnu-add-julius.patch (http://nly.info.tm:9001/guix/gnu-add-julius.patch)

Cheers,
Amar Singh<nly@disroot.org (mailto:nly@disroot.org)>
Ricardo Wurmus May 6, 2019, 3:29 p.m. UTC | #3
The license says:

    3. When you publish or present any results by using the Software, you
    must explicitly mention your use of "Large Vocabulary Continuous
    Speech Recognition Engine Julius".

This looks like a problem.  Also see
https://github.com/julius-speech/julius/issues/29.

Aside from this, I see that you delete the check phase.  Could you
explain why?

--
Ricardo
Amar M. Singh May 6, 2019, 6:17 p.m. UTC | #4
May 6, 2019 9:00 PM, "Ricardo Wurmus" <rekado@elephly.net> wrote:

> The license says:
> 
> 3. When you publish or present any results by using the Software, you
> must explicitly mention your use of "Large Vocabulary Continuous
> Speech Recognition Engine Julius".
> 
> This looks like a problem. Also see
> https://github.com/julius-speech/julius/issues/29.

Then let's close the bug?

> Aside from this, I see that you delete the check phase. Could you
> explain why?

There are no tests in the project(Makefile).

> --
> Ricardo

Thanks
Ricardo Wurmus May 7, 2019, 5:02 a.m. UTC | #5
>> Aside from this, I see that you delete the check phase. Could you
>> explain why?
>
> There are no tests in the project(Makefile).

In that case please use #:tests? #f and add a comment that says that
there are no tests.

>> The license says:
>>
>> 3. When you publish or present any results by using the Software, you
>> must explicitly mention your use of "Large Vocabulary Continuous
>> Speech Recognition Engine Julius".
>>
>> This looks like a problem. Also see
>> https://github.com/julius-speech/julius/issues/29.
>
> Then let's close the bug?

Unfortunately, it does look like this is an unenforcable usage
restriction that is incompatible with free software.  I encourage you to
comment on that upstream issue.  For now I’m closing this.  Let’s hope
that soon this will become free software!

Despite this negative outcome I’d like to thank you for your work on
this!

--
Ricardo
diff mbox series

Patch

diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 2d6c63e3f9..a99be8a0aa 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -33,9 +33,11 @@ 
 #:use-module (gnu packages gcc)
 #:use-module (gnu packages glib)
 #:use-module (gnu packages linux)
+ #:use-module (gnu packages perl)
 #:use-module (gnu packages pkg-config)
 #:use-module (gnu packages pulseaudio)
 #:use-module (gnu packages python)
+ #:use-module (gnu packages sdl)
 #:use-module (gnu packages textutils))
 (define-public espeak
@@ -119,6 +121,43 @@  It is based on the eSpeak engine and supports spectral and Klatt formant