1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-13 07:34:50 +00:00

- Add speech-dispatcher

Speech Dispatcher is a device independent layer for speech synthesis,
developed with the goal of making the usage of speech synthesis easier
for application programmers. It takes care of most of the tasks
necessary to solve in speech enabled applications. What is a very high
level GUI library to graphics, Speech Dispatcher is to speech
synthesis.

PR:		142436
Submitted by:	Alberto Villa
Tested by:	myself
Approved by:	miwi, tabthorpe (mentors implicit)
This commit is contained in:
Dima Panov 2010-01-08 08:24:00 +00:00
parent 10b9bb8657
commit 863cef1641
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=247382
16 changed files with 426 additions and 0 deletions

View File

@ -27,6 +27,7 @@
SUBDIR += py-papi
SUBDIR += qt4-accessible
SUBDIR += ruby-atk
SUBDIR += speech-dispatcher
SUBDIR += yasr
.include <bsd.port.subdir.mk>

View File

@ -0,0 +1,111 @@
# New ports collection makefile for: speech-dispatcher
# Date created: 8 December 2009
# Whom: Alberto Villa <villa.alberto@gmail.com>
#
# $FreeBSD$
PORTNAME= speech-dispatcher
PORTVERSION= 0.6.7
CATEGORIES= accessibility audio
MASTER_SITES= http://www.freebsoft.org/pub/projects/speechd/
MAINTAINER= villa.alberto@gmail.com
COMMENT= Common interface to speech synthesis
LIB_DEPENDS= dotconf.0:${PORTSDIR}/devel/dotconf
USE_RC_SUBR= speechd
USE_GNOME= glib20 pkgconfig
MAKE_JOBS_SAFE= yes
GNU_CONFIGURE= yes
CONFIGURE_ENV= LDFLAGS="-L${LOCALBASE}/lib"
CONFIGURE_ARGS= --without-ibmtts --without-alsa --without-ivona
USE_GMAKE= yes
CFLAGS+= -I${LOCALBASE}/include
USE_LDCONFIG= ${PREFIX}/lib ${PREFIX}/lib/${PORTNAME}
CONFFILES= clients/emacs.conf clients/gnome-speech.conf \
modules/cicero.conf modules/dtk-generic.conf \
modules/epos-generic.conf modules/espeak-generic.conf \
modules/espeak-mbrola-generic.conf modules/espeak.conf \
modules/festival.conf modules/flite.conf modules/ibmtts.conf \
modules/ivona.conf modules/llia_phon-generic.conf \
modules/swift-generic.conf speechd.conf
PORTDOCS= AUTHORS ChangeLog NEWS README TODO
INFO= spd-say ${PORTNAME}-cs ${PORTNAME} ssip
OPTIONS= ESPEAK "eSpeak output module" on \
FESTIVAL "Festival output module" off \
NAS "Network Audio System support" off \
PULSEAUDIO "PulseAudio support" off
# no *.so library installed to link to
#FLITE "Festival Lite output module" off \
.include <bsd.port.pre.mk>
.ifndef(WITHOUT_ESPEAK)
LIB_DEPENDS+= espeak.1:${PORTSDIR}/audio/espeak
CONFIGURE_ARGS+= --with-espeak
PLIST_SUB+= ESPEAK=""
.else
CONFIGURE_ARGS+= --without-espeak
PLIST_SUB+= ESPEAK="@comment "
.endif
.ifdef(WITH_FESTIVAL)
RUN_DEPENDS+= festival:${PORTSDIR}/audio/festival \
${LOCALBASE}/share/festival/lib/${PORTNAME}.scm:${PORTSDIR}/audio/festival-freebsoft-utils
.endif
#.ifdef(WITH_FLITE)
#BUILD_DEPENDS+= flite:${PORTSDIR}/audio/flite
#RUN_DEPENDS+= flite:${PORTSDIR}/audio/flite
#CONFIGURE_ARGS+= --with-flite
#PLIST_SUB+= FLITE=""
#.else
CONFIGURE_ARGS+= --without-flite
PLIST_SUB+= FLITE="@comment "
#.endif
.ifdef(WITH_NAS)
LIB_DEPENDS+= audio.2:${PORTSDIR}/audio/nas
CONFIGURE_ARGS+= --with-nas
.else
CONFIGURE_ARGS+= --without-nas
.endif
.ifdef(WITH_PULSEAUDIO)
LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio
CONFIGURE_ARGS+= --with-pulseaudio
.else
CONFIGURE_ARGS+= --without-pulseaudio
.endif
pre-patch:
@${REINPLACE_CMD} -e 's/-pthread/${PTHREAD_LIBS}/g' \
${WRKSRC}/ltmain.sh
@${REINPLACE_CMD} -e 's/-lpthread/${PTHREAD_LIBS}/g' \
${WRKSRC}/configure \
${WRKSRC}/src/audio/Makefile.in \
${WRKSRC}/src/c/api/Makefile.in \
${WRKSRC}/src/c/clients/spdsend/Makefile.in \
${WRKSRC}/src/modules/Makefile.in \
${WRKSRC}/src/server/Makefile.in
post-install:
.for f in ${CONFFILES}
@if [ ! -f ${ETCDIR}/${f} ]; then \
${CP} -p ${ETCDIR}/${f}.sample ${ETCDIR}/${f}; \
fi
.endfor
.ifndef(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
.for f in ${PORTDOCS}
${INSTALL_MAN} ${WRKSRC}/${f} ${DOCSDIR}
.endfor
.endif
.include <bsd.port.post.mk>

View File

@ -0,0 +1,3 @@
MD5 (speech-dispatcher-0.6.7.tar.gz) = 67432ad655b50fd7c1f1f79e012cfe3f
SHA256 (speech-dispatcher-0.6.7.tar.gz) = 3b5c8b9df90f8e2069c92e1e0d9760c9b940aaec9994491a9e255c892e62434b
SIZE (speech-dispatcher-0.6.7.tar.gz) = 1186677

View File

@ -0,0 +1,11 @@
--- config/Makefile.in.orig 2008-07-31 08:57:42.000000000 +0000
+++ config/Makefile.in 2009-12-09 08:40:24.020226284 +0000
@@ -252,7 +252,7 @@
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(spdconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(spdconfdir)/$$f'"; \
- $(spdconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(spdconfdir)/$$f"; \
+ $(spdconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(spdconfdir)/$$f.sample"; \
done
uninstall-spdconfDATA:

View File

@ -0,0 +1,11 @@
--- config/clients/Makefile.in.orig 2009-12-09 08:31:05.740198777 +0000
+++ config/clients/Makefile.in 2009-12-09 08:31:26.505338395 +0000
@@ -238,7 +238,7 @@
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_clientconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(clientconfdir)/$$f'"; \
- $(dist_clientconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(clientconfdir)/$$f"; \
+ $(dist_clientconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(clientconfdir)/$$f.sample"; \
done
uninstall-dist_clientconfDATA:

View File

@ -0,0 +1,11 @@
--- config/modules/Makefile.in.orig 2009-12-09 08:34:23.051988348 +0000
+++ config/modules/Makefile.in 2009-12-09 08:38:28.256188947 +0000
@@ -238,7 +238,7 @@
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_moduleconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(moduleconfdir)/$$f'"; \
- $(dist_moduleconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(moduleconfdir)/$$f"; \
+ $(dist_moduleconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(moduleconfdir)/$$f.sample"; \
done
uninstall-dist_moduleconfDATA:

View File

@ -0,0 +1,11 @@
--- config/speechd.conf.in.orig 2010-01-06 00:02:39.200150051 +0000
+++ config/speechd.conf.in 2010-01-06 00:03:20.389964326 +0000
@@ -142,7 +142,7 @@
# PulseAudio is a sound server for POSIX and WIN32 systems.
#
-# AudioOutputMethod "alsa"
+AudioOutputMethod "oss"
# What ALSA device to use when Advanced Linux Sound Architecture is
# chosen for the audio output.

View File

@ -0,0 +1,69 @@
--- configure.orig 2009-12-08 15:59:23.733772839 +0000
+++ configure 2009-12-08 16:02:56.218512701 +0000
@@ -20456,66 +20456,10 @@
echo "*** Required math library missing! See INSTALL .";exit 1
fi
-{ echo "$as_me:$LINENO: checking for main in -ldl" >&5
-echo $ECHO_N "checking for main in -ldl... $ECHO_C" >&6; }
-if test "${ac_cv_lib_dl_main+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-int
-main ()
-{
-return main ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- ac_cv_lib_dl_main=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_lib_dl_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_main" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_main" >&6; }
-if test $ac_cv_lib_dl_main = yes; then
- echo ""
-else
- echo "*** Required dl library missing! See INSTALL .";exit 1
-fi
{ echo "$as_me:$LINENO: checking for main in -ldotconf" >&5
echo $ECHO_N "checking for main in -ldotconf... $ECHO_C" >&6; }

View File

@ -0,0 +1,10 @@
--- src/c/clients/say/say.c.orig 2009-12-08 19:26:30.807446567 +0000
+++ src/c/clients/say/say.c 2009-12-08 19:55:12.734039491 +0000
@@ -27,7 +27,6 @@
#include <stdlib.h>
#include <assert.h>
#include <semaphore.h>
-#include <error.h>
#include <errno.h>
#include "libspeechd.h"
#include "options.h"

View File

@ -0,0 +1,10 @@
--- src/c/clients/spdsend/server.c.orig 2009-12-08 20:16:01.708882022 +0000
+++ src/c/clients/spdsend/server.c 2009-12-08 20:24:49.894019326 +0000
@@ -30,6 +30,7 @@
#include <errno.h>
#include <netdb.h>
+#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#if USE_THREADS

View File

@ -0,0 +1,10 @@
--- src/server/options.c.orig 2009-12-08 16:50:48.424488834 +0000
+++ src/server/options.c 2009-12-08 16:52:00.074660414 +0000
@@ -24,6 +24,7 @@
/* NOTE: Be careful not to include options.h, we would
get repetitive initializations warnings */
+#include <sys/stat.h>
#include "speechd.h"
#include "options.h"

View File

@ -0,0 +1,16 @@
--- src/server/output.c.orig 2009-12-08 19:17:41.617402825 +0000
+++ src/server/output.c 2009-12-08 19:19:33.043039976 +0000
@@ -25,6 +25,13 @@
#include "fdsetconv.c"
#include "parse.h"
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(expr) \
+ ({ long int _res; \
+ do _res = (long int) (expr); \
+ while (_res == -1L && errno == EINTR); \
+ _res; })
+#endif
void
output_set_speaking_monitor(TSpeechDMessage *msg, OutputModule *output)

View File

@ -0,0 +1,11 @@
--- src/server/speechd.h.orig 2009-12-08 16:41:26.578943406 +0000
+++ src/server/speechd.h 2009-12-08 16:42:16.923002174 +0000
@@ -53,7 +53,7 @@
#include <sys/sem.h>
/* Definition of semun needed for semaphore manipulation */
-#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
+#if 1
/* union semun is defined by including <sys/sem.h> */
#else
/* according to X/OPEN we have to define it ourselves */

View File

@ -0,0 +1,37 @@
#!/bin/sh
#
# PROVIDE: speechd
# REQUIRE: DAEMON dbus
#
# Add the following to /etc/rc.conf to start speech-dispatcher at boot time:
#
# speechd_enable="YES"
#
. %%RC_SUBR%%
speechd_enable=${speechd_enable-"NO"}
name="speechd"
rcvar=`set_rcvar`
real_name="speech-dispatcher"
command="%%PREFIX%%/bin/${real_name}"
command_args="-C %%ETCDIR%%"
pidfile="/var/run/${real_name}.pid"
start_precmd="${name}_prestart"
stop_postcmd="${name}_poststop"
speechd_prestart()
{
mkdir -p /var/log/${real_name}
}
speechd_poststop()
{
rm -f $pifile
}
load_rc_config $name
run_rc_command "$1"

View File

@ -0,0 +1,8 @@
Speech Dispatcher is a device independent layer for speech synthesis,
developed with the goal of making the usage of speech synthesis easier
for application programmers. It takes care of most of the tasks
necessary to solve in speech enabled applications. What is a very high
level GUI library to graphics, Speech Dispatcher is to speech
synthesis.
WWW: http://www.freebsoft.org/speechd

View File

@ -0,0 +1,96 @@
bin/clibrary
bin/clibrary2
bin/connection_recovery
bin/long_message
bin/run_test
bin/spd-say
bin/spdsend
bin/speech-dispatcher
@unexec if cmp -s %D/%%ETCDIR%%/clients/emacs.conf %D/%%ETCDIR%%/clients/emacs.conf.sample; then rm -f %D/%%ETCDIR%%/clients/emacs.conf; fi
%%ETCDIR%%/clients/emacs.conf.sample
@exec [ -f %B/emacs.conf ] || cp %D/%F %B/emacs.conf
@unexec if cmp -s %D/%%ETCDIR%%/clients/gnome-speech.conf %D/%%ETCDIR%%/clients/gnome-speech.conf.sample; then rm -f %D/%%ETCDIR%%/clients/gnome-speech.conf; fi
%%ETCDIR%%/clients/gnome-speech.conf.sample
@exec [ -f %B/gnome-speech.conf ] || cp %D/%F %B/gnome-speech.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/cicero.conf %D/%%ETCDIR%%/modules/cicero.conf.sample; then rm -f %D/%%ETCDIR%%/modules/cicero.conf; fi
%%ETCDIR%%/modules/cicero.conf.sample
@exec [ -f %B/cicero.conf ] || cp %D/%F %B/cicero.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/dtk-generic.conf %D/%%ETCDIR%%/modules/dtk-generic.conf.sample; then rm -f %D/%%ETCDIR%%/modules/dtk-generic.conf; fi
%%ETCDIR%%/modules/dtk-generic.conf.sample
@exec [ -f %B/dtk-generic.conf ] || cp %D/%F %B/dtk-generic.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/epos-generic.conf %D/%%ETCDIR%%/modules/epos-generic.conf.sample; then rm -f %D/%%ETCDIR%%/modules/epos-generic.conf; fi
%%ETCDIR%%/modules/epos-generic.conf.sample
@exec [ -f %B/epos-generic.conf ] || cp %D/%F %B/epos-generic.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/espeak-generic.conf %D/%%ETCDIR%%/modules/espeak-generic.conf.sample; then rm -f %D/%%ETCDIR%%/modules/espeak-generic.conf; fi
%%ETCDIR%%/modules/espeak-generic.conf.sample
@exec [ -f %B/espeak-generic.conf ] || cp %D/%F %B/espeak-generic.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/espeak-mbrola-generic.conf %D/%%ETCDIR%%/modules/espeak-mbrola-generic.conf.sample; then rm -f %D/%%ETCDIR%%/modules/espeak-mbrola-generic.conf; fi
%%ETCDIR%%/modules/espeak-mbrola-generic.conf.sample
@exec [ -f %B/espeak-mbrola-generic.conf ] || cp %D/%F %B/espeak-mbrola-generic.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/espeak.conf %D/%%ETCDIR%%/modules/espeak.conf.sample; then rm -f %D/%%ETCDIR%%/modules/espeak.conf; fi
%%ETCDIR%%/modules/espeak.conf.sample
@exec [ -f %B/espeak.conf ] || cp %D/%F %B/espeak.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/festival.conf %D/%%ETCDIR%%/modules/festival.conf.sample; then rm -f %D/%%ETCDIR%%/modules/festival.conf; fi
%%ETCDIR%%/modules/festival.conf.sample
@exec [ -f %B/festival.conf ] || cp %D/%F %B/festival.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/flite.conf %D/%%ETCDIR%%/modules/flite.conf.sample; then rm -f %D/%%ETCDIR%%/modules/flite.conf; fi
%%ETCDIR%%/modules/flite.conf.sample
@exec [ -f %B/flite.conf ] || cp %D/%F %B/flite.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/ibmtts.conf %D/%%ETCDIR%%/modules/ibmtts.conf.sample; then rm -f %D/%%ETCDIR%%/modules/ibmtts.conf; fi
%%ETCDIR%%/modules/ibmtts.conf.sample
@exec [ -f %B/ibmtts.conf ] || cp %D/%F %B/ibmtts.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/ivona.conf %D/%%ETCDIR%%/modules/ivona.conf.sample; then rm -f %D/%%ETCDIR%%/modules/ivona.conf; fi
%%ETCDIR%%/modules/ivona.conf.sample
@exec [ -f %B/ivona.conf ] || cp %D/%F %B/ivona.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/llia_phon-generic.conf %D/%%ETCDIR%%/modules/llia_phon-generic.conf.sample; then rm -f %D/%%ETCDIR%%/modules/llia_phon-generic.conf; fi
%%ETCDIR%%/modules/llia_phon-generic.conf.sample
@exec [ -f %B/llia_phon-generic.conf ] || cp %D/%F %B/llia_phon-generic.conf
@unexec if cmp -s %D/%%ETCDIR%%/modules/swift-generic.conf %D/%%ETCDIR%%/modules/swift-generic.conf.sample; then rm -f %D/%%ETCDIR%%/modules/swift-generic.conf; fi
%%ETCDIR%%/modules/swift-generic.conf.sample
@exec [ -f %B/swift-generic.conf ] || cp %D/%F %B/swift-generic.conf
@unexec if cmp -s %D/%%ETCDIR%%/speechd.conf %D/%%ETCDIR%%/speechd.conf.sample; then rm -f %D/%%ETCDIR%%/speechd.conf; fi
%%ETCDIR%%/speechd.conf.sample
@exec [ -f %B/speechd.conf ] || cp %D/%F %B/speechd.conf
include/libspeechd.h
lib/libspeechd.a
lib/libspeechd.la
lib/libspeechd.so
lib/libspeechd.so.3
lib/speech-dispatcher-modules/sd_cicero
lib/speech-dispatcher-modules/sd_dummy
%%ESPEAK%%lib/speech-dispatcher-modules/sd_espeak
lib/speech-dispatcher-modules/sd_festival
%%FLITE%%lib/speech-dispatcher-modules/sd_flite
lib/speech-dispatcher-modules/sd_generic
lib/speech-dispatcher/libsdaudio.a
lib/speech-dispatcher/libsdaudio.la
lib/speech-dispatcher/libsdaudio.so
lib/speech-dispatcher/libsdaudio.so.2
share/sounds/speech-dispatcher/dummy-message.wav
share/sounds/speech-dispatcher/test.wav
%%DATADIR%%/conf/clients/emacs.conf
%%DATADIR%%/conf/clients/gnome-speech.conf
%%DATADIR%%/conf/modules/cicero.conf
%%DATADIR%%/conf/modules/dtk-generic.conf
%%DATADIR%%/conf/modules/epos-generic.conf
%%DATADIR%%/conf/modules/espeak-generic.conf
%%DATADIR%%/conf/modules/espeak-mbrola-generic.conf
%%DATADIR%%/conf/modules/espeak.conf
%%DATADIR%%/conf/modules/festival.conf
%%DATADIR%%/conf/modules/flite.conf
%%DATADIR%%/conf/modules/ibmtts.conf
%%DATADIR%%/conf/modules/ivona.conf
%%DATADIR%%/conf/modules/llia_phon-generic.conf
%%DATADIR%%/conf/modules/swift-generic.conf
%%DATADIR%%/conf/speechd.conf
@dirrm %%DATADIR%%/conf/modules
@dirrm %%DATADIR%%/conf/clients
@dirrm %%DATADIR%%/conf
@dirrm %%DATADIR%%
@dirrm share/sounds/speech-dispatcher
@dirrmtry share/sounds
@dirrm lib/speech-dispatcher-modules
@dirrm lib/speech-dispatcher
@dirrmtry %%ETCDIR%%/modules
@dirrmtry %%ETCDIR%%/clients
@dirrmtry %%ETCDIR%%