diff mbox

[v5] espeak: new package

Message ID 1381770929-13754-1-git-send-email-arnaud.aujon@gmail.com
State Superseded
Headers show

Commit Message

Arnaud Aujon Oct. 14, 2013, 5:15 p.m. UTC
Signed-off-by: Arnaud Aujon <arnaud.aujon@gmail.com>
---
Changes v4 -> v5:
	- remove useless comment line
Changes v3 -> v4:
	- remove extre new lines
	- remove useless help
	- remove -source from ESPEAK_VERSION
	- update extract command to remove -source
---
 package/Config.in                                  |  1 +
 package/espeak/Config.in                           | 41 ++++++++++++++++++++
 .../espeak-1-do-not-compil-when-install.patch      | 15 ++++++++
 package/espeak/espeak.mk                           | 44 ++++++++++++++++++++++
 4 files changed, 101 insertions(+)
 create mode 100644 package/espeak/Config.in
 create mode 100644 package/espeak/espeak-1-do-not-compil-when-install.patch
 create mode 100644 package/espeak/espeak.mk

Comments

Ryan Barnett Oct. 14, 2013, 5:19 p.m. UTC | #1
Arnaud Aujon <arnaud.aujon@gmail.com> wrote on 10/14/2013 12:15:29 PM:

> Signed-off-by: Arnaud Aujon <arnaud.aujon@gmail.com>

Acked-by: Ryan Barnett <rjbarnet@rockwellcollins.com>

> ---
> Changes v4 -> v5:
>    - remove useless comment line
> Changes v3 -> v4:
>    - remove extre new lines
>    - remove useless help
>    - remove -source from ESPEAK_VERSION
>    - update extract command to remove -source
> ---
>  package/Config.in                                  |  1 +
>  package/espeak/Config.in                           | 41 
++++++++++++++++++++
>  .../espeak-1-do-not-compil-when-install.patch      | 15 ++++++++
>  package/espeak/espeak.mk                           | 44 
++++++++++++++++++++++
>  4 files changed, 101 insertions(+)
>  create mode 100644 package/espeak/Config.in
>  create mode 100644 
package/espeak/espeak-1-do-not-compil-when-install.patch
>  create mode 100644 package/espeak/espeak.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 41d828a..31f6274 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -6,6 +6,7 @@ menu "Audio and video applications"
>  source "package/alsa-utils/Config.in"
>  source "package/aumix/Config.in"
>  source "package/bellagio/Config.in"
> +source "package/espeak/Config.in"
>  source "package/faad2/Config.in"
>  source "package/ffmpeg/Config.in"
>  source "package/flac/Config.in"
> diff --git a/package/espeak/Config.in b/package/espeak/Config.in
> new file mode 100644
> index 0000000..926c5f0
> --- /dev/null
> +++ b/package/espeak/Config.in
> @@ -0,0 +1,41 @@
> +comment "eSpeak requires a toolchain with C++ and WCHAR support"
> +   depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
> +
> +config BR2_PACKAGE_ESPEAK
> +   bool "eSpeak"
> +   depends on BR2_INSTALL_LIBSTDCPP
> +   depends on BR2_USE_WCHAR
> +   help
> +     eSpeak is a speech synthesizer software for English and other 
languages.
> +
> +     http://espeak.sourceforge.net/
> +
> +if BR2_PACKAGE_ESPEAK
> +choice
> +   prompt "choose audio backend"
> +   default BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> +
> +   config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> +      bool "No sound backend, only produce wav files"
> +
> +   comment "ALSA backend requires a toolchain with threads support"
> +   depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +   config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
> +      bool "ALSA via Portaudio"
> +      select BR2_PACKAGE_PORTAUDIO
> +      select BR2_PACKAGE_PORTAUDIO_CXX
> +      depends on BR2_TOOLCHAIN_HAS_THREADS #portaudio
> +
> +   comment "Pulseaudio backend requires a toolchain with WCHAR, 
LARGEFILE and threads support"
> +   depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && 
BR2_LARGEFILE)
> +
> +   config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
> +      bool "pulseaudio"
> +      select BR2_PACKAGE_PULSEAUDIO
> +      depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
> +      depends on BR2_USE_WCHAR # pulseaudio
> +      depends on BR2_LARGEFILE # pulseaudio
> +
> +endchoice
> +endif #BR2_PACKAGE_ESPEAK
> diff --git a/package/espeak/espeak-1-do-not-compil-when-install.patch 
b/package/espeak/espeak-1-do-not-compil-when-install.patch
> new file mode 100644
> index 0000000..983cd1c
> --- /dev/null
> +++ b/package/espeak/espeak-1-do-not-compil-when-install.patch
> @@ -0,0 +1,15 @@
> +Makefile: do not execute the rule "all" when executing "install"
> +
> +signed-off-by: Arnaud Aujon <arnaud.aujon@gmail.com>
> +===================================================================
> +--- espeak-1.47.11-source.orig/src/Makefile
> ++++ espeak-1.47.11-source/src/Makefile
> +@@ -131,7 +131,7 @@
> +    rm -f $(BIN2_NAME)
> +    rm -f $(LIB_NAME)*
> + 
> +-install: all
> ++install:
> +    # Create directories
> +    rm -rf $(DESTDIR)$(DATADIR)
> +    $(MKDIR) $(DESTDIR)$(BINDIR)
> diff --git a/package/espeak/espeak.mk b/package/espeak/espeak.mk
> new file mode 100644
> index 0000000..3914850
> --- /dev/null
> +++ b/package/espeak/espeak.mk
> @@ -0,0 +1,44 @@
> 
+###############################################################################
> +#
> +# espeak
> +#
> 
+###############################################################################
> +
> +ESPEAK_VERSION = 1.47.11
> +ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
> +ESPEAK_SITE = 
http://downloads.sourceforge.net/project/espeak/espeak/espeak-1.47
> +ESPEAK_LICENSE = GPLv3
> +ESPEAK_LICENSE_FILES = Licence.txt
> +
> +ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA),y)
> +ESPEAK_AUDIO_BACKEND = portaudio
> +ESPEAK_DEPENDENCIES = portaudio
> +endif
> +ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO),y)
> +ESPEAK_AUDIO_BACKEND = pulseaudio
> +ESPEAK_DEPENDENCIES = pulseaudio
> +endif
> +
> +define ESPEAK_EXTRACT_CMDS
> +   unzip -d $(@D) $(DL_DIR)/$(ESPEAK_SOURCE)
> +   mv $(@D)/espeak-$(ESPEAK_VERSION)-source/* $(@D)
> +   $(RM) -r $(@D)/espeak-$(ESPEAK_VERSION)-source
> +endef
> +
> +define ESPEAK_CONFIGURE_CMDS
> +   # Buildroot provides portaudio V19, see ReadMe file for more 
details.
> +   cp $(@D)/src/portaudio19.h $(@D)/src/portaudio.h
> +endef
> +
> +define ESPEAK_BUILD_CMDS
> +   $(MAKE) $(TARGET_CONFIGURE_OPTS)\
> +      AUDIO="$(ESPEAK_AUDIO_BACKEND)"\
> +      -C $(@D)/src all
> +endef
> +
> +define ESPEAK_INSTALL_TARGET_CMDS
> +   $(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
> +endef
> +
> +$(eval $(generic-package))
> -- 
> 1.8.3.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni Oct. 14, 2013, 5:40 p.m. UTC | #2
Dear Arnaud Aujon,

> +if BR2_PACKAGE_ESPEAK
> +choice
> +	prompt "choose audio backend"
> +	default BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> +
> +	config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> +		bool "No sound backend, only produce wav files"
> +
> +	comment "ALSA backend requires a toolchain with threads support"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +	config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
> +		bool "ALSA via Portaudio"
> +		select BR2_PACKAGE_PORTAUDIO
> +		select BR2_PACKAGE_PORTAUDIO_CXX
> +		depends on BR2_TOOLCHAIN_HAS_THREADS #portaudio
> +
> +	comment "Pulseaudio backend requires a toolchain with WCHAR, LARGEFILE and threads support"
> +	depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && BR2_LARGEFILE)
> +
> +	config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
> +		bool "pulseaudio"
> +		select BR2_PACKAGE_PULSEAUDIO
> +		depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
> +		depends on BR2_USE_WCHAR # pulseaudio
> +		depends on BR2_LARGEFILE # pulseaudio

Throughout the Buildroot tree, I don't think we have the habit of
indenting things inside a choice, so I would remove one tab from this
entire block. However, the "depends on" for the comments should be
intended.

> +
> +endchoice
> +endif #BR2_PACKAGE_ESPEAK

Nit pick: one space between # and BR2_...

> diff --git a/package/espeak/espeak-1-do-not-compil-when-install.patch b/package/espeak/espeak-1-do-not-compil-when-install.patch

Even we have agreed on the number of digits we should use, I believe 1
digit is really too short. We don't even notice it's the patch number.
So if you could replace that by espeak-01-....patch it would be great.

> +ESPEAK_VERSION = 1.47.11
> +ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
> +ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-1.47
> +ESPEAK_LICENSE = GPLv3

License is actually GPLv3+, as the source code states:

 *   This program 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.                                   *


> +define ESPEAK_BUILD_CMDS
> +	$(MAKE) $(TARGET_CONFIGURE_OPTS)\
> +		AUDIO="$(ESPEAK_AUDIO_BACKEND)"\

One space before backslashes.

> +		-C $(@D)/src all
> +endef
> +
> +define ESPEAK_INSTALL_TARGET_CMDS
> +	$(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
> +endef

Other than that, looks good to me. Thanks a lot for the quick
turnaround of new versions!

Thomas
Arnaud Aujon Oct. 14, 2013, 5:49 p.m. UTC | #3
Thomas,

I will send a new patch shortly.
About the licence, the file Licence.txt say GPLv3 but you're right in the
source code we can find GPLv3+, what do you do in this case ?


2013/10/14 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

> Dear Arnaud Aujon,
>
> > +if BR2_PACKAGE_ESPEAK
> > +choice
> > +     prompt "choose audio backend"
> > +     default BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> > +
> > +     config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
> > +             bool "No sound backend, only produce wav files"
> > +
> > +     comment "ALSA backend requires a toolchain with threads support"
> > +     depends on !BR2_TOOLCHAIN_HAS_THREADS
> > +
> > +     config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
> > +             bool "ALSA via Portaudio"
> > +             select BR2_PACKAGE_PORTAUDIO
> > +             select BR2_PACKAGE_PORTAUDIO_CXX
> > +             depends on BR2_TOOLCHAIN_HAS_THREADS #portaudio
> > +
> > +     comment "Pulseaudio backend requires a toolchain with WCHAR,
> LARGEFILE and threads support"
> > +     depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR &&
> BR2_LARGEFILE)
> > +
> > +     config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
> > +             bool "pulseaudio"
> > +             select BR2_PACKAGE_PULSEAUDIO
> > +             depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
> > +             depends on BR2_USE_WCHAR # pulseaudio
> > +             depends on BR2_LARGEFILE # pulseaudio
>
> Throughout the Buildroot tree, I don't think we have the habit of
> indenting things inside a choice, so I would remove one tab from this
> entire block. However, the "depends on" for the comments should be
> intended.
>
> > +
> > +endchoice
> > +endif #BR2_PACKAGE_ESPEAK
>
> Nit pick: one space between # and BR2_...
>
> > diff --git a/package/espeak/espeak-1-do-not-compil-when-install.patch
> b/package/espeak/espeak-1-do-not-compil-when-install.patch
>
> Even we have agreed on the number of digits we should use, I believe 1
> digit is really too short. We don't even notice it's the patch number.
> So if you could replace that by espeak-01-....patch it would be great.
>
> > +ESPEAK_VERSION = 1.47.11
> > +ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
> > +ESPEAK_SITE =
> http://downloads.sourceforge.net/project/espeak/espeak/espeak-1.47
> > +ESPEAK_LICENSE = GPLv3
>
> License is actually GPLv3+, as the source code states:
>
>  *   This program 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.
> *
>
>
> > +define ESPEAK_BUILD_CMDS
> > +     $(MAKE) $(TARGET_CONFIGURE_OPTS)\
> > +             AUDIO="$(ESPEAK_AUDIO_BACKEND)"\
>
> One space before backslashes.
>
> > +             -C $(@D)/src all
> > +endef
> > +
> > +define ESPEAK_INSTALL_TARGET_CMDS
> > +     $(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
> > +endef
>
> Other than that, looks good to me. Thanks a lot for the quick
> turnaround of new versions!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
Thomas Petazzoni Oct. 14, 2013, 5:58 p.m. UTC | #4
Dear arnaud aujon,

On Mon, 14 Oct 2013 19:49:09 +0200, arnaud aujon wrote:

> I will send a new patch shortly.
> About the licence, the file Licence.txt say GPLv3 but you're right in the
> source code we can find GPLv3+, what do you do in this case ?

It's very often the case: the COPYING or License file provides the
license text for a given version of the GPL license, and the code
itself precises whether it's only this version, or this version or
later. And since the FSF recommends using the "or later" wording, many
projects do this.

In this case, the <pkg>_LICENSE should really be GPLv3+, because that's
what the source code says.

Thomas
Arnaud Aujon Oct. 14, 2013, 6:07 p.m. UTC | #5
2013/10/14 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

> Dear arnaud aujon,
>
> On Mon, 14 Oct 2013 19:49:09 +0200, arnaud aujon wrote:
>
> > I will send a new patch shortly.
> > About the licence, the file Licence.txt say GPLv3 but you're right in the
> > source code we can find GPLv3+, what do you do in this case ?
>
> It's very often the case: the COPYING or License file provides the
> license text for a given version of the GPL license, and the code
> itself precises whether it's only this version, or this version or
> later. And since the FSF recommends using the "or later" wording, many
> projects do this.
>
> In this case, the <pkg>_LICENSE should really be GPLv3+, because that's
> what the source code says.
>
>
Thanks for your explanation.
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 41d828a..31f6274 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -6,6 +6,7 @@  menu "Audio and video applications"
 source "package/alsa-utils/Config.in"
 source "package/aumix/Config.in"
 source "package/bellagio/Config.in"
+source "package/espeak/Config.in"
 source "package/faad2/Config.in"
 source "package/ffmpeg/Config.in"
 source "package/flac/Config.in"
diff --git a/package/espeak/Config.in b/package/espeak/Config.in
new file mode 100644
index 0000000..926c5f0
--- /dev/null
+++ b/package/espeak/Config.in
@@ -0,0 +1,41 @@ 
+comment "eSpeak requires a toolchain with C++ and WCHAR support"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
+
+config BR2_PACKAGE_ESPEAK
+	bool "eSpeak"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_WCHAR
+	help
+	  eSpeak is a speech synthesizer software for English and other languages.
+
+	  http://espeak.sourceforge.net/
+
+if BR2_PACKAGE_ESPEAK
+choice
+	prompt "choose audio backend"
+	default BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
+
+	config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_NONE
+		bool "No sound backend, only produce wav files"
+
+	comment "ALSA backend requires a toolchain with threads support"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+	config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
+		bool "ALSA via Portaudio"
+		select BR2_PACKAGE_PORTAUDIO
+		select BR2_PACKAGE_PORTAUDIO_CXX
+		depends on BR2_TOOLCHAIN_HAS_THREADS #portaudio
+
+	comment "Pulseaudio backend requires a toolchain with WCHAR, LARGEFILE and threads support"
+	depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR && BR2_LARGEFILE)
+
+	config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
+		bool "pulseaudio"
+		select BR2_PACKAGE_PULSEAUDIO
+		depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
+		depends on BR2_USE_WCHAR # pulseaudio
+		depends on BR2_LARGEFILE # pulseaudio
+
+endchoice
+endif #BR2_PACKAGE_ESPEAK
diff --git a/package/espeak/espeak-1-do-not-compil-when-install.patch b/package/espeak/espeak-1-do-not-compil-when-install.patch
new file mode 100644
index 0000000..983cd1c
--- /dev/null
+++ b/package/espeak/espeak-1-do-not-compil-when-install.patch
@@ -0,0 +1,15 @@ 
+Makefile: do not execute the rule "all" when executing "install"
+
+signed-off-by: Arnaud Aujon <arnaud.aujon@gmail.com>
+===================================================================
+--- espeak-1.47.11-source.orig/src/Makefile
++++ espeak-1.47.11-source/src/Makefile
+@@ -131,7 +131,7 @@
+ 	rm -f $(BIN2_NAME)
+ 	rm -f $(LIB_NAME)*
+ 
+-install: all
++install:
+ 	# Create directories
+ 	rm -rf $(DESTDIR)$(DATADIR)
+ 	$(MKDIR) $(DESTDIR)$(BINDIR)
diff --git a/package/espeak/espeak.mk b/package/espeak/espeak.mk
new file mode 100644
index 0000000..3914850
--- /dev/null
+++ b/package/espeak/espeak.mk
@@ -0,0 +1,44 @@ 
+###############################################################################
+#
+# espeak
+#
+###############################################################################
+
+ESPEAK_VERSION = 1.47.11
+ESPEAK_SOURCE = espeak-$(ESPEAK_VERSION)-source.zip
+ESPEAK_SITE = http://downloads.sourceforge.net/project/espeak/espeak/espeak-1.47
+ESPEAK_LICENSE = GPLv3
+ESPEAK_LICENSE_FILES = Licence.txt
+
+ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA),y)
+ESPEAK_AUDIO_BACKEND = portaudio
+ESPEAK_DEPENDENCIES = portaudio
+endif
+ifeq ($(BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO),y)
+ESPEAK_AUDIO_BACKEND = pulseaudio
+ESPEAK_DEPENDENCIES = pulseaudio
+endif
+
+define ESPEAK_EXTRACT_CMDS
+	unzip -d $(@D) $(DL_DIR)/$(ESPEAK_SOURCE)
+	mv $(@D)/espeak-$(ESPEAK_VERSION)-source/* $(@D)
+	$(RM) -r $(@D)/espeak-$(ESPEAK_VERSION)-source
+endef
+
+define ESPEAK_CONFIGURE_CMDS
+	# Buildroot provides portaudio V19, see ReadMe file for more details.
+	cp $(@D)/src/portaudio19.h $(@D)/src/portaudio.h
+endef
+
+define ESPEAK_BUILD_CMDS
+	$(MAKE) $(TARGET_CONFIGURE_OPTS)\
+		AUDIO="$(ESPEAK_AUDIO_BACKEND)"\
+		-C $(@D)/src all
+endef
+
+define ESPEAK_INSTALL_TARGET_CMDS
+	$(MAKE) install DESTDIR="$(TARGET_DIR)" -C $(@D)/src
+endef
+
+$(eval $(generic-package))
-- 
1.8.3.1