aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authormi <mi@FreeBSD.org>2013-09-06 23:24:58 +0800
committermi <mi@FreeBSD.org>2013-09-06 23:24:58 +0800
commit9a44683b48937c20f2de22fdabf4e6a20b15b468 (patch)
tree204b3fe9344451188403d7d81e8e0ae266b4398b /audio
parentb6941b2c6d74effd85f5c7affc6459dc40c869ae (diff)
downloadfreebsd-ports-gnome-9a44683b48937c20f2de22fdabf4e6a20b15b468.tar.gz
freebsd-ports-gnome-9a44683b48937c20f2de22fdabf4e6a20b15b468.tar.zst
freebsd-ports-gnome-9a44683b48937c20f2de22fdabf4e6a20b15b468.zip
Update from 1.96 to 2.1. Despite being newer, the upstream release
remains uncompileable by modern compilers and substantial patches -- obtained from both Debian and NetBSD ports of the same software were necessary. Among the patches is a functionality-improving one, which allows the new version to continue using voices created for 1.9x Tested by: bapt
Diffstat (limited to 'audio')
-rw-r--r--audio/festival/Makefile51
-rw-r--r--audio/festival/distinfo56
-rw-r--r--audio/festival/files/patch-debian-bug-66737793
-rw-r--r--audio/festival/files/patch-intptr_t364
-rw-r--r--audio/festival/files/patch-long-over-float23
-rw-r--r--audio/festival/files/patch-tests22
-rw-r--r--audio/festival/files/patch-voxware49
-rw-r--r--audio/festival/pkg-plist2
8 files changed, 261 insertions, 399 deletions
diff --git a/audio/festival/Makefile b/audio/festival/Makefile
index 9ad62e0e99ba..78853a37d7a0 100644
--- a/audio/festival/Makefile
+++ b/audio/festival/Makefile
@@ -2,23 +2,36 @@
# $FreeBSD$
PORTNAME= festival
-PORTVERSION= 1.96
-PORTREVISION= 3
+PORTVERSION= 2.1
CATEGORIES= audio accessibility
MASTER_SITES= ${MASTER_SITE_FESTIVAL}
MASTER_SITE_SUBDIR= ${PORTVERSION}
-DISTFILES= ${DISTNAME}-beta.tar.gz \
- speech_tools-1.2.${PORTVERSION:E}-beta.tar.gz
+DISTFILES= ${DISTNAME}-release.tar.gz \
+ speech_tools-${PORTVERSION}-release.tar.gz
+
+PATCHFILES= src_modules_diphone_diphone.h.diff:debian \
+ src_modules_diphone_di_io.cc.diff:debian \
+ src_modules_diphone_diphone.cc.diff:debian \
+ src_modules_donovan_t2s.h.diff:debian \
+ src_modules_UniSyn_diphone_UniSyn_diphone.cc.diff:debian \
+ festival_el_utf8.diff:debian \
+ lintianspellpatch.diff:debian \
+ hts21compat.diff:debian \
+ languagespatch.diff:debian \
+ ${SPT_PATCHES:C/.*/patch-speech__tools_\0:netbsd/}
+PATCH_SITES= ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/audio/festival/patches/:netbsd \
+ http://patch-tracker.debian.org/patch/series/dl/festival/1:2.1~release-5.1/:debian
MAINTAINER= mi@aldan.algebra.com
COMMENT= Multi-lingual speech synthesis system
OPTIONS_DEFINE= NAS ESD
-OPTIONS_DEFAULT= NAS ESD
+OPTIONS_DEFAULT=NAS ESD
ESD_DESC= ${ESOUND_DESC}
DIST_SUBDIR= festival
-
+
+CXXFLAGS+= -DFTLIBDIR=${LOCALBASE}/share/festival/lib
CONFIGURE_WRKSRC= ${WRKDIR}/festival
USES= gmake
SPEECHTOOLS= ${WRKSRC}/speech_tools
@@ -31,6 +44,20 @@ MAKE_ENV+= GCC="${CC}" \
MAN1= festival.1 festival_client.1
WRKSRC= ${WRKDIR}
+SPT_PATCHES= base__class_EST__TVector.cc \
+ base__class_inst__tmpl_vector__dmatrix__t.cc \
+ base__class_inst__tmpl_vector__dvector__t.cc \
+ base__class_inst__tmpl_vector__fmatrix__t.cc \
+ config_compilers_gcc__defaults.mak \
+ include_EST__Ngrammar.h \
+ include_EST__SCFG.h \
+ include_EST__String.h \
+ include_EST__error.h \
+ include_ling__class_EST__FeatureFunctionPackage.h \
+ include_unix_EST__socket__unix.h \
+ stats_dynamic__program.cc \
+ utils_EST__ServiceTable.cc
+
do-build:
.for d in speech_tools festival
${SETENV} ${MAKE_ENV} ${GMAKE} -C ${WRKDIR}/$d ${MAKE_FLAGS} Makefile \
@@ -38,10 +65,16 @@ do-build:
.endfor
# Can not make test in `festival', because the voices may not be installed
-# XXX: this should fail, if the verdict is not "Test OK"...
+# XXX: this should fail, if the verdict is not "CORRECT"...
post-build test:
${SETENV} ${MAKE_ENV} ${GMAKE} -C ${WRKDIR}/speech_tools test
+# The below is needed, because Debian's patches expect a different
+# directory-name
+pre-patch:
+ ${LN} -s festival ${WRKSRC}/festival-2.1~release
+ ${LN} -s festival ${WRKSRC}/b
+
post-patch::
${REINPLACE_CMD} -e 's,/usr/X11R6,${LOCALBASE},g' \
${WRKSRC}/*/config/systems/default.mak
@@ -71,11 +104,11 @@ do-configure:
fi
# This step helps non-i386 systems and is harmless on i386
-${LN} -s ix86_FreeBSD.mak ${WRKDIR}/$d/config/systems/${ARCH}_unknown.mak
+.endfor
${REINPLACE_CMD} -E -e 's,^(CC|CXX) *=,\1 ?=,' \
- -e 's,^(CFLAGS|CXXFLAGS) *=,\1 +=,' \
+ -e 's,^(CFLAGS|CXXFLAGS) *=,\1 +=,' \
-e 's,^OPTIMI,#OPTIMI,' \
${WRKSRC}/speech_tools/config/compilers/gcc*.mak
-.endfor
# This step helps to use a compiler, the vendor has not seen before:
${TEST} -e ${WRKDIR}/speech_tools/config/compilers/${CC}.mak || \
${LN} -s gcc_defaults.mak ${WRKDIR}/speech_tools/config/compilers/${CC}.mak
diff --git a/audio/festival/distinfo b/audio/festival/distinfo
index fe6948863bbf..fe38487a8ecb 100644
--- a/audio/festival/distinfo
+++ b/audio/festival/distinfo
@@ -1,4 +1,52 @@
-SHA256 (festival/festival-1.96-beta.tar.gz) = 4fa48d3525957762c83f289fba361063b8855f57ff50b7db22754d844aeadbee
-SIZE (festival/festival-1.96-beta.tar.gz) = 731682
-SHA256 (festival/speech_tools-1.2.96-beta.tar.gz) = fa1ce5698e1253ee21e67629f394733ef6ad578af671e3a90ea8b73898a12428
-SIZE (festival/speech_tools-1.2.96-beta.tar.gz) = 1275015
+SHA256 (festival/festival-2.1-release.tar.gz) = 06f3dcbad9d26e27443fc66947a0faf0c6679482220df4b5f42a261adf758080
+SIZE (festival/festival-2.1-release.tar.gz) = 787313
+SHA256 (festival/speech_tools-2.1-release.tar.gz) = ff6167cd929a88e2f91b47191c6c4dae87c9c06ba39fccc4465af9d79e9b2be9
+SIZE (festival/speech_tools-2.1-release.tar.gz) = 1681999
+SHA256 (festival/src_modules_diphone_diphone.h.diff) = 148ecd31aef84d5823470d339b3104b73af099404ab957fcee838520f8808104
+SIZE (festival/src_modules_diphone_diphone.h.diff) = 870
+SHA256 (festival/src_modules_diphone_di_io.cc.diff) = 0dfbe69e30ce8fbe695d30fed42a10c79bc6525dd4e971432a669c88bec4e048
+SIZE (festival/src_modules_diphone_di_io.cc.diff) = 3819
+SHA256 (festival/src_modules_diphone_diphone.cc.diff) = e92e8dc256fd624a7ac3aef7e1403ad4cabc6c23207a53648bfc8a6c5f78c6aa
+SIZE (festival/src_modules_diphone_diphone.cc.diff) = 1075
+SHA256 (festival/src_modules_donovan_t2s.h.diff) = 164b9c0b5441177c85e44b111bb5b52e1efef59ee6d8a1b92396e84e01d94e19
+SIZE (festival/src_modules_donovan_t2s.h.diff) = 566
+SHA256 (festival/src_modules_UniSyn_diphone_UniSyn_diphone.cc.diff) = 4137be0f227e0ebabfd8ee6ca9100909709266a713eca511eb06e818d7b64b17
+SIZE (festival/src_modules_UniSyn_diphone_UniSyn_diphone.cc.diff) = 892
+SHA256 (festival/festival_el_utf8.diff) = c56f79e475682e25c6ed72639c253d48ce32535956a949e8a3ba75b7f2f71aa9
+SIZE (festival/festival_el_utf8.diff) = 1945
+SHA256 (festival/lintianspellpatch.diff) = b7f0d104e3154f8aa746a50013a8b77dd3855d5f812062c6424d7ee78eafcb50
+SIZE (festival/lintianspellpatch.diff) = 1284
+SHA256 (festival/hts21compat.diff) = d86434a9e01d2a62defd9230f102f074959ddf5d57e27d0b0abc9714f1717f82
+SIZE (festival/hts21compat.diff) = 125719
+SHA256 (festival/languagespatch.diff) = 3108f08656d31623ee5393eb542d0085819a056641c1853c2ffc2b07e2e9e15a
+SIZE (festival/languagespatch.diff) = 36538
+SHA256 (festival/patch-speech__tools_base__class_EST__TVector.cc) = d791a9feb1e2be33fb8d367a8add65678b3f0e45cee145e8381d0f18eb2d9b0f
+SIZE (festival/patch-speech__tools_base__class_EST__TVector.cc) = 454
+SHA256 (festival/patch-speech__tools_base__class_inst__tmpl_vector__dmatrix__t.cc) = 19b6c8f14c3b8944dc2404b92c74c5e0b2403f35b96a152f18b9492d9b24e4ee
+SIZE (festival/patch-speech__tools_base__class_inst__tmpl_vector__dmatrix__t.cc) = 1086
+SHA256 (festival/patch-speech__tools_base__class_inst__tmpl_vector__dvector__t.cc) = 713c9938950e2190c503e9619e0142db49bdf6378b60de3611c4390ba7cdb5cb
+SIZE (festival/patch-speech__tools_base__class_inst__tmpl_vector__dvector__t.cc) = 1086
+SHA256 (festival/patch-speech__tools_base__class_inst__tmpl_vector__fmatrix__t.cc) = aa16df118317354d368a5389c18a157723df10f09af319e278eb63d4ab73ee31
+SIZE (festival/patch-speech__tools_base__class_inst__tmpl_vector__fmatrix__t.cc) = 1085
+SHA256 (festival/patch-speech__tools_config_compilers_gcc__defaults.mak) = ac6e1db2a4e7c99929d4713d70b86014ecbe71d1c5f4f67e91503887a225f718
+SIZE (festival/patch-speech__tools_config_compilers_gcc__defaults.mak) = 803
+SHA256 (festival/patch-speech__tools_include_EST__Ngrammar.h) = 156d42e187693d6e76d28c280155bc6dfd6de6d8a5225d4aa87a2e767d0cee96
+SIZE (festival/patch-speech__tools_include_EST__Ngrammar.h) = 2519
+SHA256 (festival/patch-speech__tools_include_EST__SCFG.h) = e6ec64c01faad49f0efb2e40d7b332e0b7a8e92830337eb1f3843780e6c9c3e6
+SIZE (festival/patch-speech__tools_include_EST__SCFG.h) = 519
+SHA256 (festival/patch-speech__tools_include_EST__String.h) = ce8b3513bf218fd369716101fb0b3defc8ddb4d8a57e28df2c0e80f95fe52e74
+SIZE (festival/patch-speech__tools_include_EST__String.h) = 1068
+SHA256 (festival/patch-speech__tools_include_EST__TIterator.h) = c44d8125a04447a63e8458cee910cd7fe4aa84d31d4c06139b76ae168c66bcf7
+SIZE (festival/patch-speech__tools_include_EST__TIterator.h) = 730
+SHA256 (festival/patch-speech__tools_include_EST__TNamedEnum.h) = c825a92c81ecdda555963319c400a026aa797c694897e2a6a232ea94660d6557
+SIZE (festival/patch-speech__tools_include_EST__TNamedEnum.h) = 608
+SHA256 (festival/patch-speech__tools_include_EST__error.h) = ad43dcfa0fb0222d3cfc86cc2a316badbe1f2e27b663a91139ee3ccc3fd325e5
+SIZE (festival/patch-speech__tools_include_EST__error.h) = 1210
+SHA256 (festival/patch-speech__tools_include_ling__class_EST__FeatureFunctionPackage.h) = 2249d192d1c16697e0971263a1c1c1d8dbfecfe080c077abe49765e703775157
+SIZE (festival/patch-speech__tools_include_ling__class_EST__FeatureFunctionPackage.h) = 514
+SHA256 (festival/patch-speech__tools_include_unix_EST__socket__unix.h) = ad217f952ddd714c2b6b9e5924bfaf9e3b0429ba46d1db117ca1c4918aed9741
+SIZE (festival/patch-speech__tools_include_unix_EST__socket__unix.h) = 534
+SHA256 (festival/patch-speech__tools_stats_dynamic__program.cc) = 0c3fbe07a256be395e28d08e367e80b53d56885825ff29a232793c8e03915141
+SIZE (festival/patch-speech__tools_stats_dynamic__program.cc) = 1106
+SHA256 (festival/patch-speech__tools_utils_EST__ServiceTable.cc) = 5edb267faa21adf31b5503cf5db4e55d4ad2c3eaecf1550d7df1ef8cb94c448c
+SIZE (festival/patch-speech__tools_utils_EST__ServiceTable.cc) = 649
diff --git a/audio/festival/files/patch-debian-bug-667377 b/audio/festival/files/patch-debian-bug-667377
new file mode 100644
index 000000000000..34af7d87e313
--- /dev/null
+++ b/audio/festival/files/patch-debian-bug-667377
@@ -0,0 +1,93 @@
+Obtained from:
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667377
+
+--- speech_tools/config/compilers/gcc_defaults.mak 2013-05-27 13:02:52.000000000 -0400
++++ speech_tools/config/compilers/gcc_defaults.mak 2013-05-27 13:06:51.000000000 -0400
+@@ -82,5 +82,5 @@
+
+ ifndef GCC_MAKE_SHARED_LIB
+- MAKE_SHARED_LIB = $(CXX) -shared -fno-shared-data -o XXX
++ MAKE_SHARED_LIB = $(CXX) -shared -o XXX -Wl,-soname -Wl,YYY
+ else
+ MAKE_SHARED_LIB = $(GCC_MAKE_SHARED_LIB)
+--- speech_tools/base_class/EST_TSimpleMatrix.cc
++++ speech_tools/base_class/EST_TSimpleMatrix.cc
+@@ -44,6 +44,7 @@
+ #include "EST_TVector.h"
+ #include <fstream>
+ #include <iostream>
++#include <cstring>
+ #include "EST_cutils.h"
+
+ template<class T>
+@@ -98,7 +99,7 @@ void EST_TSimpleMatrix<T>::resize(int ne
+ {
+ int copy_r = Lof(this->num_rows(), new_rows);
+
+- just_resize(new_rows, new_cols, &old_vals);
++ this->just_resize(new_rows, new_cols, &old_vals);
+
+ for (q=0; q<(copy_r*new_cols*sizeof(T)); q++) /* memcpy */
+ ((char *)this->p_memory)[q] = ((char *)old_vals)[q];
+@@ -127,9 +128,9 @@ void EST_TSimpleMatrix<T>::resize(int ne
+ int copy_r = Lof(this->num_rows(), new_rows);
+ int copy_c = Lof(this->num_columns(), new_cols);
+
+- just_resize(new_rows, new_cols, &old_vals);
++ this->just_resize(new_rows, new_cols, &old_vals);
+
+- set_values(old_vals,
++ this->set_values(old_vals,
+ old_row_step, old_column_step,
+ 0, copy_r,
+ 0, copy_c);
+--- speech_tools/base_class/EST_TSimpleVector.cc
++++ speech_tools/base_class/EST_TSimpleVector.cc
+@@ -43,6 +43,7 @@
+ #include "EST_TSimpleVector.h"
+ #include "EST_matrix_support.h"
+ #include <fstream>
++#include <cstring>
+ #include "EST_cutils.h"
+
+ template<class T> void EST_TSimpleVector<T>::copy(const EST_TSimpleVector<T> &a)
+@@ -70,7 +71,7 @@ template<class T> void EST_TSimpleVector
+ int old_offset = this->p_offset;
+ unsigned int q;
+
+- just_resize(newn, &old_vals);
++ this->just_resize(newn, &old_vals);
+
+ if (set && old_vals)
+ {
+--- speech_tools/include/EST_TIterator.h
++++ speech_tools/include/EST_TIterator.h
+@@ -209,7 +209,7 @@ public:
+
+ /// Create an iterator ready to run over the given container.
+ EST_TStructIterator(const Container &over)
+- { begin(over); }
++ { this->begin(over); }
+
+ const Entry *operator ->() const
+ {return &this->current();}
+@@ -289,7 +289,7 @@ public:
+
+ /// Create an iterator ready to run over the given container.
+ EST_TRwStructIterator(Container &over)
+- { begin(over); }
++ { this->begin(over); }
+
+ Entry *operator ->() const
+ {return &this->current();}
+--- speech_tools/include/EST_TNamedEnum.h
++++ speech_tools/include/EST_TNamedEnum.h
+@@ -130,7 +130,7 @@ public:
+ {this->initialise((const void *)defs); };
+ EST_TNamedEnumI(EST_TValuedEnumDefinition<const char *,const char *,INFO> defs[], ENUM (*conv)(const char *))
+ {this->initialise((const void *)defs, conv); };
+- const char *name(ENUM tok, int n=0) const {return value(tok,n); };
++ const char *name(ENUM tok, int n=0) const {return this->value(tok,n); };
+
+ };
+
diff --git a/audio/festival/files/patch-intptr_t b/audio/festival/files/patch-intptr_t
deleted file mode 100644
index 11935d07587b..000000000000
--- a/audio/festival/files/patch-intptr_t
+++ /dev/null
@@ -1,364 +0,0 @@
-This is from Gentoo's port (gcc41-amd64-int-pointer.patch), except
-we use intptr_t instead of long so as not to pessimize the i386
-case, where long is wider than pointer.
-
- -mi
-
---- speech_tools/include/EST_simplestats.h 2006/07/21 02:18:39 1.1
-+++ speech_tools/include/EST_simplestats.h 2006/07/21 02:35:43
-@@ -194,7 +194,7 @@ enum EST_tprob_type {tprob_string, tprob
- for example
- \begin{verbatim}
- EST_DiscreteProbistribution pdf;
-- for (int i=pdf.item_start(); i < pdf.item_end(); i=pdf.item_next(i))
-+ for (intptr_t i=pdf.item_start(); i < pdf.item_end(); i=pdf.item_next(i))
- {
- EST_String name;
- double prob;
-@@ -265,17 +265,17 @@ public:
- ///
- double frequency(const int i) const;
- /// Used for iterating through members of the distribution
-- int item_start() const;
-+ intptr_t item_start() const;
- /// Used for iterating through members of the distribution
-- int item_next(int idx) const;
-+ intptr_t item_next(intptr_t idx) const;
- /// Used for iterating through members of the distribution
-- int item_end(int idx) const;
-+ int item_end(intptr_t idx) const;
- /// During iteration returns name given index
-- const EST_String &item_name(int idx) const;
-+ const EST_String &item_name(intptr_t idx) const;
- /// During iteration returns name and frequency given index
-- void item_freq(int idx,EST_String &s,double &freq) const;
-+ void item_freq(intptr_t idx,EST_String &s,double &freq) const;
- /// During iteration returns name and probability given index
-- void item_prob(int idx,EST_String &s,double &prob) const;
-+ void item_prob(intptr_t idx,EST_String &s,double &prob) const;
-
- /// Returns discrete vocabulary of distribution
- inline const EST_Discrete *const get_discrete() const { return discrete; };
---- speech_tools/stats/wagon/wagon_aux.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/stats/wagon/wagon_aux.cc 2006/07/21 02:36:09
-@@ -537,7 +537,7 @@ ostream & operator <<(ostream &s, WImpur
- }
- else if (imp.t == wnim_class)
- {
-- int i;
-+ intptr_t i;
- EST_String name;
- double prob;
-
---- speech_tools/stats/EST_DProbDist.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/stats/EST_DProbDist.cc 2006/07/21 02:41:32
-@@ -305,15 +305,15 @@ double EST_DiscreteProbDistribution::ent
- }
-
- // For iterating through members of a probability distribution
--int EST_DiscreteProbDistribution::item_start(void) const
-+intptr_t EST_DiscreteProbDistribution::item_start(void) const
- {
- if (type == tprob_discrete)
- return 0;
- else
-- return (int)scounts.list.head();
-+ return (intptr_t)scounts.list.head();
- }
-
--int EST_DiscreteProbDistribution::item_end(int idx) const
-+int EST_DiscreteProbDistribution::item_end(intptr_t idx) const
- {
- if (type == tprob_discrete)
- return (idx >= icounts.length());
-@@ -321,15 +321,15 @@ int EST_DiscreteProbDistribution::item_e
- return ((EST_Litem *)idx == 0);
- }
-
--int EST_DiscreteProbDistribution::item_next(int idx) const
-+intptr_t EST_DiscreteProbDistribution::item_next(intptr_t idx) const
- {
- if (type == tprob_discrete)
- return ++idx;
- else
-- return (int)next((EST_Litem *)idx);
-+ return (intptr_t)next((EST_Litem *)idx);
- }
-
--const EST_String &EST_DiscreteProbDistribution::item_name(int idx) const
-+const EST_String &EST_DiscreteProbDistribution::item_name(intptr_t idx) const
- {
- if (type == tprob_discrete)
- return discrete->name(idx);
-@@ -337,7 +337,7 @@ const EST_String &EST_DiscreteProbDistri
- return scounts.list((EST_Litem *)idx).k;
- }
-
--void EST_DiscreteProbDistribution::item_freq(int idx,EST_String &s,double &freq) const
-+void EST_DiscreteProbDistribution::item_freq(intptr_t idx,EST_String &s,double &freq) const
- {
- if (type == tprob_discrete)
- {
-@@ -351,7 +351,7 @@ void EST_DiscreteProbDistribution::item_
- }
- }
-
--void EST_DiscreteProbDistribution::item_prob(int idx,EST_String &s,double &prob) const
-+void EST_DiscreteProbDistribution::item_prob(intptr_t idx,EST_String &s,double &prob) const
- {
- if (type == tprob_discrete)
- {
-@@ -368,7 +368,7 @@ void EST_DiscreteProbDistribution::item_
- ostream & operator<<(ostream &s, const EST_DiscreteProbDistribution &pd)
- {
- // Output best with probabilities
-- int i;
-+ intptr_t i;
- double prob;
- double sum=0;
- EST_String name;
---- speech_tools/grammar/ngram/EST_Ngrammar.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/grammar/ngram/EST_Ngrammar.cc 2006/07/21 02:38:54
-@@ -180,7 +180,7 @@ bool EST_BackoffNgrammarState::accumulat
- const double count)
- {
-
--// int i;
-+// intptr_t i;
- // cerr << "accumulate level " << p_level << " : ";
- // for(i=0;i<words.n();i++)
- // {
-@@ -302,7 +302,7 @@ void EST_BackoffNgrammarState::print_fre
- // not right - just print out, then recurse through children
- // change to use 'backoff_traverse'
-
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
- for (k=p_pdf.item_start();
-@@ -369,7 +369,7 @@ void EST_BackoffNgrammarState::zap()
- {
-
- // recursively delete this state and all its children
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
- for (k=p_pdf.item_start();
-@@ -452,7 +452,7 @@ bool EST_BackoffNgrammarState::set_backo
-
- void EST_BackoffNgrammarState::frequency_of_frequencies(EST_DVector &ff)
- {
-- int k,max=ff.n();
-+ intptr_t k; int max=ff.n();
- double freq;
- EST_String name;
- for (k=p_pdf.item_start();
-@@ -911,7 +911,7 @@ void EST_Ngrammar::accumulate(const EST_
- {
-
- /*
-- int i;
-+ intptr_t i;
- for(i=0;i<words.n();i++)
- {
- cerr << vocab_pdf.item_name(words(i));
-@@ -1581,7 +1581,7 @@ void EST_Ngrammar::prune_backoff_represe
- // remove any branches with zero frequency count
-
- // find children of this state with zero freq and zap them
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
- for (k=start_state->pdf_const().item_start();
-@@ -2320,7 +2320,7 @@ void EST_Ngrammar::print_freqs(ostream &
- backoff_representation->print_freqs(os,p_order);
- else
- {
-- int i,j,k;
-+ int i,j; intptr_t k;
- EST_IVector window(p_order-1);
-
- for (i=0; i < p_num_states; i++)
-@@ -2661,7 +2661,7 @@ EST_Ngrammar::backoff_traverse(EST_Backo
- function(start_state,params);
-
- // and recurse down the tree
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
- for (k=start_state->pdf_const().item_start();
-@@ -2692,7 +2692,7 @@ EST_Ngrammar::backoff_traverse(EST_Backo
- {
- // and recurse down the tree if we haven't
- // reached the level yet
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
-
---- speech_tools/grammar/ngram/ngrammar_io.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/grammar/ngram/ngrammar_io.cc 2006/07/21 02:39:05
-@@ -281,7 +281,7 @@ EST_read_status
- load_ngram_cstr_bin(const EST_String filename, EST_Ngrammar &n)
- {
- EST_TokenStream ts;
-- int i,j,k,order;
-+ int i,j,order; intptr_t k;
- int num_entries;
- double approx_num_samples = 0.0;
- intptr_t freq_data_start, freq_data_end;
-@@ -407,7 +407,7 @@ EST_write_status
- save_ngram_htk_ascii_sub(const EST_String &word, ostream *ost,
- EST_Ngrammar &n, double floor)
- {
-- int k;
-+ intptr_t k;
- EST_String name;
- double freq;
- EST_StrVector this_ngram(2); // assumes bigram
-@@ -734,7 +734,7 @@ save_ngram_cstr_ascii(const EST_String f
- // awb's format
- (void)trace;
- ostream *ost;
-- int i,k;
-+ int i; intptr_t k;
-
- if (filename == "-")
- ost = &cout;
-@@ -831,7 +831,7 @@ save_ngram_cstr_bin(const EST_String fil
- if (n.representation() == EST_Ngrammar::sparse)
- return misc_write_error;
-
-- int i,k;
-+ int i; intptr_t k;
- FILE *ofd;
- double lfreq = -1;
- double count = -1;
---- speech_tools/grammar/ngram/ngrammar_aux.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/grammar/ngram/ngrammar_aux.cc 2006/07/21 02:39:20
-@@ -117,7 +117,7 @@ smooth_ExponentialFit(EST_DVector &N, in
-
- void make_f_of_f(EST_BackoffNgrammarState *s,void *params)
- {
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
-
-@@ -138,7 +138,7 @@ void make_f_of_f(EST_BackoffNgrammarStat
-
- void get_max_f(EST_BackoffNgrammarState *s,void *params)
- {
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
-
-@@ -158,7 +158,7 @@ void get_max_f(EST_BackoffNgrammarState
-
- void map_f_of_f(EST_BackoffNgrammarState *s,void *params)
- {
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
-
-@@ -184,7 +184,7 @@ void map_f_of_f(EST_BackoffNgrammarState
-
- void zero_small_f(EST_BackoffNgrammarState *s,void *params)
- {
-- int k;
-+ intptr_t k;
- double freq;
- EST_String name;
-
-@@ -204,7 +204,7 @@ void zero_small_f(EST_BackoffNgrammarSta
-
- void frequency_of_frequencies(EST_DVector &ff, EST_Ngrammar &n,int this_order)
- {
-- int i,k,size;
-+ int i,size; intptr_t k;
- double max=0.0;
-
- // if ff has zero size, do complete frequency of frequencies
-@@ -302,7 +302,7 @@ void frequency_of_frequencies(EST_DVecto
-
- void map_frequencies(EST_Ngrammar &n, const EST_DVector &map, const int this_order)
- {
-- int i,k;
-+ int i; intptr_t k;
-
-
- switch(n.representation())
---- speech_tools/grammar/ngram/EST_PST.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/grammar/ngram/EST_PST.cc 2006/07/21 02:39:31
-@@ -71,7 +71,7 @@ EST_PredictionSuffixTree_tree_node::prin
- // Base -- print from pd
- EST_String s;
- double freq;
-- for (int i = pd.item_start();
-+ for (intptr_t i = pd.item_start();
- !pd.item_end(i);
- i=pd.item_next(i))
- {
-@@ -98,7 +98,7 @@ EST_PredictionSuffixTree_tree_node::prin
- EST_String s;
- double prob;
- os << get_path() << " :";
-- for (int i = pd.item_start(); !pd.item_end(i) ; i=pd.item_next(i))
-+ for (intptr_t i = pd.item_start(); !pd.item_end(i) ; i=pd.item_next(i))
- {
- pd.item_prob(i,s,prob);
- os << " " << s << " " << prob;
---- speech_tools/grammar/ngram/freqsmooth.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/grammar/ngram/freqsmooth.cc 2006/07/21 02:46:42
-@@ -74,7 +74,7 @@ void fs_build_backoff_ngrams(EST_Ngramma
- EST_Ngrammar &ngram)
- {
- // Build all the backoff grammars back to uni-grams
-- int i,j,k,l;
-+ int i,j,l; intptr_t k;
-
- for (i=0; i < ngram.order()-1; i++)
- backoff_ngrams[i].init(i+1,EST_Ngrammar::dense,
-@@ -110,7 +110,7 @@ int fs_backoff_smooth(EST_Ngrammar *back
- {
- // For all ngrams which are too infrequent, adjust their
- // frequencies based on their backoff probabilities
-- int i,j;
-+ int i; intptr_t j;
- double occurs;
- double backoff_prob;
-
---- speech_tools/grammar/wfst/wfst_train.cc 2006/07/21 02:18:39 1.1
-+++ speech_tools/grammar/wfst/wfst_train.cc 2006/07/21 02:39:47
-@@ -299,7 +299,7 @@ static LISP find_best_split(EST_WFST &wf
- LISP *ssplits;
- gc_protect(&splits);
- EST_String sname;
-- int b,best_b,i;
-+ int b,best_b; intptr_t i;
- int num_pdfs;
- double best_score, score, sfreq;
-
-@@ -374,7 +374,7 @@ static double score_pdf_combine(EST_Disc
- // Find score of (a+b) vs (all-(a+b))
- EST_DiscreteProbDistribution ab(a);
- EST_DiscreteProbDistribution all_but_ab(all);
-- int i;
-+ intptr_t i;
- EST_String sname;
- double sfreq, score;
- for (i=b.item_start(); !b.item_end(i);
-@@ -506,7 +506,7 @@ static double find_score_if_split(EST_WF
- EST_DiscreteProbDistribution pdf_split(&wfst.in_symbols());
- EST_DiscreteProbDistribution pdf_remain(&wfst.in_symbols());
- int in, tostate, id;
-- int i;
-+ intptr_t i;
- double sfreq;
- EST_String sname;
diff --git a/audio/festival/files/patch-long-over-float b/audio/festival/files/patch-long-over-float
new file mode 100644
index 000000000000..e41f33d092a8
--- /dev/null
+++ b/audio/festival/files/patch-long-over-float
@@ -0,0 +1,23 @@
+Part of Debian's patch at:
+ http://patch-tracker.debian.org/patch/series/view/festival/1:2.1~release-5.1/src_modules_MultiSyn_path_fixes.diff
+
+--- festival/src/modules/MultiSyn/TargetCostRescoring.cc 2011-02-16 10:35:34.000000000 -0600
++++ festival/src/modules/MultiSyn/TargetCostRescoring.cc 2011-02-16 10:43:23.000000000 -0600
+@@ -82,7 +82,7 @@
+ //cerr << scores << endl;
+
+ // calculate simple mean duration of some or all of candidates
+- float meandur = 0.0;
++ long meandur = 0.0;
+ int n = 0;
+
+ if( beam_width < 0 ){ // just average all of them
+@@ -107,7 +107,7 @@
+
+ // then tweak the scores based on that
+ for( EST_Litem *li = scores.head(); li != 0; li = li->next() ){
+- float cand_dur = scores(li)._dur;
++ long cand_dur = scores(li)._dur;
+ // cerr << scores(li)._cand->score << " ";
+ scores(li)._cand->score += (mult * abs( cand_dur - meandur ) );
+ // cerr << scores(li)._cand->score << endl;
diff --git a/audio/festival/files/patch-tests b/audio/festival/files/patch-tests
deleted file mode 100644
index 02c17205ea2a..000000000000
--- a/audio/festival/files/patch-tests
+++ /dev/null
@@ -1,22 +0,0 @@
-Tracking the structure's size does not seem meaningful... The size is
-different on different architectures. Disable the tracking so that the
-rest of the test can be used.
-
- -mi
-
---- speech_tools/testsuite/matrix_regression.cc Fri Apr 30 12:56:51 2004
-+++ speech_tools/testsuite/matrix_regression.cc Mon Mar 26 04:07:25 2007
-@@ -55,7 +55,4 @@
- EST_TMatrix<int> m(5,5);
-
-- cout << "EST_TVector<int> size = " << sizeof(EST_TVector<int>) << " bytes.\n";
-- cout << "EST_TMatrix<int> size = " << sizeof(EST_TMatrix<int>) << " bytes.\n";
--
- for(int i=0; i<m.num_rows(); i++)
- for(int j=0; j<m.num_columns(); j++)
---- speech_tools/testsuite/correct/matrix_regression.out Wed Apr 4 07:55:32 2001
-+++ speech_tools/testsuite/correct/matrix_regression.out Mon Mar 26 04:07:56 2007
-@@ -1,3 +1 @@
--EST_TVector<int> size = 20 bytes.
--EST_TMatrix<int> size = 28 bytes.
- Initial Matrix
diff --git a/audio/festival/files/patch-voxware b/audio/festival/files/patch-voxware
new file mode 100644
index 000000000000..70e4523e2629
--- /dev/null
+++ b/audio/festival/files/patch-voxware
@@ -0,0 +1,49 @@
+--- speech_tools/config/modules/freebsd16_audio.mak 2001-04-04 09:11:27.000000000 -0400
++++ speech_tools/config/modules/freebsd16_audio.mak 2013-05-27 13:29:03.000000000 -0400
+@@ -43,5 +43,5 @@
+ MOD_DESC_FREEBSD16_AUDIO=Native audio module for FreeBSD systems
+
+-AUDIO_DEFINES += -DSUPPORT_FREEBSD16
++AUDIO_DEFINES += -DSUPPORT_FREEBSD16 -DSUPPORT_VOXWARE
+
+ #ifdef INCLUDE_JAVA_CPP
+--- speech_tools/audio/linux_sound.cc 2009-04-29 13:06:36.000000000 -0400
++++ speech_tools/audio/linux_sound.cc 2013-05-27 13:31:00.000000000 -0400
+@@ -66,7 +66,13 @@
+ int freebsd16_supported = TRUE;
+ int linux16_supported = FALSE;
+-static char *aud_sys_name = "FreeBSD";
++static const char *aud_sys_name = "FreeBSD";
+ #endif /*SUPPORT_FREEBSD16 */
+
++#ifdef SUPPORT_LINUX16
++int linux16_supported = TRUE;
++int freebsd16_supported = FALSE;
++static const char *aud_sys_name = "Linux";
++#endif
++
+ #ifdef SUPPORT_VOXWARE
+
+@@ -76,7 +82,5 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+-int linux16_supported = TRUE;
+-int freebsd16_supported = FALSE;
+-static char *aud_sys_name = "Linux";
++
+ static int stereo_only = 0;
+
+@@ -152,5 +156,5 @@
+ int audio,actual_fmt;
+ int i,r,n;
+- char *audiodevice;
++ const char *audiodevice;
+
+ if (al.present("-audiodevice"))
+@@ -279,5 +283,5 @@
+ int audio=-1,actual_fmt;
+ int i,r,n;
+- char *audiodevice;
++ const char *audiodevice;
+
+ if (al.present("-audiodevice"))
diff --git a/audio/festival/pkg-plist b/audio/festival/pkg-plist
index 00d5c69b8c0e..8a821f2d9edd 100644
--- a/audio/festival/pkg-plist
+++ b/audio/festival/pkg-plist
@@ -25,6 +25,8 @@ libexec/festival_client.naked
%%DATADIR%%/examples/intro.text
%%DATADIR%%/examples/latest
%%DATADIR%%/examples/latest.sh
+%%DATADIR%%/examples/run-festival-script
+%%DATADIR%%/examples/run-festival-script.sh
%%DATADIR%%/examples/make_utts
%%DATADIR%%/examples/make_utts.sh
%%DATADIR%%/examples/powmeanstd