summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2017-04-08 11:57:13 +0200
committerPacho Ramos <pacho@gentoo.org>2017-04-08 12:28:02 +0200
commit8f477fede7c52d36ebea9917b216dc97dc1f27f5 (patch)
tree58ecc1f6bf08352f7cbeeeaf63f368abd72958c2 /app-accessibility
parentapp-admin/sysstat: Old. (diff)
downloadgentoo-8f477fede7c52d36ebea9917b216dc97dc1f27f5.tar.gz
gentoo-8f477fede7c52d36ebea9917b216dc97dc1f27f5.tar.bz2
gentoo-8f477fede7c52d36ebea9917b216dc97dc1f27f5.zip
app-accessibility/espeak: Fix gcc6 support (#593936 by Peter Levine), port to eapi6.
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'app-accessibility')
-rw-r--r--app-accessibility/espeak/espeak-1.48.04-r1.ebuild100
-rw-r--r--app-accessibility/espeak/files/espeak-1.48.04-gcc-6-fix.patch13
2 files changed, 113 insertions, 0 deletions
diff --git a/app-accessibility/espeak/espeak-1.48.04-r1.ebuild b/app-accessibility/espeak/espeak-1.48.04-r1.ebuild
new file mode 100644
index 000000000000..2559bb14743d
--- /dev/null
+++ b/app-accessibility/espeak/espeak-1.48.04-r1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs
+
+MY_P="${P}-source"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.zip"
+DESCRIPTION="Speech synthesizer for English and other languages"
+HOMEPAGE="http://espeak.sourceforge.net/"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="portaudio pulseaudio"
+
+COMMON_DEPEND="portaudio? ( >=media-libs/portaudio-19_pre20071207 )
+ pulseaudio? ( media-sound/pulseaudio )"
+
+DEPEND="${COMMON_DEPEND}
+ app-arch/unzip"
+
+RDEPEND="${COMMON_DEPEND}
+ media-sound/sox"
+
+PATCHES=( "${FILESDIR}"/${P}-gcc-6-fix.patch )
+
+S="${WORKDIR}/${MY_P}/src"
+
+get_audio() {
+ if use portaudio && use pulseaudio; then
+ echo runtime
+ elif use portaudio; then
+ echo portaudio
+ elif use pulseaudio; then
+ echo pulseaudio
+ else
+ echo none
+ fi
+}
+
+src_prepare() {
+ default
+ # gentoo uses portaudio 19.
+ mv -f portaudio19.h portaudio.h
+}
+
+src_compile() {
+ emake \
+ PREFIX="${EPREFIX}/usr" \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ CXX="$(tc-getCXX)" \
+ CXXFLAGS="${CXXFLAGS}" \
+ AR="$(tc-getAR)" \
+ AUDIO="$(get_audio)" \
+ all
+
+ einfo "Fixing byte order of phoneme data files"
+ pushd ../platforms/big_endian > /dev/null
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}"
+ ./espeak-phoneme-data \
+ ../../espeak-data \
+ . \
+ ../../espeak-data/phondata-manifest
+ cp -f phondata phonindex phontab "../../espeak-data"
+}
+
+src_install() {
+ emake \
+ PREFIX="${EPREFIX}/usr" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ DESTDIR="${D}" \
+ AUDIO="$(get_audio)" \
+ install
+
+ cd ..
+ insinto /usr/share/espeak-data
+ doins -r dictsource
+ dodoc ChangeLog.txt ReadMe
+ HTML_DOCS="docs/*" einstalldocs
+}
+
+pkg_preinst() {
+ local voicedir="${ROOT}/usr/share/${PN}-data/voices/en"
+ if [ -d "${voicedir}" ]; then
+ rm -rf "${voicedir}"
+ fi
+}
+
+pkg_postinst() {
+ if ! use portaudio && ! use pulseaudio; then
+ ewarn "Since portaudio and pulseaudio are not in your use flags,"
+ ewarn "espeak will only be able to create wav files."
+ ewarn "If this is not what you want, please reemerge ${CATEGORY}/${PN}"
+ ewarn "with either portaudio or pulseaudio USE flag enabled."
+ fi
+}
diff --git a/app-accessibility/espeak/files/espeak-1.48.04-gcc-6-fix.patch b/app-accessibility/espeak/files/espeak-1.48.04-gcc-6-fix.patch
new file mode 100644
index 000000000000..f28de7338b37
--- /dev/null
+++ b/app-accessibility/espeak/files/espeak-1.48.04-gcc-6-fix.patch
@@ -0,0 +1,13 @@
+https://src.fedoraproject.org/cgit/rpms/espeak.git/tree/espeak-1.48-gcc-6-fix.patch
+diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp
+--- a/tr_languages.cpp
++++ b/tr_languages.cpp
+@@ -198,7 +198,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = {
+ 0x200d, 1, // zero width joiner
+ 0, 0 };
+
+-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
++const char string_ordinal[] = {'\xc2','\xba',0}; // masculine ordinal character, UTF-8
+
+
+ static Translator* NewTranslator(void)