From 2fbb5d0fc65be48ed75de264ccc099997aa1f86c Mon Sep 17 00:00:00 2001 From: CentOS Buildsys Date: Mar 21 2013 15:08:57 +0000 Subject: import flite-1.3-19.el7.src.rpm --- diff --git a/.flite.metadata b/.flite.metadata new file mode 100644 index 0000000..85de91d --- /dev/null +++ b/.flite.metadata @@ -0,0 +1 @@ +233144a772de72741ae1aa2292f672c30224afb3 SOURCES/flite-1.3-release.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/README-ALSA.txt b/SOURCES/README-ALSA.txt new file mode 100644 index 0000000..6ceef9a --- /dev/null +++ b/SOURCES/README-ALSA.txt @@ -0,0 +1,4 @@ + +Native ALSA support for Flite 1.3 - patch created by +Lukas Loehrer + diff --git a/SOURCES/flite-1.3-alsa_support.patch b/SOURCES/flite-1.3-alsa_support.patch new file mode 100644 index 0000000..9d3415e --- /dev/null +++ b/SOURCES/flite-1.3-alsa_support.patch @@ -0,0 +1,333 @@ +diff -uNr flite-1.3-release/configure.in flite-1.3-release-mod/configure.in +--- flite-1.3-release/configure.in 2005-08-13 13:43:21.000000000 +0200 ++++ flite-1.3-release-mod/configure.in 2006-11-13 21:16:27.000000000 +0200 +@@ -206,10 +206,10 @@ + AC_CHECK_HEADER(sys/audioio.h, + [AUDIODRIVER="sun" + AUDIODEFS=-DCST_AUDIO_SUNOS]) +-dnl AC_CHECK_HEADER(sys/asoundlib.h, +-dnl [AUDIODRIVER="alsa" +-dnl AUDIODEFS=-DCST_AUDIO_ALSA +-dnl AUDIOLIBS=-lasound]) ++AC_CHECK_HEADER(alsa/asoundlib.h, ++ [AUDIODRIVER="alsa" ++ AUDIODEFS=-DCST_AUDIO_ALSA ++ AUDIOLIBS=-lasound]) + AC_CHECK_HEADER(mmsystem.h, + [AUDIODRIVER="wince" + AUDIODEFS=-DCST_AUDIO_WINCE +diff -uNr flite-1.3-release/src/audio/au_alsa.c flite-1.3-release-mod/src/audio/au_alsa.c +--- flite-1.3-release/src/audio/au_alsa.c 1970-01-01 02:00:00.000000000 +0200 ++++ flite-1.3-release-mod/src/audio/au_alsa.c 2006-11-13 21:16:54.000000000 +0200 +@@ -0,0 +1,311 @@ ++/*************************************************************************/ ++/* */ ++/* Language Technologies Institute */ ++/* Carnegie Mellon University */ ++/* Copyright (c) 2000 */ ++/* All Rights Reserved. */ ++/* */ ++/* Permission is hereby granted, free of charge, to use and distribute */ ++/* this software and its documentation without restriction, including */ ++/* without limitation the rights to use, copy, modify, merge, publish, */ ++/* distribute, sublicense, and/or sell copies of this work, and to */ ++/* permit persons to whom this work is furnished to do so, subject to */ ++/* the following conditions: */ ++/* 1. The code must retain the above copyright notice, this list of */ ++/* conditions and the following disclaimer. */ ++/* 2. Any modifications must be clearly marked as such. */ ++/* 3. Original authors' names are not deleted. */ ++/* 4. The authors' names are not used to endorse or promote products */ ++/* derived from this software without specific prior written */ ++/* permission. */ ++/* */ ++/* CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK */ ++/* DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING */ ++/* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT */ ++/* SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE */ ++/* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES */ ++/* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN */ ++/* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ ++/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF */ ++/* THIS SOFTWARE. */ ++/* */ ++/*********************************************************************** */ ++/* Author: Lukas Loehrer ( */ ++/* Date: January 2005 */ ++/*************************************************************************/ ++/* */ ++/* Native access to alsa audio devices on Linux */ ++/* Tested with libasound version 1.0.10 */ ++/*************************************************************************/ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "cst_string.h" ++#include "cst_wave.h" ++#include "cst_audio.h" ++ ++#include ++ ++ ++/*static char *pcm_dev_name = "hw:0,0"; */ ++static char *pcm_dev_name ="default"; ++ ++static inline void print_pcm_state(snd_pcm_t *handle, char *msg) ++{ ++ fprintf(stderr, "PCM state at %s = %s\n", msg, ++ snd_pcm_state_name(snd_pcm_state(handle))); ++} ++ ++cst_audiodev *audio_open_alsa(int sps, int channels, cst_audiofmt fmt) ++{ ++ cst_audiodev *ad; ++ unsigned int real_rate; ++ int err; ++ ++ /* alsa specific stuff */ ++ snd_pcm_t *pcm_handle; ++ snd_pcm_stream_t stream = SND_PCM_STREAM_PLAYBACK; ++ snd_pcm_hw_params_t *hwparams; ++ snd_pcm_format_t format; ++ snd_pcm_access_t access = SND_PCM_ACCESS_RW_INTERLEAVED; ++ ++ /* Allocate the snd_pcm_hw_params_t structure on the stack. */ ++ snd_pcm_hw_params_alloca(&hwparams); ++ ++ /* Open pcm device */ ++ err = snd_pcm_open(&pcm_handle, pcm_dev_name, stream, 0); ++ if (err < 0) ++ { ++ cst_errmsg("audio_open_alsa: failed to open audio device %s. %s\n", ++ pcm_dev_name, snd_strerror(err)); ++ return NULL; ++ } ++ ++ /* Init hwparams with full configuration space */ ++ err = snd_pcm_hw_params_any(pcm_handle, hwparams); ++ if (err < 0) ++ { ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to get hardware parameters from audio device. %s\n", snd_strerror(err)); ++ return NULL; ++ } ++ ++ /* Set access mode */ ++ err = snd_pcm_hw_params_set_access(pcm_handle, hwparams, access); ++ if (err < 0) ++ { ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to set access mode. %s.\n", snd_strerror(err)); ++ return NULL; ++ } ++ ++ /* Determine matching alsa sample format */ ++ /* This could be implemented in a more */ ++ /* flexible way (byte order conversion). */ ++ switch (fmt) ++ { ++ case CST_AUDIO_LINEAR16: ++ if (CST_LITTLE_ENDIAN) ++ format = SND_PCM_FORMAT_S16_LE; ++ else ++ format = SND_PCM_FORMAT_S16_BE; ++ break; ++ case CST_AUDIO_LINEAR8: ++ format = SND_PCM_FORMAT_U8; ++ break; ++ case CST_AUDIO_MULAW: ++ format = SND_PCM_FORMAT_MU_LAW; ++ break; ++ default: ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to find suitable format.\n"); ++ return NULL; ++ break; ++ } ++ ++ /* Set samble format */ ++ err = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format); ++ if (err <0) ++ { ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to set format. %s.\n", snd_strerror(err)); ++ return NULL; ++ } ++ ++ /* Set sample rate near the disired rate */ ++ real_rate = sps; ++ err = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &real_rate, 0); ++ if (err < 0) ++ { ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to set sample rate near %d. %s.\n", sps, snd_strerror(err)); ++ return NULL; ++ } ++ /*FIXME: This is probably too strict */ ++ assert(sps == real_rate); ++ ++ /* Set number of channels */ ++ assert(channels >0); ++ err = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, channels); ++ if (err < 0) ++ { ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to set number of channels to %d. %s.\n", channels, snd_strerror(err)); ++ return NULL; ++ } ++ ++ /* Commit hardware parameters */ ++ err = snd_pcm_hw_params(pcm_handle, hwparams); ++ if (err < 0) ++ { ++ snd_pcm_close(pcm_handle); ++ cst_errmsg("audio_open_alsa: failed to set hw parameters. %s.\n", snd_strerror(err)); ++ return NULL; ++ } ++ ++ /* Make sure the device is ready to accept data */ ++ assert(snd_pcm_state(pcm_handle) == SND_PCM_STATE_PREPARED); ++ ++ /* Write hardware parameters to flite audio device data structure */ ++ ad = cst_alloc(cst_audiodev, 1); ++ assert(ad != NULL); ++ ad->real_sps = ad->sps = sps; ++ ad->real_channels = ad->channels = channels; ++ ad->real_fmt = ad->fmt = fmt; ++ ad->platform_data = (void *) pcm_handle; ++ ++ return ad; ++} ++ ++int audio_close_alsa(cst_audiodev *ad) ++{ ++ int result; ++ snd_pcm_t *pcm_handle; ++ ++ if (ad == NULL) ++ return 0; ++ ++ pcm_handle = (snd_pcm_t *) ad->platform_data; ++ result = snd_pcm_close(pcm_handle); ++ if (result < 0) ++ { ++ cst_errmsg("audio_close_alsa: Error: %s.\n", snd_strerror(result)); ++ } ++ cst_free(ad); ++ return result; ++} ++ ++/* Returns zero if recovery was successful. */ ++static int recover_from_error(snd_pcm_t *pcm_handle, ssize_t res) ++{ ++ if (res == -EPIPE) /* xrun */ ++ { ++ res = snd_pcm_prepare(pcm_handle); ++ if (res < 0) ++ { ++ /* Failed to recover from xrun */ ++ cst_errmsg("recover_from_write_error: failed to recover from xrun. %s\n.", snd_strerror(res)); ++ return res; ++ } ++ } ++ else if (res == -ESTRPIPE) /* Suspend */ ++ { ++ while ((res = snd_pcm_resume(pcm_handle)) == -EAGAIN) ++ { ++ snd_pcm_wait(pcm_handle, 1000); ++ } ++ if (res < 0) ++ { ++ res = snd_pcm_prepare(pcm_handle); ++ if (res <0) ++ { ++ /* Resume failed */ ++ cst_errmsg("audio_recover_from_write_error: failed to resume after suspend. %s\n.", snd_strerror(res)); ++ return res; ++ } ++ } ++ } ++ else if (res < 0) ++ { ++ /* Unknown failure */ ++ cst_errmsg("audio_recover_from_write_error: %s.\n", snd_strerror(res)); ++ return res; ++ } ++ return 0; ++} ++ ++int audio_write_alsa(cst_audiodev *ad, void *samples, int num_bytes) ++{ ++ size_t frame_size; ++ ssize_t num_frames, res; ++ snd_pcm_t *pcm_handle; ++ char *buf = (char *) samples; ++ ++ /* Determine frame size in bytes */ ++ frame_size = audio_bps(ad->real_fmt) * ad->real_channels; ++ /* Require that only complete frames are handed in */ ++ assert((num_bytes % frame_size) == 0); ++ num_frames = num_bytes / frame_size; ++ pcm_handle = (snd_pcm_t *) ad->platform_data; ++ ++ while (num_frames > 0) ++ { ++ res = snd_pcm_writei(pcm_handle, buf, num_frames); ++ if (res != num_frames) ++ { ++ if (res == -EAGAIN || (res > 0 && res < num_frames)) ++ { ++ snd_pcm_wait(pcm_handle, 100); ++ } ++ else if (recover_from_error(pcm_handle, res) < 0) ++ { ++ return -1; ++ } ++ } ++ ++ if (res >0) ++ { ++ num_frames -= res; ++ buf += res * frame_size; ++ } ++ } ++ return num_bytes; ++} ++ ++int audio_flush_alsa(cst_audiodev *ad) ++{ ++ int result; ++ result = snd_pcm_drain((snd_pcm_t *) ad->platform_data); ++ if (result < 0) ++ { ++ cst_errmsg("audio_flush_alsa: Error: %s.\n", snd_strerror(result)); ++ } ++ /* Prepare device for more data */ ++ result = snd_pcm_prepare((snd_pcm_t *) ad->platform_data); ++if (result < 0) ++ { ++ cst_errmsg("audio_flush_alsa: Error: %s.\n", snd_strerror(result)); ++ } ++ return result; ++} ++ ++int audio_drain_alsa(cst_audiodev *ad) ++{ ++ int result; ++ result = snd_pcm_drop((snd_pcm_t *) ad->platform_data); ++ if (result < 0) ++ { ++ cst_errmsg("audio_drain_alsa: Error: %s.\n", snd_strerror(result)); ++ } ++/* Prepare device for more data */ ++ result = snd_pcm_prepare((snd_pcm_t *) ad->platform_data); ++if (result < 0) ++ { ++ cst_errmsg("audio_drain_alsa: Error: %s.\n", snd_strerror(result)); ++ } ++ return result; ++} diff --git a/SOURCES/flite-1.3-doc_texinfo.patch b/SOURCES/flite-1.3-doc_texinfo.patch new file mode 100644 index 0000000..4ce9a5c --- /dev/null +++ b/SOURCES/flite-1.3-doc_texinfo.patch @@ -0,0 +1,30 @@ +diff -uNr flite-1.3-release/doc/flite.texi flite-1.3-mod/doc/flite.texi +--- flite-1.3-release/doc/flite.texi 2005-08-14 21:50:02.000000000 +0200 ++++ flite-1.3-mod/doc/flite.texi 2006-05-08 12:39:54.000000000 +0200 +@@ -711,14 +711,14 @@ + cst_voice *register_cmu_us_kal(); + + int main(int argc, char **argv) +-{ ++@{ + cst_voice *v; + + if (argc != 2) +- { ++ @{ + fprintf(stderr,"usage: flite_test FILE\n"); + exit(-1); +- } ++ @} + + flite_init(); + +@@ -726,7 +726,7 @@ + + flite_file_to_speech(argv[1],v,"play"); + +-} ++@} + @end example + Assuming the shell variable FLITEDIR is set to the flite directory + the following will compile the system (with appropriate changes for diff --git a/SOURCES/flite-1.3-implicit_dso_linking.patch b/SOURCES/flite-1.3-implicit_dso_linking.patch new file mode 100644 index 0000000..74eae0d --- /dev/null +++ b/SOURCES/flite-1.3-implicit_dso_linking.patch @@ -0,0 +1,12 @@ +diff -uNr flite-1.3-release/tools/Makefile flite-1.3-release-mod/tools/Makefile +--- flite-1.3-release/tools/Makefile 2005-01-01 19:24:16.000000000 +0200 ++++ flite-1.3-release-mod/tools/Makefile 2011-03-13 23:53:12.365235072 +0200 +@@ -64,7 +64,7 @@ + $(BINDIR)/find_sts: find_sts_main.o $(FLITELIBS) $(flite_LIBS_deps) + echo $(ALL) + echo $(HOST_PLATFORM) $(TARGET_PLATFORM) +- $(CC) $(CFLAGS) -o $@ find_sts_main.o $(flite_LIBS_flags) $(LDFLAGS) ++ $(CC) $(CFLAGS) -o $@ find_sts_main.o $(flite_LIBS_flags) $(LDFLAGS) -lm + $(BINDIR)/flite_sort: flite_sort_main.o $(FLITELIBS) $(flite_LIBS_deps) + $(CC) $(CFLAGS) -o $@ flite_sort_main.o $(flite_LIBS_flags) $(LDFLAGS) + $(BINDIR)/regexcomp: regexcomp_main.o $(FLITELIBS) $(flite_LIBS_deps) diff --git a/SOURCES/flite-1.3-sharedlibs.patch b/SOURCES/flite-1.3-sharedlibs.patch new file mode 100644 index 0000000..ffab925 --- /dev/null +++ b/SOURCES/flite-1.3-sharedlibs.patch @@ -0,0 +1,170 @@ +diff -uNr flite-1.3-release/config/common_make_rules flite-1.3-release-mod/config/common_make_rules +--- flite-1.3-release/config/common_make_rules 2004-12-20 00:20:43.000000000 +0200 ++++ flite-1.3-release-mod/config/common_make_rules 2006-11-12 12:17:25.000000000 +0200 +@@ -59,27 +59,35 @@ + endif + OBJDIR=$(BUILDDIR)/obj/$(DIRNAME) + BINDIR=$(BUILDDIR)/bin ++LIBDIR=$(BUILDDIR)/lib + ifeq ($(HOST_PLATFORM),$(TARGET_PLATFORM)) + BINDIR=$(TOP)/bin ++LIBDIR=$(TOP)/lib + endif + +-LIBDIR=$(BUILDDIR)/lib + BUILDDIRS=$(OBJDIR) $(BINDIR) $(LIBDIR) + +-FLITELIBS = $(BUILDDIR)/lib/libflite.a +-LDFLAGS += -L$(BUILDDIR)/lib -lflite -lm $(AUDIOLIBS) $(OTHERLIBS) ++ifdef SHFLAGS ++FLITELIBS = $(LIBDIR)/libflite.so ++LDFLAGS += -L$(LIBDIR) -lflite $(OTHERLIBS) ++else ++FLITELIBS = $(LIBDIR)/libflite.a ++LDFLAGS += -L$(LIBDIR) -lflite -lm $(AUDIOLIBS) $(OTHERLIBS) ++endif + + FULLOBJS = $(OBJS:%=$(OBJDIR)/%) + ifdef SHFLAGS + SOOBJS = $(OBJS:.o=.os) +-FULLSHOBJS = $(SOOBJS:%=$(OBJDIR)/%) ++FULLSOOBJS = $(SOOBJS:%=$(OBJDIR)/%) + ifdef LIBNAME + ALL += $(OBJDIR)/.build_so + endif +-endif ++else + ifdef LIBNAME + ALL += $(OBJDIR)/.build_lib + endif ++endif ++ + # Only do some directories when you are not cross compiling + ifeq ($(HOST_PLATFORM),$(TARGET_PLATFORM)) + OTHER_BUILD_DIRS = $(HOST_ONLY_DIRS) +@@ -117,14 +125,14 @@ + @ touch $(OBJDIR)/.build_so + + # Used in the lib/ directory and in building new voices +-$(OBJDIR)/%.so: %.shared.a ++%.so: %.shared.a + @ echo making $@ + @ rm -rf shared_os && mkdir shared_os +- @ rm -f $@ $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} ++ @ rm -f $@ $@.${PROJECT_VERSION} $@.${PROJECT_SHLIB_VERSION} + @ (cd shared_os && ar x ../$<) +- @ (cd shared_os && $(CC) -shared -Wl,-soname,$@.${PROJECT_SHLIB_VERSION} -o ../$@.${PROJECT_VERSION} *.os) +- @ ln -s $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} +- @ ln -s $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} $(LIBDIR)/$@ ++ @ (cd shared_os && $(CC) -shared -Wl,-soname,$@.${PROJECT_SHLIB_VERSION} -o ../$@.${PROJECT_VERSION} *.os -L../ $($(@:%.so=%_LDLIBS))) ++ @ ln -s $@.${PROJECT_VERSION} $@.${PROJECT_SHLIB_VERSION} ++ @ ln -s $@.${PROJECT_SHLIB_VERSION} $@ + @ rm -rf shared_os + + $(OBJDIR)/.make_build_dirs: +diff -uNr flite-1.3-release/lib/Makefile flite-1.3-release-mod/lib/Makefile +--- flite-1.3-release/lib/Makefile 1970-01-01 02:00:00.000000000 +0200 ++++ flite-1.3-release-mod/lib/Makefile 2006-11-12 12:17:40.000000000 +0200 +@@ -0,0 +1,73 @@ ++########################################################################### ++## ## ++## Language Technologies Institute ## ++## Carnegie Mellon University ## ++## Copyright (c) 1999 ## ++## All Rights Reserved. ## ++## ## ++## Permission is hereby granted, free of charge, to use and distribute ## ++## this software and its documentation without restriction, including ## ++## without limitation the rights to use, copy, modify, merge, publish, ## ++## distribute, sublicense, and/or sell copies of this work, and to ## ++## permit persons to whom this work is furnished to do so, subject to ## ++## the following conditions: ## ++## 1. The code must retain the above copyright notice, this list of ## ++## conditions and the following disclaimer. ## ++## 2. Any modifications must be clearly marked as such. ## ++## 3. Original authors' names are not deleted. ## ++## 4. The authors' names are not used to endorse or promote products ## ++## derived from this software without specific prior written ## ++## permission. ## ++## ## ++## CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK ## ++## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ## ++## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ## ++## SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE ## ++## FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ## ++## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ## ++## AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ## ++## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ## ++## THIS SOFTWARE. ## ++## ## ++########################################################################### ++## ## ++## FLITE libraries ## ++## ## ++########################################################################### ++TOP=.. ++DIRNAME=lib ++BUILD_DIRS = ++ALL_DIRS= ++FILES = Makefile ++LIBNAMES = flite flite_cmulex flite_usenglish \ ++ flite_cmu_us_kal flite_cmu_us_kal16 flite_cmu_time_awb ++ ++STATICLIBS= $(LIBNAMES:%=lib%.a) ++SHAREDARLIBS= $(LIBNAMES:%=lib%.shared.a) ++#SHAREDLIBS = $(LIBNAMES:%=lib%.so) ++SHAREDLIBS = $(SHAREDARLIBS:%.shared.a=%.so) ++VERSIONSHAREDLIBS = $(SHAREDLIBS:%=%.${PROJECT_VERSION}) \ ++ $(SHAREDLIBS:%=%.${PROJECT_SHLIB_VERSION}) ++ALL_LIBS = $(SHAREDLIBS) $(VERSIONSHAREDLIBS) ++ ++ALL = shared_libs ++ ++LOCAL_CLEAN=*.a *.so *.so.${PROJECT_VERSION} *.so.${PROJECT_SHLIB_VERSION} ++ ++include $(TOP)/config/common_make_rules ++ ++ifdef SHFLAGS ++shared_libs: $(SHAREDLIBS) ++libflite_LDLIBS = -lm $(AUDIOLIBS) ++libflite_cmulex_LDLIBS = -lflite ++libflite_usenglish_LDLIBS = -lflite ++libflite_cmu_us_kal_LDLIBS = -lflite_cmulex -lflite_usenglish ++libflite_cmu_us_kal16_LDLIBS = -lflite_cmulex -lflite_usenglish ++libflite_cmu_time_awb_LDLIBS = -lflite -lflite_cmulex -lflite_usenglish ++else ++shared_libs: nothing ++endif ++ ++install: ++ @ tar cvf - $(ALL_LIBS) | ( cd $(INSTALLLIBDIR) && tar xf -) ++ +diff -uNr flite-1.3-release/main/Makefile flite-1.3-release-mod/main/Makefile +--- flite-1.3-release/main/Makefile 2005-08-08 00:38:42.000000000 +0200 ++++ flite-1.3-release-mod/main/Makefile 2006-11-12 11:44:46.000000000 +0200 +@@ -50,11 +50,11 @@ + + flite_LIBS = flite_$(FL_VOX) flite_$(FL_LANG) flite_$(FL_LEX) + flite_LIBS_flags = -L$(LIBDIR) $(flite_LIBS:%=-l%) +-flite_LIBS_deps = $(flite_LIBS:%=$(LIBDIR)/lib%.a) ++flite_LIBS_deps = $(flite_LIBS:%=$(LIBDIR)/lib%.so) + + flite_time_LIBS = flite_cmu_time_awb flite_$(FL_LANG) flite_$(FL_LEX) + flite_time_LIBS_flags = -L$(LIBDIR) $(flite_time_LIBS:%=-l%) +-flite_time_LIBS_deps = $(flite_time_LIBS:%=$(LIBDIR)/lib%.a) ++flite_time_LIBS_deps = $(flite_time_LIBS:%=$(LIBDIR)/lib%.so) + + include $(TOP)/config/common_make_rules + +diff -uNr flite-1.3-release/Makefile flite-1.3-release-mod/Makefile +--- flite-1.3-release/Makefile 2005-11-01 15:40:45.000000000 +0200 ++++ flite-1.3-release-mod/Makefile 2006-11-12 11:44:46.000000000 +0200 +@@ -41,7 +41,7 @@ + ########################################################################### + TOP=. + DIRNAME= +-BUILD_DIRS = include src lang doc ++BUILD_DIRS = include src lang lib doc + ALL_DIRS=config $(BUILD_DIRS) testsuite sapi palm tools main + CONFIG=configure configure.in config.sub config.guess \ + missing install-sh mkinstalldirs diff --git a/SPECS/flite.spec b/SPECS/flite.spec new file mode 100644 index 0000000..99b6672 --- /dev/null +++ b/SPECS/flite.spec @@ -0,0 +1,170 @@ +Name: flite +Version: 1.3 +Release: 19%{?dist} +Summary: Small, fast speech synthesis engine (text-to-speech) + +Group: Applications/Multimedia +License: MIT +URL: http://www.speech.cs.cmu.edu/flite/ +Source0: http://www.speech.cs.cmu.edu/flite/packed/%{name}-%{version}/%{name}-%{version}-release.tar.gz +Source1: README-ALSA.txt +Patch0: flite-1.3-sharedlibs.patch +Patch1: flite-1.3-doc_texinfo.patch +Patch2: flite-1.3-alsa_support.patch +Patch3: flite-1.3-implicit_dso_linking.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%if 0%{?el4} +# there is no texi2html for RHEL 4 +%else +BuildRequires: texi2html +%endif +BuildRequires: ed alsa-lib-devel autoconf + + +%description +Flite (festival-lite) is a small, fast run-time speech synthesis engine +developed at CMU and primarily designed for small embedded machines and/or +large servers. Flite is designed as an alternative synthesis engine to +Festival for voices built using the FestVox suite of voice building tools. + + +%package devel +Summary: Development files for flite +Group: Development/Libraries +Requires: flite = %{version}-%{release} + + +%description devel +Development files for Flite, a small, fast speech synthesis engine. + + +%prep +%setup -q -n %{name}-%{version}-release +%patch0 -p1 -b .flite-1.3-sharedlibs +%patch1 -p1 -b .flite-1.3-doc_texinfo +%patch2 -p1 -b .flite-1.3-alsa_support +%patch3 -p1 -b .flite-1.3-implicit_dso_linking +cp -p %{SOURCE1} . + + +%build +autoconf +%configure --enable-shared --with-audio=alsa +# This package fails parallel make (thus cannot be built using "_smp_flags") +make +# Build documentation +%if 0%{?el4} +# there is no texi2html for RHEL 4 +%else +cd doc +make flite.html +%endif + + +%install +rm -rf %{buildroot} +make install INSTALLBINDIR=%{buildroot}%{_bindir} INSTALLLIBDIR=%{buildroot}%{_libdir} INSTALLINCDIR=%{buildroot}%{_includedir}/flite + + +%clean +rm -rf %{buildroot} + + +%post -p /sbin/ldconfig + + +%postun -p /sbin/ldconfig + + +%files +%defattr(-,root,root,-) +%if 0%{?el4} +# there is no texi2html for RHEL 4 +%doc ACKNOWLEDGEMENTS README COPYING README-ALSA.txt +%else +%doc ACKNOWLEDGEMENTS README COPYING doc/html README-ALSA.txt +%endif +%{_libdir}/*.so.* +%{_bindir}/* + + +%files devel +%defattr(-,root,root) +%{_libdir}/*.so +%{_includedir}/flite + + +%changelog +* Wed Feb 13 2013 Fedora Release Engineering - 1.3-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 1.3-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 1.3-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Mar 13 2011 Francois Aucamp - 1.3-16 +- Added patch declaring explicit libm linking dependency (RHBZ #564899) +- Updated source and URL tags + +* Tue Feb 08 2011 Fedora Release Engineering - 1.3-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jul 24 2009 Fedora Release Engineering - 1.3-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sat Mar 21 2009 Robert Scheck - 1.3-13 +- Removed moving of non-existing documentation flite directory + +* Tue Feb 24 2009 Fedora Release Engineering - 1.3-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Oct 11 2008 Peter Lemenkov - 1.3-11 +- Fix for RHEL 4 + +* Fri Jul 18 2008 Tom "spot" Callaway - 1.3-10 +- fix license tag + +* Mon Feb 18 2008 Fedora Release Engineering - 1.3-9 +- Autorebuild for GCC 4.3 + +* Tue Nov 14 2006 Francois Aucamp - 1.3-8 +- Added comment to %%build stating why "_smp_flags" isn't used with make + +* Mon Nov 13 2006 Francois Aucamp - 1.3-7 +- Modified alsa support patch file to patch "configure.in" instead of "configure" +- Added "autoconf" step to %%build +- Added BuildRequires: autoconf +- Fixed patch backup file suffixes +- Renamed patch files to a more standard format +- Moved header files from /usr/include to /usr/include/flite +- Added -p option to all cp operations (to preserve timestamps) + +* Sun Nov 12 2006 Francois Aucamp - 1.3-6 +- Recreated patch to allow shared libraries to build correctly (sharedlibs.patch) +- "flite" and "flite_time" binaries now link to flite shared libraries (sharedlibs.patch) +- Simplified the documentation patch filename +- Modified patch steps in %%prep to create backup files with different suffixes +- Removed "_smp_flags" macro from %%build for all archs + +* Fri Oct 20 2006 Francois Aucamp - 1.3-5 +- Modified "build" so that "_smp_flags" is only used for i386 arch + +* Mon Oct 10 2006 Francois Aucamp - 1.3-4 +- Removed "_smp_flags" macro from "build" for x86_64 arch + +* Tue Sep 26 2006 Francois Aucamp - 1.3-3 +- Added README-ALSA.txt (Source1) +- Removed subpackage: flite-devel-static +- Modified shared libraries patch (Patch0) to prevent building static libraries +- Renamed patch files: Patch0, Patch1 + +* Tue Sep 26 2006 Francois Aucamp - 1.3-2 +- Added flite 1.3 ALSA patch (Patch2) by Lukas Loehrer - thanks Anthony Green for pointing it out +- Added configure option: --with-audio=alsa +- Added BuildRequires: alsa-lib-devel + +* Fri Sep 22 2006 Francois Aucamp - 1.3-1 +- Initial RPM build