--- speech-dispatcher-0.6.7+git20090514.orig/debian/spd-conf.1 +++ speech-dispatcher-0.6.7+git20090514/debian/spd-conf.1 @@ -0,0 +1,70 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SPD-CONF 1 "August 24, 2009" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +spd-conf \- A simple tool for basic configuration of Speech Dispatcher and problem diagnostics +.SH SYNOPSIS +.B spd-conf +.RI [ options ] +.SH DESCRIPTION +.B espeak +Is a simple tool for basic configuration of Speech Dispatcher and problem diagnostics +.SH OPTIONS +.TP +.B \-h, \-\-help +show this help message and exit +.TP +.B \-e, \-\-espeak +Use espeak to synthesize messages +.TP +.B \-\-test\-festival +Test whether Festival works as a server +.TP +.B \-s, \-\-test\-spd\-say +Test connection to Speech Dispatcher using spd-say +.TP +.B \-\-test\-pulse +Test Pulse Audio +.TP +.B \-c, \-\-config\-basic\-settings\-user +Configure basic settings in user configuration +.TP +.B \-u, \-\-create\-user\-conf +Create Speech Dispatcher configuration for the given user +.TP +.B \-C, \-\-config\-basic\-settings\-system +Configure basic settings in system-wide configuration +.TP +.B \-n, \-\-dont\-ask +Do not ask any questions, allways use default values +.TP +.B \-\-test\-alsa +Test ALSA audio +.TP +.B \-\-test\-espeak +Test whether Espeak works as a standalone binary +.TP +.B \-d, \-\-diagnostics +Diagnose problems with the current setup +.TP +.B \-D, \-\-debug +Debug a problem and generate a report +.TP +.SH AUTHOR +spd-conf was written by Hynek Hanke . The webpage for this package can be found at http://www.freebsoft.org/speechd. +.PP +This manual page was written by Luke Yelavich , for the Ubuntu project (but may be used by others). --- speech-dispatcher-0.6.7+git20090514.orig/debian/control +++ speech-dispatcher-0.6.7+git20090514/debian/control @@ -0,0 +1,80 @@ +Source: speech-dispatcher +Section: sound +Priority: extra +Maintainer: Ubuntu Accessibility Developers +XSBC-Original-Maintainer: Milan Zamazal +Build-Depends: debhelper (>> 7.0.0), cdbs, dpatch, libglib2.0-dev, libdotconf-dev, flite-dev, autotools-dev, automake, libtool, texinfo, libasound2-dev [i386 ia64 alpha amd64 armeb arm hppa m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc lpia], libxau-dev, libespeak-dev, libpulse-dev, python-all-dev (>= 2.5) +Build-Depends-Indep: python-central (>= 0.6) +XS-Python-Version: all +Homepage: http://www.freebsoft.org/speechd +Standards-Version: 3.8.3 + +Package: speech-dispatcher +Architecture: any +Depends: adduser, lsb-base (>= 3.0-10), ${shlibs:Depends}, ${misc:Depends} +Suggests: speech-dispatcher-festival (= ${source:Version}), speech-dispatcher-doc-cs (= ${source:Version}), speech-dispatcher-flite (= ${source:Version}) +Conflicts: libspeechd1 (<< 0.5) +Description: Common interface to speech synthesizers + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains Speech Dispatcher itself. + +Package: libspeechd2 +Architecture: any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Conflicts: libspeechd0 (>= 0.3) +Description: Speech Dispatcher: Shared libraries + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains a shared library needed for C programs linked with it. + +Package: libspeechd-dev +Architecture: any +Section: libdevel +Depends: libspeechd2 (= ${binary:Version}), ${misc:Depends} +Suggests: speech-dispatcher +Description: Speech Dispatcher: Development libraries and header files + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains a shared library needed for C programs linked with it. + +Package: cl-speech-dispatcher +Architecture: all +Section: devel +Depends: common-lisp-controller, cl-regex, ${misc:Depends} +Description: Common Lisp interface to Speech Dispatcher + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains a Common Lisp library for communication with Speech + Dispatcher. + +Package: python-speechd +Architecture: all +Section: python +Depends: ${python:Depends}, ${misc:Depends}, speech-dispatcher (>= ${source:Version}) +XB-Python-Version: ${python:Versions} +Description: Python interface to Speech Dispatcher + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains a Python library for communication with Speech + Dispatcher. + +Package: speech-dispatcher-festival +Architecture: all +Depends: speech-dispatcher (>= 0.6), festival, festival-freebsoft-utils (>= 0.6), ${misc:Depends} +Recommends: sound-icons +Description: Festival support for Speech Dispatcher + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains dependencies on packages necessary for running Speech + Dispatcher with Festival. + +Package: speech-dispatcher-doc-cs +Architecture: all +Section: doc +Depends: ${misc:Depends} +Suggests: speech-dispatcher +Description: Speech Dispatcher documentation in Czech + Speech Dispatcher provides a device independent layer for speech synthesis. + +Package: speech-dispatcher-flite +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Speech Dispatcher: Flite output module + Speech Dispatcher provides a device independent layer for speech synthesis. + This package contains the output module for the flite speech synthesizer. --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher-doc-cs.info +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher-doc-cs.info @@ -0,0 +1 @@ +doc/speech-dispatcher-cs.info* --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.links +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.links @@ -0,0 +1 @@ +usr/share/man/man7/speech-dispatcher.7.gz usr/share/man/man7/spd-say.7.gz --- speech-dispatcher-0.6.7+git20090514.orig/debian/changelog +++ speech-dispatcher-0.6.7+git20090514/debian/changelog @@ -0,0 +1,1327 @@ +speech-dispatcher (0.6.7+git20090514-0ubuntu10) karmic; urgency=low + + * debian/rules: Add DEB_UPDATE_RCD_PARAMS variable to set dh_installinit + parameters, dropped during the move to cdbs. + * debian/patches/20_fix_homedir_bug.dpatch: Dropped, not really the best + approach. + * debian/patches/11_config_Set_the_audio_output_to_be_pulse_alsa_by_defa.dpatch: + Temporarily drop until the pulse output code is fixed to actually connect to + the pulseaudio server when pulse_open is called. The current situation sees + pulseaudi as a successful choice for audio, even though no connectino attempt + to the server has yet been made. + + -- Luke Yelavich Mon, 31 Aug 2009 16:07:16 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu9) karmic; urgency=low + + * Actually add debian/patches/19_enable_autospawn_config.dpatch to the 00list + file. + * debian/patches/20_fix_homedir_bug.dpatch: Only check and use contents in + $HOME/.speech-dispatcher if the home dir of the current user starts with + /home. Patch pushed upstream. (LP: #351421) + * debian/rules: Re-add the PIDPATH variable passed to the configure script, + accidentally dropped with the move to cdbs. + + -- Luke Yelavich Fri, 28 Aug 2009 17:24:33 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu8) karmic; urgency=low + + * debian/control: Drop build depend on libaudio-dev, so we don't pull NAS + packages onto the CDs. + + -- Luke Yelavich Fri, 28 Aug 2009 10:20:25 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu7) karmic; urgency=low + + * debian/rules, debian/speech-dispatcher.init: Only stop on init level 1, + and not levels 0 or 6. + debian/speech-dispatcher.postrm: Do not remove system user on package + removal. + + -- Luke Yelavich Thu, 27 Aug 2009 08:51:25 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu6) karmic; urgency=low + + * Remove autoconf/automake files from .diff.gz that managed to creep + in due to different versions of autotools on my system. + + -- Luke Yelavich Wed, 26 Aug 2009 12:19:38 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu5) karmic; urgency=low + + * debian/speechd-server-spawn: Only spawn the server if autospawning + is enabled. + * debian/patches/19_enable_autospawn_config.dpatch: Enable auto-spawning + by default in speechd.conf. + * debian/python-speechd.install: Dropp speech-dispatcher desktop file + As it will not be needed, and its in the wrong package anyway. + + -- Luke Yelavich Wed, 26 Aug 2009 10:43:08 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu4) karmic; urgency=low + + * debian/control: Fix some lintian warnings. + * Added manpages for spd-conf and speechd-server-spawn. + * debian/patches/18_cleanup_c_api.dpatch: Fix typos in the API header + file, patch sent upstream. + + -- Luke Yelavich Tue, 25 Aug 2009 15:30:52 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu3) karmic; urgency=low + + * Massive cleanup of packaging, moved from part debhelper and part copying + files to cdbs, allowing for much cleaner and easier maintenance of the + package in the future. + * Bumped compat to 7, and standards to 3.8.3, no changes needed. + * Removed some packages from build-depends that are not needed for the + package to be built. + + -- Luke Yelavich Mon, 24 Aug 2009 15:00:54 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu2) karmic; urgency=low + + * debian/rules: /usr/share/speech-dispatcher/conf/desktop/speechd.desktop + should only be in the python-speechd package. + + -- Luke Yelavich Thu, 20 Aug 2009 11:32:58 +1000 + +speech-dispatcher (0.6.7+git20090514-0ubuntu1) karmic; urgency=low + + * New upstream git snapshot + * Refresh all patches that have been written and sent upstream, but are not + yet applied. + * debian/patches/17_autospawn.dpatch: Add support for auto-spawning the + speech-dispatcher server when a client attempts to connect to the server + either with python bindings, or via the C aPI. Needs clenaing up before + sending upstream. + * debian/rules: Install speechd-server-spawn into the speech-dispatcher + package used for auto spawning. + + -- Luke Yelavich Mon, 17 Aug 2009 14:04:16 +1000 + +speech-dispatcher (0.6.7-4ubuntu6) UNRELEASED; urgency=low + + * debian/patches/18_python_bindings_autospawn.dpatch: Add support for spawning + the speech-dispatcher server if it is not running. As the patch file name + indicates, this is for the python bindings. The code to spawn the server + from the C API will be added at a later date. + * debian/speechd-server-spawn: Add a shell script to wrap around the server. + The script will return the pid of the running speechd-server, whether the + script started it or not. The script will also run speech-dispatcher in + system mode if the script is run as root. + + -- Luke Yelavich Fri, 07 Aug 2009 16:13:57 +0100 + +speech-dispatcher (0.6.7-4ubuntu5) karmic; urgency=low + + * 15_user_session_integration.dpatch: More tightly integrate + speech-dispatcher into the user session, setting a unique port + to be used by each user instance of speech-dispatcher Patch sent upstream. + * 16_no_hard_code_speechd_clients.dpatch: Adjust the config file so that + client config file inclusion does not need to be hard coded. Patch sent + upstream. + * 17_respect_destdir.dpatch: Respect DESTDIR everywhere, taken from upstream + git master. + * debian/rules: + - Enable session integration, as per the above patch. + - Use Call make install with the DESTDIR variable set. + + -- Luke Yelavich Thu, 30 Jul 2009 15:58:07 +1000 + +speech-dispatcher (0.6.7-4ubuntu4) karmic; urgency=low + + * 14_set_default_audio_output.dpatch: Remove oss from the audio output list, + as for some reason, no audio output device gets open when oss is present. + Needs further investigation. + + -- Luke Yelavich Wed, 08 Jul 2009 11:43:44 +1000 + +speech-dispatcher (0.6.7-4ubuntu3) karmic; urgency=low + + * 08_server-Send-log-level-configuration-setting-to_modules.dpatch: Send + the loglevel setting to the speech modules, to ensure a consistant log + level in all logfiles. Patch sent upstream. + * 09_modules-Receive-and-set-log-level-from-speechd-server.dpatch: Receive + the log level from the speech server, ans set it globally. Patch sent + upstream. + * 10_audio-alsa-audio-oss-Take-the-log-level-into-account.dpatch: Take + the log level into account when logging audio activity. Patch sent + upstream. + * 11_audio-alsa-audio-oss-Assign-all-log-messages-a-log-level.dpatch: Assign + all log messages a log level in the audio output code. Patch sent upstream. + * 12_audio-modules-Set-libspdaudio-s-internal-log_level-variable.dpatch: Set + the log level for use in the audio output library code. Patch sent upstrea. + * 13_audio_fallback.dpatch: Enable graceful audio fallback for audio output. + When attempting to set up audio output, a module will itterate through a + comma separated list of audio output methods until it can either + successfully set up audio output, or all specified audio outputs fail to be + set up. Patch sent upstream. + + -- Luke Yelavich Wed, 08 Jul 2009 11:01:22 +1000 + +speech-dispatcher (0.6.7-4ubuntu2) karmic; urgency=low + + * debian/patches/07_pulse_adjustments.dpatch: Adjust some pulseaudio + functionality for lower latency. + + -- Luke Yelavich Fri, 15 May 2009 12:57:55 +1000 + +speech-dispatcher (0.6.7-4ubuntu1) karmic; urgency=low + + * Merge from debian unstable, remaining changes: + - Add lpia to the list of architectures for libasound2-dev + - Python-speechd should depend on speech-dispatcher + - Moved the flite output module to a separate package, and added + it to suggests + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not present + - Speech-dispatcher is not started on system boot by default + - Use alsa as default audio output + * debian/patches/06_fix_libspeechd_memleak.dpatch: Move the memory leak + fix to a patch file, rather than it be applied directly in the .diff.gz + + -- Luke Yelavich Wed, 06 May 2009 08:50:54 +1000 + +speech-dispatcher (0.6.7-4) unstable; urgency=low + + * Upload to unstable. + + -- Milan Zamazal Sat, 07 Mar 2009 14:25:29 +0100 + +speech-dispatcher (0.6.7-3) experimental; urgency=low + + * Fix memory leak on connection error in libspeechd. Thanks to Mario + Lang . Closes: #509533. + + -- Milan Zamazal Tue, 23 Dec 2008 10:21:16 +0100 + +speech-dispatcher (0.6.7-2) experimental; urgency=low + + * Main log file name changed back to `speech-dispatcher.log' everywhere. + * Upload to experimental because lenny is frozen. + + -- Milan Zamazal Fri, 24 Oct 2008 20:38:30 +0200 + +speech-dispatcher (0.6.7-1) experimental; urgency=low + + * New upstream version. + * Upload to experimental because lenny is frozen. + + -- Milan Zamazal Mon, 04 Aug 2008 21:27:14 +0200 + +speech-dispatcher (0.6.7-0ubuntu4) jaunty; urgency=low + + * debian/control: Move python-all-dev build dependency so its pulled in for + all arches (Fix FTBF) + + -- Luke Yelavich Mon, 02 Mar 2009 15:39:08 +1100 + +speech-dispatcher (0.6.7-0ubuntu3) jaunty; urgency=low + + * rebuild for python 2.6 + + -- Luke Yelavich Mon, 02 Mar 2009 14:57:49 +1100 + +speech-dispatcher (0.6.7-0ubuntu2) intrepid; urgency=low + + * debian/patches/04_from_cvs_fix_hash_expansion.dpatch: Prevent bash + expansion of $DATA variables. + * debian/patches/05_from_cvs_threading_fixes.dpatch: Fix some mutex + issues relating to alsa audio output and the espeak module. + + -- Luke Yelavich Fri, 17 Oct 2008 10:47:20 +1100 + +speech-dispatcher (0.6.7-0ubuntu1) intrepid; urgency=low + + * New upstream release. + * Merge from debian unstable, remaining changes: + - Add lpia to the list of architectures for libasound2-dev. + - Python-speechd should depend on speech-dispatcher. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not present. + - Set maintainer to Ubuntu Accessibility Developers. + - Speech-dispatcher is not started on system boot by default. + * Use alsa as default audio output. + + -- Luke Yelavich Sat, 16 Aug 2008 21:29:26 +1000 + +speech-dispatcher (0.6.7~rc1-1) unstable; urgency=low + + * New upstream version (pre-release). + * DEB_BUILD_OPTIONS setup updated as described in the current policy. + * `Homepage' control field added. + * Standards 3.8.0. + + -- Milan Zamazal Sun, 13 Jul 2008 16:58:37 +0200 + +speech-dispatcher (0.6.6+cvs20080515-0ubuntu1) intrepid; urgency=low + + * New upstream CVS snapshot. + * Merge from debian unstable, remaining changes: + - Add lpia to the list of architectures for libasound2-dev. + - Python-speechd should depend on speech-dispatcher. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not present. + - Set maintainer to Ubuntu Accessibility Developers. + - Speech-dispatcher is not started on system boot by default. + - Use pulseaudio output by default for all modules that support it. + + -- Luke Yelavich Fri, 06 Jun 2008 12:55:04 +1000 + +speech-dispatcher (0.6.6-2) unstable; urgency=low + + * Don't rmdir python-speechd/usr/lib, build depend on + python-central >= 0.6 instead; closes: #472029. + * config.{guess,sub} updated. + + -- Milan Zamazal Fri, 21 Mar 2008 21:39:17 +0100 + +speech-dispatcher (0.6.6-1) unstable; urgency=low + + * New upstream version. + * Standards 3.7.3 (no real change). + * Remove trailing stars in debian/patches/00list. + * Don't create /usr/lib/speech-dispatcher in libspeechd2. + * Don't create /usr/share/festival in speech-dispatcher. + * speech-dispatcher.7 man page formal fixes. + * Descriptions added to Debian patches. + * config.* files synced with current autotools-dev. + + -- Milan Zamazal Wed, 13 Feb 2008 22:59:11 +0100 + +speech-dispatcher (0.6.6-0ubuntu8) hardy; urgency=low + + * Disable speech-dispatcher from starting at system boot. This ensures that + users using another speech system such as gnome-speech, or users using + pulseaudio, will still be able to use speech/pulseaudio after a system + restart. (LP: #213755) + * Use PulseAudio output by default for all modules that support it. + + -- Luke Yelavich Thu, 17 Apr 2008 20:27:02 +1000 + +speech-dispatcher (0.6.6-0ubuntu7) hardy; urgency=low + + * debian/patches/07_libspeechd-h.dpatch: Fix from CVS: Ensure libspeechd.h + is not included more than once. + + -- Luke Yelavich Wed, 09 Apr 2008 22:52:02 +1000 + +speech-dispatcher (0.6.6-0ubuntu6) hardy; urgency=low + + * debian/patches/05_mutex-fix.dpatch taken from CVS: + - src/c/api/libspeechd.c (spd_send_data): Insure that function does not + hold a mutex when it returns. + + -- Luke Yelavich Wed, 02 Apr 2008 15:20:08 +1100 + +speech-dispatcher (0.6.6-0ubuntu5) hardy; urgency=low + + * debian/patches/05_honour-environment.dpatch: Drop for now, proper integration + work will be done in Intrepid. + * debian/speech-dispatcher.profile.d: Drop, same as above. + * Run as system service by default, this will change for intrepid. + * debian/rules: Adjust for recent pycentral updates. + + -- Luke Yelavich Wed, 05 Mar 2008 13:48:11 +1100 + +speech-dispatcher (0.6.6-0ubuntu4) hardy; urgency=low + + * Only set the SPEECHD_PORT environment variable if speech-dispatcher is not already + running system wide. + + -- Luke Yelavich Tue, 26 Feb 2008 08:50:39 +1100 + +speech-dispatcher (0.6.6-0ubuntu3) hardy; urgency=low + + * debian/patches/05_honour-environment.dpatch: Honour the SPEECHD_PORT environment + variable. + * debian/patches/06_flite-improvements.dpatch: Flite updates from CVS as below: + - src/modules/flite.c (_flite_speak): Call flite_strip_silence to get rid of + leading and trailing silence in utterance (Idea and algorithm copied from + eflite). + - (flite_set_rate): Increase maximum speech rate. + + -- Luke Yelavich Mon, 25 Feb 2008 14:17:44 +1100 + +speech-dispatcher (0.6.6-0ubuntu2) hardy; urgency=low + + * debian/patches/04_doc-updates.dpatch: Documentation updates from CVS. + * debian/init: Quote recently added strings appropriately. + * Add shell script to /etc/profile.d to set the SPEECHD_PORT environment + variable to a unique port number for users to run speech-dispatcher + sessions. + + -- Luke Yelavich Wed, 20 Feb 2008 15:32:53 +1100 + +speech-dispatcher (0.6.6-0ubuntu1) hardy; urgency=low + + * New upstream release, + + -- Luke Yelavich Wed, 13 Feb 2008 23:27:48 +1100 + +speech-dispatcher (0.6.5+cvs20080211-0ubuntu1) hardy; urgency=low + + * New upstream snapshot. 0.6.6 is likely to land soon, but not soon enough + for Ubuntu. + * Fix up multiple /etc/default/speech-dispatcher files. + + -- Luke Yelavich Wed, 13 Feb 2008 20:03:40 +1100 + +speech-dispatcher (0.6.5+cvs20080204-0ubuntu3) hardy; urgency=low + + * debian/control: Fix typo causing python-speech to fail installation. + + -- Luke Yelavich Sat, 09 Feb 2008 18:56:00 +1100 + +speech-dispatcher (0.6.5+cvs20080204-0ubuntu2) hardy; urgency=low + + * Move all indep dependencies into Build-Depends. This will fix FTBFS + on all arches other than i386 for good. + * Only use python 2.5 for python-speechd. + + -- Luke Yelavich Fri, 08 Feb 2008 09:14:48 +1100 + +speech-dispatcher (0.6.5+cvs20080204-0ubuntu1) hardy; urgency=low + + * New upstream snapshot, encorporating some rather important stability + fixes, both in the core, and the audio subsystem + * debian/patches/02_python-makefile.dpatch: Reworked + * debian/patches/04_libs-cleanup.dpatch: Dropped, applied upstream + * debian/patches/05_pulseaudio-fixes.dpatch: Dropped, applied upstream + * Removed python-all-dev from Build-Depends. + * speech-dispatcher is started by default, but can easily be disabled + if a user so wishes. + + -- Luke Yelavich Thu, 07 Feb 2008 16:40:28 +1100 + +speech-dispatcher (0.6.5-1ubuntu3) hardy; urgency=low + + * debian/patches/05_pulseaudio-fixes.dpatch: + - Fixes taken from CVS: + + pulse_play now returns once the given track has been drained. + + automatically close the PulseAudio connection after a moment + of inactivity (currently set to 100ms in PULSE_TIMEOUT_IN_USEC). + + -- Luke Yelavich Fri, 21 Dec 2007 21:53:01 +1100 + +speech-dispatcher (0.6.5-1ubuntu2) hardy; urgency=low + + * debian/patches/04_libs-cleanup.dpatch: + - Remove libraries that were being linked against, but had no + symbols being used. + - Link libsdaudio.so.2.00.2 against libpthread. + * debian/rules: Run dh_makeshlibs for the speech-dispatcher package as + well. Needed to ensure speech-dispatcher-flite can get the correct + shlib dependencies. + + -- Luke Yelavich Fri, 14 Dec 2007 13:58:57 +1100 + +speech-dispatcher (0.6.5-1ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Add python-all-dev to build-depends. (Fix FTBFS) + - Add lpia to the list of architectures for libasound2-dev. + - Python-speechd should depend on speech-dispatcher. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not + present. + - Set myself as maintainer. + * Ubuntu changes dropped: + - Fix some variable data size inconsistancies, causing crashes on + 64-bit systems. Applied upstream. + - Endian fixes to speech drivers, and the audio output library. Applied + upstream. + - Changed default speech synthesizer to the new espeak driver. Applied + upstream. + + -- Luke Yelavich Sat, 01 Dec 2007 22:34:55 +1100 + +speech-dispatcher (0.6.5-1) unstable; urgency=low + + * New upstream version. + * Use dpatch for upstream patches. + + -- Milan Zamazal Fri, 30 Nov 2007 19:18:46 +0100 + +speech-dispatcher (0.6.4-2ubuntu2) hardy; urgency=low + + * Add python-all-dev to build-depends. (Fix FTBFS) + * Add lpia to the list of architectures for libasound2-dev. + + -- Luke Yelavich Tue, 27 Nov 2007 17:47:57 +1100 + +speech-dispatcher (0.6.4-2ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Fix some variable data size inconsistancies, causing crashes on + 64-bit systems. + - Python-speechd should depend on speech-dispatcher. + - Endian fixes to speech drivers, and the audio output library. + - Changed default speech synthesizer to the new espeak driver. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not + present. + + -- Luke Yelavich Tue, 27 Nov 2007 08:07:51 +1100 + +speech-dispatcher (0.6.4-2) unstable; urgency=low + + * Build-depend on libespeak-dev. + + -- Milan Zamazal Fri, 31 Aug 2007 09:30:15 +0200 + +speech-dispatcher (0.6.4-1) unstable; urgency=low + + * New upstream version. + * debian/rules: Don't `make distclean' result. + * debian/control: Use ${*:Version} instead of ${Source-Version}. + + -- Milan Zamazal Wed, 29 Aug 2007 14:38:54 +0200 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu5) gutsy; urgency=low + + * debian/patches/02_size_t_fix.dpatch: + - Fix some variable data size inconsistancies, causing crashes on + 64-bit systems. Thanks to Mike Gorse + + -- Luke Yelavich Mon, 24 Sep 2007 10:54:28 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu4) gutsy; urgency=low + + * S in source should be lower case. Go me! + + -- Luke Yelavich Fri, 14 Sep 2007 15:20:07 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu3) gutsy; urgency=low + + * Python-speechd should depend on speech-dispatcher. + * Fix lintian warnings. + + -- Luke Yelavich Fri, 14 Sep 2007 14:59:37 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu2) gutsy; urgency=low + + * debian/control: Add dpatch to build-depends. + * debian/patches/01_audio_endian_fix.dpatch: + - Endian fixes to speech drivers, and the audio output library. + + -- Luke Yelavich Wed, 12 Sep 2007 14:34:07 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu1) gutsy; urgency=low + + * New upstream CVS snapshot. + * Added libsndfile1-dev, pkg-config, and libespeak-dev as + dependencies. + * Changed default speech synthesizer to the new espeak driver. + + -- Luke Yelavich Thu, 16 Aug 2007 14:14:26 +1000 + +speech-dispatcher (0.6.2-3ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - Change default speech-dispatcher configuration to use espeak. + - Set Luke Yelavich as Ubuntu package maintainer. + - debian/control: Add python-dev as a dependency. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not + present. + + -- Luke Yelavich Fri, 04 May 2007 17:14:18 +1000 + +speech-dispatcher (0.6.2-3) unstable; urgency=low + + * Add missing upstream cleanup actions. + + -- Milan Zamazal Tue, 1 May 2007 10:37:42 +0200 + +speech-dispatcher (0.6.2-2) experimental; urgency=low + + * debian/rules: Don't fail when building arch-dep target without Python; + closes: #412995. + * Upload to experimental because etch is in freeze. + + -- Milan Zamazal Thu, 1 Mar 2007 18:38:08 +0100 + +speech-dispatcher (0.6.2-1) experimental; urgency=low + + * New upstream version. + * Upload to experimental because etch is in freeze. + * LSB section added to the init script, use LSB functions for printing + messages. + * Don't call dh_python in rules. + + -- Milan Zamazal Wed, 28 Feb 2007 12:27:31 +0100 + +speech-dispatcher (0.6.1-3) unstable; urgency=low + + * debian/rules: Actually use the CFLAGS variable. + + -- Milan Zamazal Mon, 6 Nov 2006 09:58:02 +0100 + +speech-dispatcher (0.6.2-0ubuntu1) gutsy; urgency=low + + * New upstream release + * Ensure espeak is set as default in config/speechd.conf.in. + + -- Luke Yelavich Mon, 30 Apr 2007 10:42:36 +1000 + +speech-dispatcher (0.6.1-2ubuntu3) feisty; urgency=low + + * Change default speech-dispatcher configuration to use espeak. + * Move espeak from recommends to depends for the speech-dispatcher + package. + * Set myself as Ubuntu package maintainer. + + -- Luke Yelavich Sat, 24 Mar 2007 10:58:54 +1100 + +speech-dispatcher (0.6.1-2ubuntu2) feisty; urgency=low + + * debian/control: + - Add python-dev as a dependency. + + -- Luke Yelavich Fri, 2 Feb 2007 23:05:59 +1100 + +speech-dispatcher (0.6.1-2ubuntu1) edgy; urgency=low + + * Merge from debian unstable. + * Moved the flite output module to a separate package, and added it to + suggests. + * Configure speech-dispatcher to use festival by default. + * Removed the speech-dispatcher-festival metapackage, and added + festival-freebsoft-utils to the depends field of speech-dispatcher. + * Add espeak to suggests. + + -- Luke Yelavich Thu, 3 Aug 2006 13:06:55 +1000 + +speech-dispatcher (0.6.1-2) unstable; urgency=low + + * python-speechd updated to the new Python policy; closes: #380959. + + -- Milan Zamazal Tue, 1 Aug 2006 13:03:45 +0200 + +speech-dispatcher (0.6.1-1) unstable; urgency=low + + * New upstream version. + * New binary package python-speechd. + + -- Milan Zamazal Tue, 25 Jul 2006 17:42:29 +0200 + +speech-dispatcher (0.6-6) unstable; urgency=low + + * Build-depend on libasound2-dev only on Linux architectures; + closes: #377889. + + -- Milan Zamazal Wed, 12 Jul 2006 09:14:06 +0200 + +speech-dispatcher (0.6-5) unstable; urgency=low + + * Don't fail in postinst when speech-dispatcher doesn't start. + * Standards 3.7.2 (no real change). + + -- Milan Zamazal Mon, 10 Jul 2006 14:39:31 +0200 + +speech-dispatcher (0.6-4ubuntu1) edgy; urgency=low + + * Merge newer debian version: + + debian/init.d: + Added work-around to ensure /var/run/speech-dispatcher is created at + boot due to /var/run being mounted tmpfs. + + debian/speech-dispatcher.postrm: + Add check for /var/run/speech-dispatcher and do not try to remove if + not present. + + -- Stefan Potyra Fri, 7 Jul 2006 15:36:04 +0200 + +speech-dispatcher (0.6-4) unstable; urgency=low + + * Libraries required for NAS support added to build dependencies. + + -- Milan Zamazal Mon, 27 Mar 2006 13:04:13 +0200 + +speech-dispatcher (0.6-3) unstable; urgency=low + + * libasound2-dev added to build-dependencies. + + -- Milan Zamazal Sun, 26 Mar 2006 22:38:42 +0200 + +speech-dispatcher (0.6-2) unstable; urgency=low + + * Added missing declaration in the upstream sources to make the package + compile on 64-bit architectures, thanks to + Samuel Thibault ; closes: #356134. + * Standards 3.6.2 (no real change). + + -- Milan Zamazal Fri, 10 Mar 2006 12:14:17 +0100 + +speech-dispatcher (0.6-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Fri, 17 Feb 2006 10:40:25 +0100 + +speech-dispatcher (0.5-4) unstable; urgency=low + + * Typo in Festival use instructions fixed; closes: #326992. + * Remove speech-dispatcher user on `remove' instead of `purge'. Remove + its home directory with `rm -r' instead of `deluser --remove-home'. + Change owner of the home directory in postinst. Change owner of the + log directory recursively. Closes: #348241. + + -- Milan Zamazal Mon, 16 Jan 2006 12:07:23 +0100 + +speech-dispatcher (0.5-3) unstable; urgency=low + + * Patch by Andreas Jochens to compile on amd64 applied; closes: #298420. + + -- Milan Zamazal Mon, 7 Mar 2005 15:28:31 +0100 + +speech-dispatcher (0.5-2) unstable; urgency=low + + * speech-dispatcher: Conflict with older libspeechd1. + + -- Milan Zamazal Tue, 9 Nov 2004 08:38:55 +0100 + +speech-dispatcher (0.5-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Tue, 19 Oct 2004 18:58:53 +0200 + +speech-dispatcher (0.4.1-3) unstable; urgency=low + + * speech-dispatcher: Depend on adduser; closes: #272215. + + -- Milan Zamazal Sat, 18 Sep 2004 20:29:46 +0200 + +speech-dispatcher (0.4.1-2) unstable; urgency=low + + * libsdaudio.so moved to speech-dispatcher. + * Don't build-depend on automake1.7. + + -- Milan Zamazal Wed, 30 Jun 2004 10:56:29 +0200 + +speech-dispatcher (0.4.1-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Sun, 30 May 2004 12:55:54 +0200 + +speech-dispatcher (0.4-1) unstable; urgency=low + + * New upstream version. + * Standards 3.6.1 (no change). + + -- Milan Zamazal Fri, 28 May 2004 16:07:05 +0200 + +speech-dispatcher (0.3-6) unstable; urgency=low + + * Upstream ltmain.sh removed and all auto* files rebuilt; + closes: #248536. + + -- Milan Zamazal Sun, 23 May 2004 13:54:32 +0200 + +speech-dispatcher (0.3-5) unstable; urgency=low + + * Default module log file directory changed to + /var/log/speech-dispatcher/. + * `texinfo' added to build dependencies; closes: #247788. + + -- Milan Zamazal Fri, 7 May 2004 07:26:35 +0200 + +speech-dispatcher (0.3-4) unstable; urgency=low + + * speech-dispatcher-festival: This is an architecture independent + package. + * debian/rules: Don't build binary-indep packages in binary-dep; + closes: #244389. + * debian/rules: Install the libraries correctly even with the newer + libtool versions that generate library files without the .so extension + (for some mysterious unexplained reason); closes: #244386. + * speech-dispatcher: The lintian override file updated. + + -- Milan Zamazal Sun, 18 Apr 2004 17:39:53 +0200 + +speech-dispatcher (0.3-3) unstable; urgency=low + + * libspeechd1: Conflict with libspeechd0 (>= 0.3). + * Use --oknodo in start-stop-daemon on reloading; closes: #242362. + * cl-speech-dispatcher: Depend on cl-regex; closes: #243368. + + -- Milan Zamazal Tue, 13 Apr 2004 09:35:59 +0200 + +speech-dispatcher (0.3-2) unstable; urgency=low + + * libspeechd0 renamed to libspeechd1. + + -- Milan Zamazal Mon, 5 Apr 2004 12:12:42 +0200 + +speech-dispatcher (0.3-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Mon, 5 Apr 2004 08:58:05 +0200 + +speech-dispatcher (0.2-8) unstable; urgency=low + + * Priority changed back to extra. + * Don't install upstream changelog to all binary packages. + + -- Milan Zamazal Thu, 19 Feb 2004 10:16:18 +0100 + +speech-dispatcher (0.2-7) unstable; urgency=low + + * Typo in speech-dispatcher dependencies fixed; closes: #233639. + * New package speech-dispatcher-festival. + * Package priority changed to optional. + * Require at least current libspeechd0 version in shlibs. + + -- Milan Zamazal Thu, 19 Feb 2004 09:57:57 +0100 + +speech-dispatcher (0.2-6) unstable; urgency=low + + * Don't install festival-interface. + * Suggest festival-freebsoft-utils. + + -- Milan Zamazal Mon, 2 Feb 2004 16:04:20 +0100 + +speech-dispatcher (0.2-5) unstable; urgency=low + + * Some upstream fixes incorporated. + * Typo in `Recommends' field name fixed. + + -- Milan Zamazal Tue, 27 Jan 2004 12:03:57 +0100 + +speech-dispatcher (0.2-4) unstable; urgency=low + + * Common Lisp support added from the CVS version. + * New binary package cl-speech-dispatcher. + * Use debian/compat and Debhelper 4. + + -- Milan Zamazal Tue, 20 Jan 2004 19:31:06 +0100 + +speech-dispatcher (0.2-3) unstable; urgency=low + + * Commented out log file locations in config files moved to + /var/log/speech-dispatcher/ and logrotate entries added for them. + + -- Milan Zamazal Tue, 6 Jan 2004 18:10:58 +0100 + +speech-dispatcher (0.2-2) unstable; urgency=low + + * AUTHORS file added. + * Info entry for ssip.info added. + + -- Milan Zamazal Tue, 30 Dec 2003 09:46:09 +0100 + +speech-dispatcher (0.2-1) unstable; urgency=low + + * New upstream release. + * debian/rules: Call `make distclean' instead of `make maintainer-clean'. + * debian/rules: Update config.{sub,guess}. + * Build-depend on autotools-dev; don't build-depend on librecode-dev. + + -- Milan Zamazal Mon, 29 Dec 2003 14:33:16 +0100 + +speech-dispatcher (0.1-3) unstable; urgency=low + + * Don't recommend `flite'; closes: #221889. + * Suggest `festival', don't recommend it. + * Package sections changed to be in correspondence with the override + file. + * Information about server_access_list added to README.Debian. + + -- Milan Zamazal Wed, 26 Nov 2003 12:42:11 +0100 + +speech-dispatcher (0.1-2) unstable; urgency=low + + * Recommend `flite | festival'. + * Recommend `sound-icons'. + * Don't run automake etc. explicitly. + * Build-depend on libtool; closes: #221006. + * Log file permissions explained in README.Debian; closes: #221102. + + -- Milan Zamazal Tue, 18 Nov 2003 14:54:40 +0100 + +speech-dispatcher (0.1-1) unstable; urgency=low + + * Initial packaging. + + -- Milan Zamazal Fri, 7 Nov 2003 10:28:54 +0100 + +speech-dispatcher (0.6.5-1ubuntu2) hardy; urgency=low + + * debian/patches/04_libs-cleanup.dpatch: + - Remove libraries that were being linked against, but had no + symbols being used. + - Link libsdaudio.so.2.00.2 against libpthread. + * debian/rules: Run dh_makeshlibs for the speech-dispatcher package as + well. + + -- Luke Yelavich Fri, 14 Dec 2007 10:35:42 +1100 + +speech-dispatcher (0.6.5-1ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Add python-all-dev to build-depends. (Fix FTBFS) + - Add lpia to the list of architectures for libasound2-dev. + - Python-speechd should depend on speech-dispatcher. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not + present. + - Set myself as maintainer. + * Ubuntu changes dropped: + - Fix some variable data size inconsistancies, causing crashes on + 64-bit systems. Applied upstream. + - Endian fixes to speech drivers, and the audio output library. Applied + upstream. + - Changed default speech synthesizer to the new espeak driver. Applied + upstream. + + -- Luke Yelavich Sat, 01 Dec 2007 22:34:55 +1100 + +speech-dispatcher (0.6.5-1) unstable; urgency=low + + * New upstream version. + * Use dpatch for upstream patches. + + -- Milan Zamazal Fri, 30 Nov 2007 19:18:46 +0100 + +speech-dispatcher (0.6.4-2ubuntu2) hardy; urgency=low + + * Add python-all-dev to build-depends. (Fix FTBFS) + * Add lpia to the list of architectures for libasound2-dev. + + -- Luke Yelavich Tue, 27 Nov 2007 17:47:57 +1100 + +speech-dispatcher (0.6.4-2ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Fix some variable data size inconsistancies, causing crashes on + 64-bit systems. + - Python-speechd should depend on speech-dispatcher. + - Endian fixes to speech drivers, and the audio output library. + - Changed default speech synthesizer to the new espeak driver. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not + present. + + -- Luke Yelavich Tue, 27 Nov 2007 08:07:51 +1100 + +speech-dispatcher (0.6.4-2) unstable; urgency=low + + * Build-depend on libespeak-dev. + + -- Milan Zamazal Fri, 31 Aug 2007 09:30:15 +0200 + +speech-dispatcher (0.6.4-1) unstable; urgency=low + + * New upstream version. + * debian/rules: Don't `make distclean' result. + * debian/control: Use ${*:Version} instead of ${Source-Version}. + + -- Milan Zamazal Wed, 29 Aug 2007 14:38:54 +0200 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu5) gutsy; urgency=low + + * debian/patches/02_size_t_fix.dpatch: + - Fix some variable data size inconsistancies, causing crashes on + 64-bit systems. Thanks to Mike Gorse + + -- Luke Yelavich Mon, 24 Sep 2007 10:54:28 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu4) gutsy; urgency=low + + * S in source should be lower case. Go me! + + -- Luke Yelavich Fri, 14 Sep 2007 15:20:07 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu3) gutsy; urgency=low + + * Python-speechd should depend on speech-dispatcher. + * Fix lintian warnings. + + -- Luke Yelavich Fri, 14 Sep 2007 14:59:37 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu2) gutsy; urgency=low + + * debian/control: Add dpatch to build-depends. + * debian/patches/01_audio_endian_fix.dpatch: + - Endian fixes to speech drivers, and the audio output library. + + -- Luke Yelavich Wed, 12 Sep 2007 14:34:07 +1000 + +speech-dispatcher (0.6.4~beta1+cvs20070807-0ubuntu1) gutsy; urgency=low + + * New upstream CVS snapshot. + * Added libsndfile1-dev, pkg-config, and libespeak-dev as + dependencies. + * Changed default speech synthesizer to the new espeak driver. + + -- Luke Yelavich Thu, 16 Aug 2007 14:14:26 +1000 + +speech-dispatcher (0.6.2-3ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - Change default speech-dispatcher configuration to use espeak. + - Set Luke Yelavich as Ubuntu package maintainer. + - debian/control: Add python-dev as a dependency. + - Moved the flite output module to a separate package, and added + it to suggests. + - debian/init.d: Added work-around to ensure /var/run/speech-dispatcher is created + at boot due to /var/run being mounted tmpfs. + - debian/speech-dispatcher.postrm: Add check for + /var/run/speech-dispatcher and do not try to remove if not + present. + + -- Luke Yelavich Fri, 04 May 2007 17:14:18 +1000 + +speech-dispatcher (0.6.2-3) unstable; urgency=low + + * Add missing upstream cleanup actions. + + -- Milan Zamazal Tue, 1 May 2007 10:37:42 +0200 + +speech-dispatcher (0.6.2-2) experimental; urgency=low + + * debian/rules: Don't fail when building arch-dep target without Python; + closes: #412995. + * Upload to experimental because etch is in freeze. + + -- Milan Zamazal Thu, 1 Mar 2007 18:38:08 +0100 + +speech-dispatcher (0.6.2-1) experimental; urgency=low + + * New upstream version. + * Upload to experimental because etch is in freeze. + * LSB section added to the init script, use LSB functions for printing + messages. + * Don't call dh_python in rules. + + -- Milan Zamazal Wed, 28 Feb 2007 12:27:31 +0100 + +speech-dispatcher (0.6.1-3) unstable; urgency=low + + * debian/rules: Actually use the CFLAGS variable. + + -- Milan Zamazal Mon, 6 Nov 2006 09:58:02 +0100 + +speech-dispatcher (0.6.2-0ubuntu1) gutsy; urgency=low + + * New upstream release + * Ensure espeak is set as default in config/speechd.conf.in. + + -- Luke Yelavich Mon, 30 Apr 2007 10:42:36 +1000 + +speech-dispatcher (0.6.1-2ubuntu3) feisty; urgency=low + + * Change default speech-dispatcher configuration to use espeak. + * Move espeak from recommends to depends for the speech-dispatcher + package. + * Set myself as Ubuntu package maintainer. + + -- Luke Yelavich Sat, 24 Mar 2007 10:58:54 +1100 + +speech-dispatcher (0.6.1-2ubuntu2) feisty; urgency=low + + * debian/control: + - Add python-dev as a dependency. + + -- Luke Yelavich Fri, 2 Feb 2007 23:05:59 +1100 + +speech-dispatcher (0.6.1-2ubuntu1) edgy; urgency=low + + * Merge from debian unstable. + * Moved the flite output module to a separate package, and added it to + suggests. + * Configure speech-dispatcher to use festival by default. + * Removed the speech-dispatcher-festival metapackage, and added + festival-freebsoft-utils to the depends field of speech-dispatcher. + * Add espeak to suggests. + + -- Luke Yelavich Thu, 3 Aug 2006 13:06:55 +1000 + +speech-dispatcher (0.6.1-2) unstable; urgency=low + + * python-speechd updated to the new Python policy; closes: #380959. + + -- Milan Zamazal Tue, 1 Aug 2006 13:03:45 +0200 + +speech-dispatcher (0.6.1-1) unstable; urgency=low + + * New upstream version. + * New binary package python-speechd. + + -- Milan Zamazal Tue, 25 Jul 2006 17:42:29 +0200 + +speech-dispatcher (0.6-6) unstable; urgency=low + + * Build-depend on libasound2-dev only on Linux architectures; + closes: #377889. + + -- Milan Zamazal Wed, 12 Jul 2006 09:14:06 +0200 + +speech-dispatcher (0.6-5) unstable; urgency=low + + * Don't fail in postinst when speech-dispatcher doesn't start. + * Standards 3.7.2 (no real change). + + -- Milan Zamazal Mon, 10 Jul 2006 14:39:31 +0200 + +speech-dispatcher (0.6-4ubuntu1) edgy; urgency=low + + * Merge newer debian version: + + debian/init.d: + Added work-around to ensure /var/run/speech-dispatcher is created at + boot due to /var/run being mounted tmpfs. + + debian/speech-dispatcher.postrm: + Add check for /var/run/speech-dispatcher and do not try to remove if + not present. + + -- Stefan Potyra Fri, 7 Jul 2006 15:36:04 +0200 + +speech-dispatcher (0.6-4) unstable; urgency=low + + * Libraries required for NAS support added to build dependencies. + + -- Milan Zamazal Mon, 27 Mar 2006 13:04:13 +0200 + +speech-dispatcher (0.6-3) unstable; urgency=low + + * libasound2-dev added to build-dependencies. + + -- Milan Zamazal Sun, 26 Mar 2006 22:38:42 +0200 + +speech-dispatcher (0.6-2) unstable; urgency=low + + * Added missing declaration in the upstream sources to make the package + compile on 64-bit architectures, thanks to + Samuel Thibault ; closes: #356134. + * Standards 3.6.2 (no real change). + + -- Milan Zamazal Fri, 10 Mar 2006 12:14:17 +0100 + +speech-dispatcher (0.6-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Fri, 17 Feb 2006 10:40:25 +0100 + +speech-dispatcher (0.5-4) unstable; urgency=low + + * Typo in Festival use instructions fixed; closes: #326992. + * Remove speech-dispatcher user on `remove' instead of `purge'. Remove + its home directory with `rm -r' instead of `deluser --remove-home'. + Change owner of the home directory in postinst. Change owner of the + log directory recursively. Closes: #348241. + + -- Milan Zamazal Mon, 16 Jan 2006 12:07:23 +0100 + +speech-dispatcher (0.5-3) unstable; urgency=low + + * Patch by Andreas Jochens to compile on amd64 applied; closes: #298420. + + -- Milan Zamazal Mon, 7 Mar 2005 15:28:31 +0100 + +speech-dispatcher (0.5-2) unstable; urgency=low + + * speech-dispatcher: Conflict with older libspeechd1. + + -- Milan Zamazal Tue, 9 Nov 2004 08:38:55 +0100 + +speech-dispatcher (0.5-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Tue, 19 Oct 2004 18:58:53 +0200 + +speech-dispatcher (0.4.1-3) unstable; urgency=low + + * speech-dispatcher: Depend on adduser; closes: #272215. + + -- Milan Zamazal Sat, 18 Sep 2004 20:29:46 +0200 + +speech-dispatcher (0.4.1-2) unstable; urgency=low + + * libsdaudio.so moved to speech-dispatcher. + * Don't build-depend on automake1.7. + + -- Milan Zamazal Wed, 30 Jun 2004 10:56:29 +0200 + +speech-dispatcher (0.4.1-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Sun, 30 May 2004 12:55:54 +0200 + +speech-dispatcher (0.4-1) unstable; urgency=low + + * New upstream version. + * Standards 3.6.1 (no change). + + -- Milan Zamazal Fri, 28 May 2004 16:07:05 +0200 + +speech-dispatcher (0.3-6) unstable; urgency=low + + * Upstream ltmain.sh removed and all auto* files rebuilt; + closes: #248536. + + -- Milan Zamazal Sun, 23 May 2004 13:54:32 +0200 + +speech-dispatcher (0.3-5) unstable; urgency=low + + * Default module log file directory changed to + /var/log/speech-dispatcher/. + * `texinfo' added to build dependencies; closes: #247788. + + -- Milan Zamazal Fri, 7 May 2004 07:26:35 +0200 + +speech-dispatcher (0.3-4) unstable; urgency=low + + * speech-dispatcher-festival: This is an architecture independent + package. + * debian/rules: Don't build binary-indep packages in binary-dep; + closes: #244389. + * debian/rules: Install the libraries correctly even with the newer + libtool versions that generate library files without the .so extension + (for some mysterious unexplained reason); closes: #244386. + * speech-dispatcher: The lintian override file updated. + + -- Milan Zamazal Sun, 18 Apr 2004 17:39:53 +0200 + +speech-dispatcher (0.3-3) unstable; urgency=low + + * libspeechd1: Conflict with libspeechd0 (>= 0.3). + * Use --oknodo in start-stop-daemon on reloading; closes: #242362. + * cl-speech-dispatcher: Depend on cl-regex; closes: #243368. + + -- Milan Zamazal Tue, 13 Apr 2004 09:35:59 +0200 + +speech-dispatcher (0.3-2) unstable; urgency=low + + * libspeechd0 renamed to libspeechd1. + + -- Milan Zamazal Mon, 5 Apr 2004 12:12:42 +0200 + +speech-dispatcher (0.3-1) unstable; urgency=low + + * New upstream version. + + -- Milan Zamazal Mon, 5 Apr 2004 08:58:05 +0200 + +speech-dispatcher (0.2-8) unstable; urgency=low + + * Priority changed back to extra. + * Don't install upstream changelog to all binary packages. + + -- Milan Zamazal Thu, 19 Feb 2004 10:16:18 +0100 + +speech-dispatcher (0.2-7) unstable; urgency=low + + * Typo in speech-dispatcher dependencies fixed; closes: #233639. + * New package speech-dispatcher-festival. + * Package priority changed to optional. + * Require at least current libspeechd0 version in shlibs. + + -- Milan Zamazal Thu, 19 Feb 2004 09:57:57 +0100 + +speech-dispatcher (0.2-6) unstable; urgency=low + + * Don't install festival-interface. + * Suggest festival-freebsoft-utils. + + -- Milan Zamazal Mon, 2 Feb 2004 16:04:20 +0100 + +speech-dispatcher (0.2-5) unstable; urgency=low + + * Some upstream fixes incorporated. + * Typo in `Recommends' field name fixed. + + -- Milan Zamazal Tue, 27 Jan 2004 12:03:57 +0100 + +speech-dispatcher (0.2-4) unstable; urgency=low + + * Common Lisp support added from the CVS version. + * New binary package cl-speech-dispatcher. + * Use debian/compat and Debhelper 4. + + -- Milan Zamazal Tue, 20 Jan 2004 19:31:06 +0100 + +speech-dispatcher (0.2-3) unstable; urgency=low + + * Commented out log file locations in config files moved to + /var/log/speech-dispatcher/ and logrotate entries added for them. + + -- Milan Zamazal Tue, 6 Jan 2004 18:10:58 +0100 + +speech-dispatcher (0.2-2) unstable; urgency=low + + * AUTHORS file added. + * Info entry for ssip.info added. + + -- Milan Zamazal Tue, 30 Dec 2003 09:46:09 +0100 + +speech-dispatcher (0.2-1) unstable; urgency=low + + * New upstream release. + * debian/rules: Call `make distclean' instead of `make maintainer-clean'. + * debian/rules: Update config.{sub,guess}. + * Build-depend on autotools-dev; don't build-depend on librecode-dev. + + -- Milan Zamazal Mon, 29 Dec 2003 14:33:16 +0100 + +speech-dispatcher (0.1-3) unstable; urgency=low + + * Don't recommend `flite'; closes: #221889. + * Suggest `festival', don't recommend it. + * Package sections changed to be in correspondence with the override + file. + * Information about server_access_list added to README.Debian. + + -- Milan Zamazal Wed, 26 Nov 2003 12:42:11 +0100 + +speech-dispatcher (0.1-2) unstable; urgency=low + + * Recommend `flite | festival'. + * Recommend `sound-icons'. + * Don't run automake etc. explicitly. + * Build-depend on libtool; closes: #221006. + * Log file permissions explained in README.Debian; closes: #221102. + + -- Milan Zamazal Tue, 18 Nov 2003 14:54:40 +0100 + +speech-dispatcher (0.1-1) unstable; urgency=low + + * Initial packaging. + + -- Milan Zamazal Fri, 7 Nov 2003 10:28:54 +0100 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.docs +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.docs @@ -0,0 +1,4 @@ +AUTHORS +NEWS +README +TODO --- speech-dispatcher-0.6.7+git20090514.orig/debian/overrides.speech-dispatcher +++ speech-dispatcher-0.6.7+git20090514/debian/overrides.speech-dispatcher @@ -0,0 +1,3 @@ +# The log files may contain private information, so they shouldn't be readable +# by default; this is the safest way to achieve it. +speech-dispatcher: non-standard-dir-perm var/log/speech-dispatcher/ 0700 != 0755 --- speech-dispatcher-0.6.7+git20090514.orig/debian/python-speechd.install +++ speech-dispatcher-0.6.7+git20090514/debian/python-speechd.install @@ -0,0 +1,3 @@ +debian/tmp/usr/bin/spd-conf +debian/tmp/usr/lib/python2.6 +debian/tmp/usr/share/sounds/speech-dispatcher/test.wav --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.7 +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.7 @@ -0,0 +1,29 @@ +.\" Copyright (C) 2003, 2004, 2008 Brailcom, o.p.s. +.\" +.\" This 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 2, or (at your option) any later +.\" version. +.\" +.\" This is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" for more details. +.\" +.\" You should have received a copy of the GNU General Public License with +.\" your Debian GNU/Linux system, in /usr/share/common-licenses/GPL, or with +.\" the dpkg source package as the file COPYING. If not, write to the Free +.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +.\" +.TH SPEECH-DISPATCHER 7 +.TH SPD-SAY 7 +.SH NAME +speech-dispatcher \- Common interface to speech synthesizers. +.br +spd-say \- Speak something through Speech Dispatcher. +.SH DESCRIPTION +Speech Dispatcher does not have a useful manpage. Please look into Info +documentation for information about any programs included in the Speech +Dispatcher packages. +.SH SEE ALSO +.br info (1) --- speech-dispatcher-0.6.7+git20090514.orig/debian/cl-speech-dispatcher.prerm +++ speech-dispatcher-0.6.7+git20090514/debian/cl-speech-dispatcher.prerm @@ -0,0 +1,42 @@ +#! /bin/sh +# prerm script for cl-speech-dispatcher +# +# see: dh_installdeb(1) + +set -e + +# package name according to lisp +LISP_PKG=ssip + +# summary of how this script can be called: +# * `remove' +# * `upgrade' +# * `failed-upgrade' +# * `remove' `in-favour' +# * `deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove|upgrade|deconfigure) + unregister-common-lisp-source ${LISP_PKG} + ;; + failed-upgrade) + ;; + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- speech-dispatcher-0.6.7+git20090514.orig/debian/rules +++ speech-dispatcher-0.6.7+git20090514/debian/rules @@ -0,0 +1,23 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/utils.mk +include /usr/share/cdbs/1/rules/dpatch.mk + +common-install-arch:: + find -name '*.la' -exec rm {} \; # to avoid invalid libtool paths + mkdir -p $(CURDIR)/debian/tmp + ( cd src/python; make install DESTDIR=$(CURDIR)/debian/tmp ) + install -m 755 $(CURDIR)/debian/speechd-server-spawn $(CURDIR)/debian/tmp/usr/bin + mkdir -p $(CURDIR)/debian/tmp/usr/share/lintian/overrides + install -m 644 $(CURDIR)/debian/overrides.speech-dispatcher $(CURDIR)/debian/tmp/usr/share/lintian/overrides/speech-dispatcher + mkdir -p $(CURDIR)/debian/tmp/var/log/speech-dispatcher + chmod 700 $(CURDIR)/debian/tmp/var/log/speech-dispatcher + +binary-install/python-speechd:: + dh_pycentral -ppython-speechd + +DEB_CONFIGURE_EXTRA_FLAGS = --enable-session-integration pidpath=/var/run/speech-dispatcher/ +DEB_UPDATE_RCD_PARAMS = --error-handler=true +DEB_UPDATE_RCD_PARAMS = start 20 2 3 4 5 . stop 20 1 . --- speech-dispatcher-0.6.7+git20090514.orig/debian/libspeechd-dev.install +++ speech-dispatcher-0.6.7+git20090514/debian/libspeechd-dev.install @@ -0,0 +1,3 @@ +debian/tmp/usr/lib/libspeechd.so +debian/tmp/usr/lib/libspeechd.a +debian/tmp/usr/include --- speech-dispatcher-0.6.7+git20090514.orig/debian/cl-speech-dispatcher.install +++ speech-dispatcher-0.6.7+git20090514/debian/cl-speech-dispatcher.install @@ -0,0 +1,2 @@ +src/cl/ssip.asd usr/share/common-lisp/source/ssip +src/cl/*.lisp usr/share/common-lisp/source/ssip --- speech-dispatcher-0.6.7+git20090514.orig/debian/pycompat +++ speech-dispatcher-0.6.7+git20090514/debian/pycompat @@ -0,0 +1 @@ +2 --- speech-dispatcher-0.6.7+git20090514.orig/debian/speechd-server-spawn +++ speech-dispatcher-0.6.7+git20090514/debian/speechd-server-spawn @@ -0,0 +1,71 @@ +#!/bin/sh + +set -x +exec > /tmp/spawn.log 2>&1 + +pidof_current_user() +{ + local spduid userid + + if [ $(id -u) -eq 0 ]; then + userid=$(getent passwd speech-dispatcher | cut -f 3 -d :) + else + userid=$(id -u) + fi + + for spduid in $(ps -C speech-dispatcher -o uid= | awk '{print $1}') + do + if [ "$spduid" = "$userid" ]; then + echo $(ps -C speech-dispatcher -o uid=,pid= | grep $spduid | awk '{print $2}') + fi + done + +} + +autospawn_check() +{ + if [ $(id -u) -eq 0 ]; then + if grep '^# AutoSpawn$' /etc/speech-dispatcher/speechd.conf > /dev/null 2>&1 ; then + return 0 + else + return 1 + fi + else + # If the user has no speech-dispatcher configuration files, assume autospawning = yes. + if [ ! -f $HOME/.speech-dispatcher/conf/speechd.conf ]; then + return 0 + else + if grep '^# AutoSpawn$' $HOME/.speech-dispatcher/conf/speechd.conf > /dev/null 2>&1 ; then + return 0 + else + return 1 + fi + fi + fi +} + + +if [ "$(pidof_current_user)" = "" ]; then + SYSTEM_SPEECHD_SERVER_START_COMMAND="/etc/init.d/speech-dispatcher start > /dev/null 2>&1" + + if [ $(id -u) -eq 0 ]; then + if autospawn_check ; then + $SYSTEM_SPEECHD_SERVER_START_COMMAND + echo $(pidof_current_user) + exit + fi + else + if [ ! -f $HOME/.speech-dispatcher/conf/speechd.conf ]; then + mkdir -p $HOME/.speech-dispatcher/conf + cp -r /etc/speech-dispatcher/* $HOME/.speech-dispatcher/conf + fi + if autospawn_check ; then + speech-dispatcher > /dev/null 2>&1 + echo $(pidof_current_user) + exit + fi + fi +else + echo $(pidof_current_user) + exit +fi --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher-festival.README.Debian +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher-festival.README.Debian @@ -0,0 +1,35 @@ +In order to use Speech Dispatcher with Festival (which is recommended), you +must have installed this package (or the packages it depends on) and the +Festival server started. To achieve the latter, you must start the server +either by hand such as running + + festival --server + +on a command line or in some script, or you must comment out the + + exit 0 + +line in the /etc/init.d/festival file. + +Please note all your local host names must be set in the /etc/festival.scm file +before starting the Festival server so that it is accessible. For instance +line like the following should be present in your /etc/festival.scm: + + (set! server_access_list '(localhost your-alternate-host-name)) + +If Speech Dispatcher is started before the Festival server is started, you must +run + + invoke-rc.d speech-dispatcher reload + +to allow Speech Dispatcher to figure out that the previously unavailable +Festival server is now running. + +And finally, you must tell Speech Dispatcher to use Festival for its output. +Change the following configuration options in +/etc/speech-dispatcher/speechd.conf: + + DefaultModule festival + LanguageDefaultModule "en" "festival" + + -- Milan Zamazal , Wed Nov 26 12:41:31 2003 --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.postinst +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.postinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +USER_NAME=speech-dispatcher +HOME_DIR=/var/run/speech-dispatcher + +if ! id -u $USER_NAME >/dev/null 2>&1; then + adduser --quiet --system --home $HOME_DIR --ingroup audio \ + --shell /bin/sh --disabled-login \ + --gecos 'Speech Dispatcher' $USER_NAME + chown -R $USER_NAME $HOME_DIR +elif ! test -d $HOME_DIR; then + if test -d /var/run/speechd; then + mv /var/run/speechd $HOME_DIR + else + mkdir $HOME_DIR + fi +fi + +chown -R $USER_NAME /var/log/speech-dispatcher + +#DEBHELPER# --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.init +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.init @@ -0,0 +1,75 @@ +#! /bin/sh + +### BEGIN INIT INFO +# Provides: speech-dispatcher +# Required-Start: +# Required-Stop: +# Should-Start: festival +# Should-Stop: festival +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# Short-Description: Speech Dispatcher +# Description: Common interface to speech synthesizers +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/bin/speech-dispatcher +PIDFILE=/var/run/speech-dispatcher/speech-dispatcher.pid +NAME=speech-dispatcher +DESC='Speech Dispatcher' +USER=speech-dispatcher + +[ -r /etc/default/speech-dispatcher ] && . /etc/default/speech-dispatcher + +if [ "$RUN_SPEECHD" != "yes" ]; then + echo "Not starting speech-dispatcher, as /etc/default/speech-dispatcher does not" + echo "have RUN_SPEECHD=yes." + exit 0 +fi + +test -f $DAEMON || exit 0 +if ! test -d /var/run/speech-dispatcher ; then + mkdir -p /var/run/speech-dispatcher + chown speech-dispatcher.audio /var/run/speech-dispatcher +fi + +. /lib/lsb/init-functions + +set -e + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "speech-dispatcher" + start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE \ + --exec $DAEMON + log_end_msg $? + ;; + stop) + log_daemon_msg "Stopping $DESC" "speech-dispatcher" + start-stop-daemon --oknodo --stop --quiet --user $USER \ + --pidfile $PIDFILE --exec $DAEMON + log_end_msg $? + ;; + reload|force-reload) + log_daemon_msg "Reloading $DESC configuration files" "speech-dispatcher" + start-stop-daemon --oknodo --stop --signal 1 --quiet --user $USER \ + --pidfile $PIDFILE --exec $DAEMON + log_end_msg $? + ;; + restart) + log_daemon_msg "Restarting $DESC" "speech-dispatcher" + start-stop-daemon --oknodo --stop --quiet --user $USER \ + --pidfile $PIDFILE --exec $DAEMON + sleep 3 + start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE \ + --exec $DAEMON + log_end_msg $? + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- speech-dispatcher-0.6.7+git20090514.orig/debian/python-speechd.manpages +++ speech-dispatcher-0.6.7+git20090514/debian/python-speechd.manpages @@ -0,0 +1 @@ +debian/spd-conf.1 --- speech-dispatcher-0.6.7+git20090514.orig/debian/speechd-server-spawn.1 +++ speech-dispatcher-0.6.7+git20090514/debian/speechd-server-spawn.1 @@ -0,0 +1,28 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SPEECHD-SERVER-SPAWN 1 "August 24, 2009" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +speechd-server-spawn \- A script to assist with the loading of speech-dispatcher from the C and Python APIs +.SH SYNOPSIS +.B speechd-server-spawn +.SH DESCRIPTION +.B speechd-server-spawn +Is a script to assit with the automatic loading of a speech-dispatcher server process for client applications using the python or C APIs. If no speech-dispatcher server is running, it will load speech-dispatcher as the current user, or if root, the system speech-dispatcher process using the system level init script. The script will then echo the PID of the running speech-dispatcher server. +.SH AUTHOR +speechd-server-spawn was written by Luke Yelavich for use with speech-dispatcher integration in Ubuntu. +.PP +This manual page was written by Luke Yelavich , for the Ubuntu project (but may be used by others). --- speech-dispatcher-0.6.7+git20090514.orig/debian/copyright +++ speech-dispatcher-0.6.7+git20090514/debian/copyright @@ -0,0 +1,23 @@ +This package was debianized by Milan Zamazal . + +It was downloaded from http://www.freebsoft.org/pub/projects/speechd/ . + +Copyright: + + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Brailcom, o.p.s. + + 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 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +On Debian systems, you can find the GNU General Public License in the file +/usr/share/common-licenses/GPL. + +The Debian management files in the debian/ subdirectory written by Milan +Zamazal are put in public domain. --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.README.Debian +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.README.Debian @@ -0,0 +1,11 @@ +Speech-dispatcher has been configured to use the espeak speech synthesizer +by default, and will use the default alsa device. To change the sound +device used, edit /etc/speechd/modules/espeak.conf and adjust accordingly. + +* Log file permissions + +Please note all Speech Dispatcher log files can reveal your user interactions +and texts you read through Speech Dispatcher, among others. For this reason, +the /var/log/speech-dispatcher/ directory is world-unreadable by default. + + -- Luke Yelavich , Tue, 27 Nov 2007 08:25:42 +1100 --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.postrm +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.postrm @@ -0,0 +1,7 @@ +#!/bin/sh -e + +#DEBHELPER# + +if test "$1" = "purge"; then + rm -rf /var/log/speech-dispatcher +fi --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.default +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.default @@ -0,0 +1,2 @@ +# Change to yes if you would like speech-dispatcher to run as a system service. +RUN_SPEECHD=no --- speech-dispatcher-0.6.7+git20090514.orig/debian/cl-speech-dispatcher.links +++ speech-dispatcher-0.6.7+git20090514/debian/cl-speech-dispatcher.links @@ -0,0 +1 @@ +usr/share/common-lisp/source/ssip/ssip.asd usr/share/common-lisp/systems/ssip.asd --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.logrotate +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.logrotate @@ -0,0 +1,18 @@ +daily +compress +missingok +sharedscripts + +/var/log/speech-dispatcher/speech-dispatcher.log /var/log/speech-dispatcher/speech-dispatcher-protocol.log { + rotate 7 + postrotate + /etc/init.d/speech-dispatcher reload >/dev/null + endscript +} + +/var/log/speech-dispatcher/debug-epos-generic /var/log/speech-dispatcher/debug-festival /var/log/speech-dispatcher/debug-flite { + rotate 2 + postrotate + /etc/init.d/speech-dispatcher reload >/dev/null + endscript +} --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.info +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.info @@ -0,0 +1,3 @@ +doc/speech-dispatcher.info* +doc/ssip.info* +doc/spd-say.info* --- speech-dispatcher-0.6.7+git20090514.orig/debian/cl-speech-dispatcher.postinst +++ speech-dispatcher-0.6.7+git20090514/debian/cl-speech-dispatcher.postinst @@ -0,0 +1,46 @@ +#! /bin/sh +# postinst script for cl-speech-dispatcher +# +# see: dh_installdeb(1) + +set -e + +# package name according to lisp +LISP_PKG=ssip + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# +# quoting from the policy: +# Any necessary prompting should almost always be confined to the +# post-installation script, and should be protected with a conditional +# so that unnecessary prompting doesn't happen if a package's +# installation fails and the `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + +case "$1" in + configure) + register-common-lisp-source ${LISP_PKG} + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- speech-dispatcher-0.6.7+git20090514.orig/debian/README.source +++ speech-dispatcher-0.6.7+git20090514/debian/README.source @@ -0,0 +1,3 @@ +This package uses dpatch via the cdbs patch rules. To view the source with +patches applied, run "debian/rules patch". You will need cdbs, debhelper, and +dpatch installed to do so. --- speech-dispatcher-0.6.7+git20090514.orig/debian/libspeechd2.install +++ speech-dispatcher-0.6.7+git20090514/debian/libspeechd2.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/libspeechd.so.* --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher-flite.install +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher-flite.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/speech-dispatcher-modules/sd_flite --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.install +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.install @@ -0,0 +1,16 @@ +debian/tmp/usr/bin/speech-dispatcher +debian/tmp/usr/bin/speechd-server-spawn +debian/tmp/usr/bin/spd-say +debian/tmp/usr/lib/speech-dispatcher/*.so.* +debian/tmp/usr/lib/speech-dispatcher-modules/sd_cicero +debian/tmp/usr/lib/speech-dispatcher-modules/sd_dummy +debian/tmp/usr/lib/speech-dispatcher-modules/sd_espeak +debian/tmp/usr/lib/speech-dispatcher-modules/sd_festival +debian/tmp/usr/lib/speech-dispatcher-modules/sd_generic +debian/tmp/usr/share/lintian +debian/tmp/usr/share/sounds/speech-dispatcher/dummy-message.wav +debian/tmp/usr/share/speech-dispatcher/conf/clients +debian/tmp/usr/share/speech-dispatcher/conf/modules +debian/tmp/usr/share/speech-dispatcher/conf/speechd.conf +debian/tmp/etc/speech-dispatcher +debian/tmp/var/log/speech-dispatcher --- speech-dispatcher-0.6.7+git20090514.orig/debian/speech-dispatcher.manpages +++ speech-dispatcher-0.6.7+git20090514/debian/speech-dispatcher.manpages @@ -0,0 +1,2 @@ +debian/speech-dispatcher.7 +debian/speechd-server-spawn.1 --- speech-dispatcher-0.6.7+git20090514.orig/debian/compat +++ speech-dispatcher-0.6.7+git20090514/debian/compat @@ -0,0 +1 @@ +7 --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/11_config_Set_the_audio_output_to_be_pulse_alsa_by_defa.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/11_config_Set_the_audio_output_to_be_pulse_alsa_by_defa.dpatch @@ -0,0 +1,66 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From ce127be6fcfbcb93cb4bd891b662e8483c11f4c5 Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Wed, 8 Jul 2009 11:08:06 +1000 +Subject: [PATCH 11/16] config - Set the audio output to be "pulse,alsa" by default + +Now we have graceful audio fallback support, we can set the default output +to something that should ensure audio output on any new speech-dispatcher +install. The output order should be self explanetory. +--- + ChangeLog | 8 ++++++++ + config/speechd.conf.in | 2 +- + src/server/config.c | 2 +- + 3 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 7e5e0e3..2c09a39 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,11 @@ ++2009-07-08 Luke Yelavich ++ ++ * src/server/config.c (load_default_global_set_options): Set the default ++ audio output to "pulse,alsa". ++ ++ * config/speechd.conf.in: Set the default audio output to ++ "pulse,alsa". ++ + 2009-06-23 Luke Yelavich + + * src/server/config.c: Add new macro GLOBAL_SET_LOGLEVEL, to set the +diff --git a/config/speechd.conf.in b/config/speechd.conf.in +index abd458f..2bc6c49 100644 +--- a/config/speechd.conf.in ++++ b/config/speechd.conf.in +@@ -142,7 +142,7 @@ DefaultVolume 100 + # PulseAudio is a sound server for POSIX and WIN32 systems. + # + +-# AudioOutputMethod "alsa" ++# AudioOutputMethod "pulse,alsa" + + # What ALSA device to use when Advanced Linux Sound Architecture is + # chosen for the audio output. +diff --git a/src/server/config.c b/src/server/config.c +index f47af0d..520d937 100644 +--- a/src/server/config.c ++++ b/src/server/config.c +@@ -444,7 +444,7 @@ load_default_global_set_options() + GlobalFDSet.ssml_mode = 0; + GlobalFDSet.notification = NOTIFY_NOTHING; + +- GlobalFDSet.audio_output_method = strdup("alsa"); ++ GlobalFDSet.audio_output_method = strdup("pulse,alsa"); + GlobalFDSet.audio_oss_device = strdup("/dev/dsp"); + GlobalFDSet.audio_alsa_device = strdup("default"); + GlobalFDSet.audio_nas_server = strdup("tcp/localhost:5450"); +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/02_python_makefile.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/02_python_makefile.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_python_makefile.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad speech-dispatcher-0.6.7+git20090514~/src/python/Makefile.in speech-dispatcher-0.6.7+git20090514/src/python/Makefile.in +--- speech-dispatcher-0.6.7+git20090514~/src/python/Makefile.in 2009-08-24 12:46:55.000000000 +1000 ++++ speech-dispatcher-0.6.7+git20090514/src/python/Makefile.in 2009-08-24 12:53:45.633388704 +1000 +@@ -15,14 +15,15 @@ + + install: + if test -x /usr/bin/python; then \ +- ./setup.py install --prefix=${DESTDIR}${prefix}; \ ++ ./setup.py install --no-compile --install-layout=deb --prefix=${DESTDIR}${prefix}; \ + else \ + echo "Python not found, not installing speechd module nor spd-conf"; \ + fi ++ mkdir -p ${DESTDIR}@snddatadir@ + cp speechd_config/test.wav ${DESTDIR}@snddatadir@ + + if test ! -d ${DESTDIR}@spddesktopconforigdir@; then \ +- mkdir ${DESTDIR}@spddesktopconforigdir@; \ ++ mkdir -p ${DESTDIR}@spddesktopconforigdir@; \ + fi + + cp speechd_config/speechd.desktop ${DESTDIR}@spddesktopconforigdir@/ --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/06_audio_alsa_audio_oss_Take_the_log_level_into_account.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/06_audio_alsa_audio_oss_Take_the_log_level_into_account.dpatch @@ -0,0 +1,72 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 24b3aeae1ff69e224b6d83d63044800142a3940c Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 23 Jun 2009 13:45:46 +1000 +Subject: [PATCH 06/16] audio/alsa, audio/oss - Take the log level into account before logging a message. + +The MSG macro in the ALSA and OSS OUTPUT code logs messages to the log file +of the module without taking the log level setting into account. Adjust the +MSG macro to log the message if the log level for the message is equal to, or +less than the log level setting. +--- + ChangeLog | 6 ++++++ + src/audio/alsa.c | 4 ++-- + src/audio/oss.c | 4 ++-- + 3 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index a00ce71..83955c1 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -15,6 +15,12 @@ + * src/modules/module_main.c (main): Add a call to do_loglevel to set + the log level for the module. + ++ * src/audio/alsa.c: Adjust the MSG macro to take the log level setting ++ into account before logging a message. ++ ++ * src/audio/oss.c: Adjust the MSG macro to take the log level setting ++ into account before logging a message. ++ + 2009-06-22 Luke Yelavich + + * src/server/output.c: Add output_send_loglevel_setting function +diff --git a/src/audio/alsa.c b/src/audio/alsa.c +index cfe2cc2..a25cc8b 100644 +--- a/src/audio/alsa.c ++++ b/src/audio/alsa.c +@@ -56,8 +56,8 @@ do { \ + #endif + + /* Put a message into the logfile (stderr) */ +-#define MSG(arg...) \ +- { \ ++#define MSG(level, arg...) \ ++ if(level <= log_level){ \ + time_t t; \ + struct timeval tv; \ + char *tstr; \ +diff --git a/src/audio/oss.c b/src/audio/oss.c +index f8cc4cb..a65f12e 100644 +--- a/src/audio/oss.c ++++ b/src/audio/oss.c +@@ -38,8 +38,8 @@ int oss_play(AudioID *id, AudioTrack track); + int oss_set_volume(AudioID*id, int volume); + + /* Put a message into the logfile (stderr) */ +-#define MSG(arg...) \ +- { \ ++#define MSG(level, arg...) \ ++ if(level <= log_level){ \ + time_t t; \ + struct timeval tv; \ + char *tstr; \ +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/05_modules_Receive_and_set_log_level_from_speechd_serve.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/05_modules_Receive_and_set_log_level_from_speechd_serve.dpatch @@ -0,0 +1,140 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From f0f85c660c6a433a26d7bcc5c67e3922ab3639f0 Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 23 Jun 2009 11:18:46 +1000 +Subject: [PATCH 05/16] modules - Receive and set log level from speechd server + +Receive the log level value sent from the speechd server, and set the +appropriate variable. +--- + ChangeLog | 9 +++++++ + src/modules/module_main.c | 1 + + src/modules/module_utils.c | 52 ++++++++++++++++++++++++++++++++++++++++++++ + src/modules/module_utils.h | 3 ++ + 4 files changed, 65 insertions(+), 0 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 2f2af09..a00ce71 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -6,6 +6,15 @@ + + * src/server/output.c (output_send_loglevel_setting): Fix typo. + ++ * src/modules/module_utils.c: ++ - Add new macro SET_LOGLEVEL_NUM to set the log level variable for ++ speech modules. ++ - Add new function do_loglevel, to retrieve and call the above ++ mentioned macro to set the log level. ++ ++ * src/modules/module_main.c (main): Add a call to do_loglevel to set ++ the log level for the module. ++ + 2009-06-22 Luke Yelavich + + * src/server/output.c: Add output_send_loglevel_setting function +diff --git a/src/modules/module_main.c b/src/modules/module_main.c +index d40fe0b..3c3ca36 100644 +--- a/src/modules/module_main.c ++++ b/src/modules/module_main.c +@@ -153,6 +153,7 @@ main(int argc, char *argv[]) + else PROCESS_CMD(LIST VOICES, do_list_voices) + else PROCESS_CMD(SET, do_set) + else PROCESS_CMD(AUDIO, do_audio) ++ else PROCESS_CMD(LOGLEVEL, do_loglevel) + else PROCESS_CMD_W_ARGS(DEBUG, do_debug) + else PROCESS_CMD_NRP(QUIT, do_quit) + else{ +diff --git a/src/modules/module_utils.c b/src/modules/module_utils.c +index 5eaa3a1..184994b 100644 +--- a/src/modules/module_utils.c ++++ b/src/modules/module_utils.c +@@ -301,6 +301,58 @@ do_audio(void) + return msg; + } + ++#define SET_LOGLEVEL_NUM(name, cond) \ ++ if(!strcmp(cur_item, #name)){ \ ++ number = strtol(cur_value, &tptr, 10); \ ++ if(!(cond)){ err = 2; continue; } \ ++ if (tptr == cur_value){ err = 2; continue; } \ ++ log_level = number; \ ++ } ++ ++char* ++do_loglevel(void) ++{ ++ char *cur_item = NULL; ++ char *cur_value = NULL; ++ char *line = NULL; ++ int ret; ++ size_t n; ++ int number; char *tptr; ++ int err = 0; /* Error status */ ++ char *status; ++ char *msg; ++ ++ printf("207 OK RECEIVING LOGLEVEL SETTINGS\n"); ++ fflush(stdout); ++ ++ while(1){ ++ line = NULL; n = 0; ++ ret = getline(&line, &n, stdin); ++ if (ret == -1){ err=1; break; } ++ if (!strcmp(line, ".\n")){ ++ xfree(line); ++ break; ++ } ++ if (!err){ ++ cur_item = strtok(line, "="); ++ if (cur_item == NULL){ err=1; continue; } ++ cur_value = strtok(NULL, "\n"); ++ if (cur_value == NULL){ err=1; continue; } ++ ++ SET_LOGLEVEL_NUM(log_level, 1) ++ else err=2; /* Unknown parameter */ ++ } ++ xfree(line); ++ } ++ ++ if (err == 1) return strdup("302 ERROR BAD SYNTAX"); ++ if (err == 2) return strdup("303 ERROR INVALID PARAMETER OR VALUE"); ++ ++ msg = g_strdup_printf("203 OK LOG LEVEL SET"); ++ ++ return msg; ++} ++ + char* + do_debug(char* cmd_buf) + { +diff --git a/src/modules/module_utils.h b/src/modules/module_utils.h +index e33865a..3e4e75e 100644 +--- a/src/modules/module_utils.h ++++ b/src/modules/module_utils.h +@@ -58,6 +58,8 @@ typedef struct{ + int audio_pulse_min_request; + }SPDAudioSettings; + ++int log_level; ++ + AudioID *module_audio_id; + AudioOutputType module_audio_output_method; + char* module_audio_pars[10]; +@@ -215,6 +217,7 @@ void do_pause(void); + char* do_list_voices(void); + char* do_set(void); + char* do_audio(void); ++char* do_loglevel(void); + char* do_debug(char *cmd_buf); + void do_quit(void); + +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/08_audio_modules_Set_libspdaudio_s_internal_log_level_v.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/08_audio_modules_Set_libspdaudio_s_internal_log_level_v.dpatch @@ -0,0 +1,94 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From d9e2f21d4d53a30ece51abd36fd24ff7736f6501 Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 23 Jun 2009 15:29:54 +1000 +Subject: [PATCH 08/16] audio, modules - Set libspdaudio's internal log_level variable + +Since the audio output code is a shared library, it needs to be passed the +log level setting from the parent module making use of the audio output. +--- + ChangeLog | 4 ++++ + src/audio/spd_audio.c | 8 ++++++++ + src/audio/spd_audio.h | 4 ++++ + src/modules/module_utils.c | 1 + + 4 files changed, 17 insertions(+), 0 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index bfa4180..7e5e0e3 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -11,6 +11,7 @@ + speech modules. + - Add new function do_loglevel, to retrieve and call the above + mentioned macro to set the log level. ++ - Add a call to spd_audio_set_loglevel to the SET_LOGLEVEL_NUM macro. + + * src/modules/module_main.c (main): Add a call to do_loglevel to set + the log level for the module. +@@ -25,6 +26,9 @@ + before logging a message. + - Assign all log messages to a log level. + ++ * src/audio/spd_audio.c: Add a new function spd_audio_set_loglevel to ++ set the internal log_level variable for the libspdaudio library. ++ + 2009-06-22 Luke Yelavich + + * src/server/output.c: Add output_send_loglevel_setting function +diff --git a/src/audio/spd_audio.c b/src/audio/spd_audio.c +index e684b10..fac2df2 100644 +--- a/src/audio/spd_audio.c ++++ b/src/audio/spd_audio.c +@@ -336,3 +336,11 @@ spd_audio_set_volume(AudioID *id, int volume) + id->volume = volume; + return 0; + } ++ ++void ++spd_audio_set_loglevel(int level) ++{ ++ if (level){ ++ log_level = level; ++ } ++} +diff --git a/src/audio/spd_audio.h b/src/audio/spd_audio.h +index 53a1066..a86454d 100644 +--- a/src/audio/spd_audio.h ++++ b/src/audio/spd_audio.h +@@ -155,6 +155,8 @@ typedef struct{ + + AudioID* spd_audio_open(AudioOutputType type, void **pars, char **error); + ++int log_level; ++ + int spd_audio_play(AudioID *id, AudioTrack track, AudioFormat format); + + int spd_audio_stop(AudioID *id); +@@ -163,4 +165,6 @@ int spd_audio_close(AudioID *id); + + int spd_audio_set_volume(AudioID *id, int volume); + ++void spd_audio_set_loglevel(int level); ++ + #endif /* ifndef #__SPD_AUDIO_H */ +diff --git a/src/modules/module_utils.c b/src/modules/module_utils.c +index 184994b..8b5dd7f 100644 +--- a/src/modules/module_utils.c ++++ b/src/modules/module_utils.c +@@ -307,6 +307,7 @@ do_audio(void) + if(!(cond)){ err = 2; continue; } \ + if (tptr == cur_value){ err = 2; continue; } \ + log_level = number; \ ++ spd_audio_set_loglevel(log_level); \ + } + + char* +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/07_audio_alsa_audio_oss_Assign_all_log_messages_a_log_l.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/07_audio_alsa_audio_oss_Assign_all_log_messages_a_log_l.dpatch @@ -0,0 +1,540 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 189535173f88c76dddeef8b50870d2129cfbc111 Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 23 Jun 2009 14:20:04 +1000 +Subject: [PATCH 07/16] audio/alsa, audio/oss - Assign all log messages a log level + +All log messages that are logged using the MSG macro now have a log level +associated with them. The log levels that are currently assigned may not be +appropriate, however that can be tweaked at a later date. The documentation +also needs updating to indicate that the log level extends to audio output +activity logging. +--- + ChangeLog | 14 ++++++--- + src/audio/alsa.c | 82 +++++++++++++++++++++++++++--------------------------- + src/audio/oss.c | 34 +++++++++++----------- + 3 files changed, 67 insertions(+), 63 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 83955c1..bfa4180 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -15,11 +15,15 @@ + * src/modules/module_main.c (main): Add a call to do_loglevel to set + the log level for the module. + +- * src/audio/alsa.c: Adjust the MSG macro to take the log level setting +- into account before logging a message. +- +- * src/audio/oss.c: Adjust the MSG macro to take the log level setting +- into account before logging a message. ++ * src/audio/alsa.c: ++ - Adjust the MSG macro to take the log level setting into account ++ before logging a message. ++ - Assign all log messages to a log level. ++ ++ * src/audio/oss.c: ++ - Adjust the MSG macro to take the log level setting into account ++ before logging a message. ++ - Assign all log messages to a log level. + + 2009-06-22 Luke Yelavich + +diff --git a/src/audio/alsa.c b/src/audio/alsa.c +index a25cc8b..5091f68 100644 +--- a/src/audio/alsa.c ++++ b/src/audio/alsa.c +@@ -99,7 +99,7 @@ xrun(AudioID *id) + + if (id == NULL) return -1; + +- MSG("WARNING: Entering XRUN handler"); ++ MSG(1, "WARNING: Entering XRUN handler"); + + snd_pcm_status_alloca(&status); + if ((res = snd_pcm_status(id->alsa_pcm, status))<0) { +@@ -112,7 +112,7 @@ xrun(AudioID *id) + gettimeofday(&now, 0); + snd_pcm_status_get_trigger_tstamp(status, &tstamp); + timersub(&now, &tstamp, &diff); +- MSG("underrun!!! (at least %.3f ms long)", ++ MSG(1, "underrun!!! (at least %.3f ms long)", + diff.tv_sec * 1000 + diff.tv_usec / 1000.0); + if ((res = snd_pcm_prepare(id->alsa_pcm)) < 0) { + ERR("xrun: prepare error: %s", snd_strerror(res)); +@@ -134,7 +134,7 @@ suspend(AudioID *id) + { + int res; + +- MSG("WARNING: Entering SUSPEND handler."); ++ MSG(1, "WARNING: Entering SUSPEND handler."); + + if (id == NULL) return -1; + +@@ -160,7 +160,7 @@ _alsa_open(AudioID *id) + { + int err; + +- MSG("Opening ALSA device"); ++ MSG(1, "Opening ALSA device"); + fflush(stderr); + + /* Open the device */ +@@ -172,14 +172,14 @@ _alsa_open(AudioID *id) + + /* Allocate space for hw_params (description of the sound parameters) */ + /* Allocate space for sw_params (description of the sound parameters) */ +- MSG("Allocating new sw_params structure"); ++ MSG(2, "Allocating new sw_params structure"); + if ((err = snd_pcm_sw_params_malloc (&id->alsa_sw_params)) < 0) { + ERR("Cannot allocate hardware parameter structure (%s)", + snd_strerror(err)); + return -1; + } + +- MSG("Opening ALSA device ... success"); ++ MSG(1, "Opening ALSA device ... success"); + + return 0; + } +@@ -193,7 +193,7 @@ _alsa_close(AudioID *id) + { + int err; + +- MSG("Closing ALSA device"); ++ MSG(1, "Closing ALSA device"); + + if (id->alsa_opened == 0) return 0; + +@@ -201,7 +201,7 @@ _alsa_close(AudioID *id) + id->alsa_opened = 0; + + if ((err = snd_pcm_close (id->alsa_pcm)) < 0) { +- MSG("Cannot close ALSA device (%s)", snd_strerror (err)); ++ MSG(2, "Cannot close ALSA device (%s)", snd_strerror (err)); + return -1; + } + +@@ -210,7 +210,7 @@ _alsa_close(AudioID *id) + free(id->alsa_poll_fds); + pthread_mutex_unlock(&id->alsa_pipe_mutex); + +- MSG("Closing ALSA device ... success"); ++ MSG(1, "Closing ALSA device ... success"); + + return 0; + } +@@ -243,7 +243,7 @@ alsa_open(AudioID *id, void **pars) + return -1; + } + +- MSG("Opening ALSA sound output"); ++ MSG(1, "Opening ALSA sound output"); + + id->alsa_device_name = strdup(pars[0]); + +@@ -253,7 +253,7 @@ alsa_open(AudioID *id, void **pars) + return -1; + } + +- MSG("Device '%s' initialized succesfully.", (char*) pars[0]); ++ MSG(1, "Device '%s' initialized succesfully.", (char*) pars[0]); + + return 0; + } +@@ -269,7 +269,7 @@ alsa_close(AudioID *id) + ERR("Cannot close audio device"); + return -1; + } +- MSG("ALSA closed."); ++ MSG(1, "ALSA closed."); + + id = NULL; + +@@ -299,7 +299,7 @@ int wait_for_poll(AudioID *id, struct pollfd *alsa_poll_fds, + descriptors*/ + if (revents = id->alsa_poll_fds[count-1].revents){ + if (revents & POLLIN){ +- MSG("wait_for_poll: stop requested"); ++ MSG(4, "wait_for_poll: stop requested"); + return 1; + } + } +@@ -313,24 +313,24 @@ int wait_for_poll(AudioID *id, struct pollfd *alsa_poll_fds, + + if (SND_PCM_STATE_XRUN == state){ + if (!draining){ +- MSG("WARNING: Buffer underrun detected!"); ++ MSG(1, "WARNING: Buffer underrun detected!"); + if (xrun(id) != 0) return -1; + return 0; + }else{ +- MSG("Poll: Playback terminated"); ++ MSG(4, "Poll: Playback terminated"); + return 0; + } + } + + if (SND_PCM_STATE_SUSPENDED == state){ +- MSG("WARNING: Suspend detected!"); ++ MSG(1, "WARNING: Suspend detected!"); + if (suspend(id) != 0) return -1; + return 0; + } + + /* Check for errors */ + if (revents & POLLERR) { +- MSG("wait_for_poll: poll revents says POLLERR"); ++ MSG(4, "wait_for_poll: poll revents says POLLERR"); + return -EIO; + } + +@@ -395,7 +395,7 @@ alsa_play(AudioID *id, AudioTrack track) + + pthread_mutex_lock(&id->alsa_pipe_mutex); + +- MSG("Start of playback on ALSA"); ++ MSG(2, "Start of playback on ALSA"); + + /* Is it not an empty track? */ + /* Passing an empty track is not an error */ +@@ -404,7 +404,7 @@ alsa_play(AudioID *id, AudioTrack track) + return 0; + } + /* Allocate space for hw_params (description of the sound parameters) */ +- MSG("Allocating new hw_params structure"); ++ MSG(2, "Allocating new hw_params structure"); + if ((err = snd_pcm_hw_params_malloc (&id->alsa_hw_params)) < 0) { + ERR("Cannot allocate hardware parameter structure (%s)", + snd_strerror(err)); +@@ -459,7 +459,7 @@ alsa_play(AudioID *id, AudioTrack track) + + /* Report current state */ + state = snd_pcm_state(id->alsa_pcm); +- MSG("PCM state before setting audio parameters: %s", ++ MSG(4, "PCM state before setting audio parameters: %s", + snd_pcm_state_name(state)); + + /* Choose the correct format */ +@@ -482,7 +482,7 @@ alsa_play(AudioID *id, AudioTrack track) + } + + /* Set access mode, bitrate, sample rate and channels */ +- MSG("Setting access type to INTERLEAVED"); ++ MSG(4, "Setting access type to INTERLEAVED"); + if ((err = snd_pcm_hw_params_set_access (id->alsa_pcm, + id->alsa_hw_params, + SND_PCM_ACCESS_RW_INTERLEAVED) +@@ -492,14 +492,14 @@ alsa_play(AudioID *id, AudioTrack track) + return -1; + } + +- MSG("Setting sample format to %s", snd_pcm_format_name(format)); ++ MSG(4, "Setting sample format to %s", snd_pcm_format_name(format)); + if ((err = snd_pcm_hw_params_set_format (id->alsa_pcm, id->alsa_hw_params, format)) < 0) { + ERR("Cannot set sample format (%s)", + snd_strerror (err)); + return -1; + } + +- MSG("Setting sample rate to %i", track.sample_rate); ++ MSG(4, "Setting sample rate to %i", track.sample_rate); + sr = track.sample_rate; + if ((err = snd_pcm_hw_params_set_rate_near (id->alsa_pcm, id->alsa_hw_params, + &sr, 0)) < 0) { +@@ -509,17 +509,17 @@ alsa_play(AudioID *id, AudioTrack track) + return -1; + } + +- MSG("Setting channel count to %i", track.num_channels); ++ MSG(4, "Setting channel count to %i", track.num_channels); + if ((err = snd_pcm_hw_params_set_channels (id->alsa_pcm, id->alsa_hw_params, + track.num_channels)) < 0) { +- MSG("cannot set channel count (%s)", ++ MSG(4, "cannot set channel count (%s)", + snd_strerror (err)); + return -1; + } + +- MSG("Setting hardware parameters on the ALSA device"); ++ MSG(4, "Setting hardware parameters on the ALSA device"); + if ((err = snd_pcm_hw_params (id->alsa_pcm, id->alsa_hw_params)) < 0) { +- MSG("cannot set parameters (%s) state=%s", ++ MSG(4, "cannot set parameters (%s) state=%s", + snd_strerror (err), snd_pcm_state_name(snd_pcm_state(id->alsa_pcm))); + return -1; + } +@@ -536,7 +536,7 @@ alsa_play(AudioID *id, AudioTrack track) + ERR("Unable to get buffer size for playback: %s\n", snd_strerror(err)); + return -1; + } +- MSG("Buffer size on ALSA device is %d bytes", (int) id->alsa_buffer_size); ++ MSG(4, "Buffer size on ALSA device is %d bytes", (int) id->alsa_buffer_size); + + /* This is probably better left for the device driver to decide */ + /* allow the transfer when at least period_size samples can be processed */ +@@ -557,7 +557,7 @@ alsa_play(AudioID *id, AudioTrack track) + // MSG("silent samples = %i", silent_samples); + + +- MSG("Preparing device for playback"); ++ MSG(4, "Preparing device for playback"); + if ((err = snd_pcm_prepare (id->alsa_pcm)) < 0) { + ERR("Cannot prepare audio interface for playback (%s)", + snd_strerror (err)); +@@ -567,10 +567,10 @@ alsa_play(AudioID *id, AudioTrack track) + + /* Calculate space needed to round up to nearest period size. */ + volume_size = bytes_per_sample*(track.num_samples + silent_samples); +- MSG("volume size = %i", (int) volume_size); ++ MSG(4, "volume size = %i", (int) volume_size); + + /* Create a copy of track with adjusted volume. */ +- MSG("Making copy of track and adjusting volume"); ++ MSG(4, "Making copy of track and adjusting volume"); + track_volume = track; + track_volume.samples = (short*) malloc(volume_size); + real_volume = ((float) id->volume + 100)/(float)200; +@@ -582,7 +582,7 @@ alsa_play(AudioID *id, AudioTrack track) + u_int8_t silent8; + + /* Fill remaining space with silence */ +- MSG("Filling with silence up to the period size, silent_samples=%d", (int) silent_samples); ++ MSG(4, "Filling with silence up to the period size, silent_samples=%d", (int) silent_samples); + /* TODO: This hangs. Why? + snd_pcm_format_set_silence(format, + track_volume.samples + (track.num_samples * bytes_per_sample), silent_samples); +@@ -621,14 +621,14 @@ alsa_play(AudioID *id, AudioTrack track) + // MSG("Sent %d of %d remaining bytes", ret*bytes_per_sample, num_bytes); + + if (ret == -EAGAIN) { +- MSG("Warning: Forced wait!"); ++ MSG(4, "Warning: Forced wait!"); + snd_pcm_wait(id->alsa_pcm, 100); + } else if (ret == -EPIPE) { + if (xrun(id) != 0) ERROR_EXIT(); + } else if (ret == -ESTRPIPE) { + if (suspend(id) != 0) ERROR_EXIT(); + } else if (ret == -EBUSY){ +- MSG("WARNING: sleeping while PCM BUSY"); ++ MSG(4, "WARNING: sleeping while PCM BUSY"); + usleep(100); + continue; + } else if (ret < 0) { +@@ -654,7 +654,7 @@ alsa_play(AudioID *id, AudioTrack track) + ERROR_EXIT(); + } + else if (err == 1){ +- MSG("Playback stopped"); ++ MSG(4, "Playback stopped"); + + /* Drop the playback on the sound device (probably + still in progress up till now) */ +@@ -673,7 +673,7 @@ alsa_play(AudioID *id, AudioTrack track) + /* Stop requests can be issued again */ + } + +- MSG("Draining..."); ++ MSG(4, "Draining..."); + + /* We want to next "device ready" notification only after the buffer is + already empty */ +@@ -694,7 +694,7 @@ alsa_play(AudioID *id, AudioTrack track) + ERR("Wait for poll() failed\n"); + return -1; + } else if (err == 1){ +- MSG("Playback stopped while draining"); ++ MSG(4, "Playback stopped while draining"); + + /* Drop the playback on the sound device (probably + still in progress up till now) */ +@@ -704,7 +704,7 @@ alsa_play(AudioID *id, AudioTrack track) + return -1; + } + } +- MSG("Draining terminated"); ++ MSG(4, "Draining terminated"); + + terminate: + /* Terminating (successfully or after a stop) */ +@@ -718,7 +718,7 @@ alsa_play(AudioID *id, AudioTrack track) + } + + +- MSG("Freeing HW parameters"); ++ MSG(2, "Freeing HW parameters"); + snd_pcm_hw_params_free(id->alsa_hw_params); + + pthread_mutex_lock(&id->alsa_pipe_mutex); +@@ -729,7 +729,7 @@ alsa_play(AudioID *id, AudioTrack track) + xfree(id->alsa_poll_fds); + pthread_mutex_unlock(&id->alsa_pipe_mutex); + +- MSG("End of playback on ALSA"); ++ MSG(1, "End of playback on ALSA"); + + return 0; + } +@@ -745,7 +745,7 @@ alsa_stop(AudioID *id) + char buf; + int ret; + +- MSG("STOP!"); ++ MSG(1, "STOP!"); + + pthread_mutex_lock(&id->alsa_pipe_mutex); + if (id->alsa_opened){ +diff --git a/src/audio/oss.c b/src/audio/oss.c +index a65f12e..b868557 100644 +--- a/src/audio/oss.c ++++ b/src/audio/oss.c +@@ -81,7 +81,7 @@ xfree(void* p) + int + _oss_open(AudioID *id) + { +- MSG("_oss_open()") ++ MSG(1, "_oss_open()") + pthread_mutex_lock(&id->fd_mutex); + + id->fd = open(id->device_name, O_WRONLY, 0); +@@ -100,7 +100,7 @@ _oss_open(AudioID *id) + int + _oss_close(AudioID *id) + { +- MSG("_oss_close()") ++ MSG(1, "_oss_close()") + if (id == NULL) return 0; + if (id->fd == 0) return 0; + +@@ -228,7 +228,7 @@ oss_play(AudioID *id, AudioTrack track) + return -3; + } + if (channels != track.num_channels){ +- MSG("Device doesn't support stereo sound.\n"); ++ MSG(1, "Device doesn't support stereo sound.\n"); + _oss_close(id); + return -4; + } +@@ -254,10 +254,10 @@ oss_play(AudioID *id, AudioTrack track) + /* Loop until all samples are played on the device. + In the meantime, wait in pthread_cond_timedwait for more data + or for interruption. */ +- MSG("Starting playback"); ++ MSG(4, "Starting playback"); + output_samples = track_volume.samples; + num_bytes = track.num_samples*bytes_per_sample; +- MSG("bytes to play: %d, (%f secs)", num_bytes, (((float) (num_bytes)/2) / (float) track.sample_rate)); ++ MSG(4, "bytes to play: %d, (%f secs)", num_bytes, (((float) (num_bytes)/2) / (float) track.sample_rate)); + while(num_bytes > 0) { + + /* OSS doesn't support non-blocking write, so lets check how much data +@@ -272,12 +272,12 @@ oss_play(AudioID *id, AudioTrack track) + /* If there is not enough space for a single fragment, try later. + (This shouldn't happen, it has very bad effect on synchronization!) */ + if (info.fragments == 0){ +- MSG("WARNING: There is not enough space for a single fragment, looping"); ++ MSG(4, "WARNING: There is not enough space for a single fragment, looping"); + usleep (100); + continue; + } + +- MSG("There is space for %d more fragments, fragment size is %d bytes", ++ MSG(4, "There is space for %d more fragments, fragment size is %d bytes", + info.fragments, info.fragsize); + + bytes = info.fragments * info.fragsize; +@@ -293,7 +293,7 @@ oss_play(AudioID *id, AudioTrack track) + num_bytes -= ret; + output_samples += ret/2; + +- MSG("%d bytes written to OSS, %d remaining", ret, num_bytes); ++ MSG(4, "%d bytes written to OSS, %d remaining", ret, num_bytes); + + /* If there is some more data that is less than a + full fragment, we need to write it immediatelly so +@@ -302,7 +302,7 @@ oss_play(AudioID *id, AudioTrack track) + && (num_bytes < info.fragsize) + && (bytes+num_bytes < info.bytes)){ + +- MSG("Writing the rest of the data (%d bytes) to OSS, not a full fragment", num_bytes); ++ MSG(4, "Writing the rest of the data (%d bytes) to OSS, not a full fragment", num_bytes); + + ret2 = write(id->fd, output_samples, num_bytes); + num_bytes -= ret2; +@@ -325,14 +325,14 @@ oss_play(AudioID *id, AudioTrack track) + in the first pass through the while() loop. Then our timer + will be DELAY nsecs backwards. + */ +- MSG("Now we will try to wait"); ++ MSG(4, "Now we will try to wait"); + pthread_mutex_lock(&id->pt_mutex); + lenght = (((float) (ret)/2) / (float) track.sample_rate); + if (!delay){ + delay = lenght>DELAY ? DELAY : lenght; + lenght -= delay; + } +- MSG("Wait for %f secs (begin: %f, delay: %f)", lenght, lenght+delay, delay) ++ MSG(4, "Wait for %f secs (begin: %f, delay: %f)", lenght, lenght+delay, delay) + gettimeofday(&now, NULL); + timeout.tv_sec = now.tv_sec + (int) lenght; + timeout.tv_nsec = now.tv_usec * 1000 + (lenght - (int) lenght) * 1000000000; +@@ -345,12 +345,12 @@ oss_play(AudioID *id, AudioTrack track) + // now.tv_sec, now.tv_usec*1000, timeout.tv_sec - now.tv_sec, timeout.tv_nsec-now.tv_usec*1000); + r = pthread_cond_timedwait(&id->pt_cond, &id->pt_mutex, &timeout); + pthread_mutex_unlock(&id->pt_mutex); +- MSG("End of wait"); ++ MSG(4, "End of wait"); + + /* The pthread_cond_timedwait was interrupted by change in the + condition variable? if so, terminate.*/ + if (r != ETIMEDOUT){ +- MSG("Playback stopped, %d", r); ++ MSG(4, "Playback stopped, %d", r); + break; + } + } +@@ -361,7 +361,7 @@ oss_play(AudioID *id, AudioTrack track) + /* Ugly hack: correct for the time we spend outside timing segments */ + delay -= 0.05; + +- MSG("Wait for the resting delay = %f secs", delay) ++ MSG(4, "Wait for the resting delay = %f secs", delay) + if ((delay > 0) && (r == ETIMEDOUT)){ + pthread_mutex_lock(&id->pt_mutex); + gettimeofday(&now, NULL); +@@ -376,7 +376,7 @@ oss_play(AudioID *id, AudioTrack track) + r = pthread_cond_timedwait(&id->pt_cond, &id->pt_mutex, &timeout); + pthread_mutex_unlock(&id->pt_mutex); + } +- MSG("End of wait"); ++ MSG(4, "End of wait"); + + if (track_volume.samples!=NULL) free(track_volume.samples); + +@@ -387,7 +387,7 @@ oss_play(AudioID *id, AudioTrack track) + access the device. */ + _oss_close(id); + +- MSG("Device closed"); ++ MSG(4, "Device closed"); + + return 0; + } +@@ -400,7 +400,7 @@ oss_stop(AudioID *id) + + if (id == NULL) return 0; + +- MSG("stop() called"); ++ MSG(4, "stop() called"); + + /* Stop the playback on /dev/dsp */ + pthread_mutex_lock(&id->fd_mutex); +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/09_modules_Support_graceful_audio_fallback.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/09_modules_Support_graceful_audio_fallback.dpatch @@ -0,0 +1,140 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 95f2e94db9615ce288ec60c9a45d26c47f000b3d Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Mon, 29 Jun 2009 12:42:53 +1000 +Subject: [PATCH 09/16] modules - Support graceful audio fallback + +Add support for graceful audio fallback for use with speech modules. This +allows a comma-separated list of possible audio output methods to be set +in the speech-dispatcher configuration file. The audio initialization code will +try each specified method in turn until either an audio output method gets +initialized successfully, or the list of specified audio outputs is tried, and +all fail. +--- + src/modules/module_utils.c | 99 ++++++++++++++++++++++++++++---------------- + 1 files changed, 63 insertions(+), 36 deletions(-) + +diff --git a/src/modules/module_utils.c b/src/modules/module_utils.c +index 8b5dd7f..67bc59b 100644 +--- a/src/modules/module_utils.c ++++ b/src/modules/module_utils.c +@@ -1073,47 +1073,74 @@ module_audio_init_spd(char **status_info) + char * error; + GString *info; + char *module_audio_pars[10]; ++ char *outputs; ++ int audio_output_set; + + info = g_string_new(""); ++ outputs = audio_settings.audio_output_method; + + DBG("Openning audio output system"); +- if (!strcmp(audio_settings.audio_output_method, "oss")){ +- DBG("Using OSS audio output method"); +- module_audio_pars[0] = strdup(audio_settings.audio_oss_device); +- module_audio_pars[1] = NULL; +- module_audio_id = spd_audio_open(AUDIO_OSS, (void**) module_audio_pars, &error); +- module_audio_output_method = AUDIO_OSS; ++ if (outputs[0]){ ++ const char *next = outputs; ++ size_t len; ++ ++ do{ ++ outputs = next; ++ next = strchr(outputs, ','); ++ ++ if (!outputs[0] || outputs[0] == ',') ++ continue; ++ ++ len = (next ? ((size_t)(next-outputs)) : strlen(outputs)); ++ ++ if (len == 3 && strncmp("oss", outputs, len) == 0){ ++ DBG("Using OSS audio output method"); ++ module_audio_pars[0] = strdup(audio_settings.audio_oss_device); ++ module_audio_pars[1] = NULL; ++ module_audio_id = spd_audio_open(AUDIO_OSS, (void**) module_audio_pars, &error); ++ if (module_audio_id){ ++ module_audio_output_method = AUDIO_OSS; ++ audio_output_set = 1; ++ } ++ } else if (len == 4 && strncmp("alsa", outputs, len) == 0){ ++ DBG("Using Alsa audio output method"); ++ module_audio_pars[0] = audio_settings.audio_alsa_device; ++ module_audio_pars[1] = NULL; ++ module_audio_id = spd_audio_open(AUDIO_ALSA, (void**) module_audio_pars, &error); ++ if (module_audio_id){ ++ module_audio_output_method = AUDIO_ALSA; ++ audio_output_set = 1; ++ } ++ } else if (len == 3 && strncmp("nas", outputs, len) == 0){ ++ DBG("Using NAS audio output method"); ++ module_audio_pars[0] = audio_settings.audio_nas_server; ++ module_audio_pars[1] = NULL; ++ module_audio_id = spd_audio_open(AUDIO_NAS, (void**) module_audio_pars, &error); ++ if (module_audio_id){ ++ module_audio_output_method = AUDIO_NAS; ++ audio_output_set = 1; ++ } ++ } else if (len == 5 && strncmp("pulse", outputs, len) == 0){ ++ DBG("Using PulseAudio output method"); ++ module_audio_pars[0] = (void *) audio_settings.audio_pulse_server; ++ module_audio_pars[1] = (void *) audio_settings.audio_pulse_max_length; ++ module_audio_pars[2] = (void *) audio_settings.audio_pulse_target_length; ++ module_audio_pars[3] = (void *) audio_settings.audio_pulse_pre_buffering; ++ module_audio_pars[4] = (void *) audio_settings.audio_pulse_min_request; ++ module_audio_pars[5] = NULL; ++ module_audio_id = spd_audio_open(AUDIO_PULSE, (void**) module_audio_pars, &error); ++ if (module_audio_id){ ++ module_audio_output_method = AUDIO_PULSE; ++ audio_output_set = 1; ++ } ++ } else{ ++ ABORT("Sound output method specified in configuration not supported. " ++ "Please choose 'oss', 'alsa', 'nas' or 'pulse'."); ++ } ++ } while(next++); + } +- else if (!strcmp(audio_settings.audio_output_method, "alsa")){ +- DBG("Using Alsa audio output method"); +- module_audio_pars[0] = audio_settings.audio_alsa_device; +- module_audio_pars[1] = NULL; +- module_audio_id = spd_audio_open(AUDIO_ALSA, (void**) module_audio_pars, &error); +- module_audio_output_method = AUDIO_ALSA; +- } +- else if (!strcmp(audio_settings.audio_output_method, "nas")){ +- DBG("Using NAS audio output method"); +- module_audio_pars[0] = audio_settings.audio_nas_server; +- module_audio_pars[1] = NULL; +- module_audio_id = spd_audio_open(AUDIO_NAS, (void**) module_audio_pars, &error); +- module_audio_output_method = AUDIO_NAS; +- } +- else if (!strcmp(audio_settings.audio_output_method, "pulse")){ +- DBG("Using PulseAudio output method"); +- module_audio_pars[0] = (void *) audio_settings.audio_pulse_server; +- module_audio_pars[1] = (void *) audio_settings.audio_pulse_max_length; +- module_audio_pars[2] = (void *) audio_settings.audio_pulse_target_length; +- module_audio_pars[3] = (void *) audio_settings.audio_pulse_pre_buffering; +- module_audio_pars[4] = (void *) audio_settings.audio_pulse_min_request; +- module_audio_pars[5] = NULL; +- module_audio_id = spd_audio_open(AUDIO_PULSE, (void**) module_audio_pars, &error); +- module_audio_output_method = AUDIO_PULSE; +- } +- else{ +- ABORT("Sound output method specified in configuration not supported. " +- "Please choose 'oss', 'alsa', 'nas' or 'pulse'."); +- } +- if (module_audio_id == NULL){ ++ ++ if (!audio_output_set){ + g_string_append_printf(info, "Opening sound device failed. Reason: %s. ", error); + ABORT("Can't open sound device."); + } +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/20_pulse_output_connect_to_server.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/20_pulse_output_connect_to_server.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 20_pulse_output_connect_to_server.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad speech-dispatcher-0.6.7+git20090514~/src/audio/pulse.c speech-dispatcher-0.6.7+git20090514/src/audio/pulse.c +--- speech-dispatcher-0.6.7+git20090514~/src/audio/pulse.c 2009-08-17 10:30:47.000000000 +1000 ++++ speech-dispatcher-0.6.7+git20090514/src/audio/pulse.c 2009-08-31 15:58:32.891717837 +1000 +@@ -1269,6 +1269,11 @@ + id->pulse_pre_buffering = (int) pars[3]; + id->pulse_min_request = (int) pars[4]; + ++ /* Is the server running? */ ++ if (!_pulse_open(id) { ++ return PULSE_ERROR; ++ } ++ + SHOW("PulseAudio sound output opened\n",""); + + return PULSE_OK; --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/00list +++ speech-dispatcher-0.6.7+git20090514/debian/patches/00list @@ -0,0 +1,17 @@ +02_python_makefile.dpatch +03_paths+files.dpatch +04_server_Send_log_level_configuration_setting_to_speec.dpatch +05_modules_Receive_and_set_log_level_from_speechd_serve.dpatch +06_audio_alsa_audio_oss_Take_the_log_level_into_account.dpatch +07_audio_alsa_audio_oss_Assign_all_log_messages_a_log_l.dpatch +08_audio_modules_Set_libspdaudio_s_internal_log_level_v.dpatch +09_modules_Support_graceful_audio_fallback.dpatch +10_modules_Fix_compiler_warning.dpatch +12_server_More_tightly_integrate_the_server_into_a_user.dpatch +13_server_Add_support_for_retrieving_current_voice_and_.dpatch +14_C_API_Allow_clients_to_define_their_own_version_of_S.dpatch +15_config_Load_system_wide_and_user_client_configuratio.dpatch +16_autospawn.dpatch +17_fix_compilation_error.dpatch +18_cleanup_c_api.dpatch +19_enable_autospawn_config.dpatch --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/14_C_API_Allow_clients_to_define_their_own_version_of_S.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/14_C_API_Allow_clients_to_define_their_own_version_of_S.dpatch @@ -0,0 +1,35 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From a378f1d13823c558797f1a669ff2151280adf3bf Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Mon, 27 Jul 2009 16:14:35 +1000 +Subject: [PATCH 15/16] C API - Allow clients to define their own version of SPD_DEBUG + +Thanks to Jeremy Whiting for the patch. +--- + src/c/api/libspeechd.h | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/src/c/api/libspeechd.h b/src/c/api/libspeechd.h +index 700afbe..576a299 100644 +--- a/src/c/api/libspeechd.h ++++ b/src/c/api/libspeechd.h +@@ -33,8 +33,10 @@ + extern "C" { + #endif + ++#ifdef LIBSPEECHD_DEBUG + /* Debugging */ + FILE* spd_debug; ++#endif + + /* Unless there is an fatal error, it doesn't print anything */ + #define SPD_FATAL(msg) { printf("Fatal error (libspeechd) [%s:%d]:"msg, __FILE__, __LINE__); fflush(stdout); exit(EXIT_FAILURE); } +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/04_server_Send_log_level_configuration_setting_to_speec.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/04_server_Send_log_level_configuration_setting_to_speec.dpatch @@ -0,0 +1,161 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 9c3fe67d1c213e86d37f3fa259ba3e394b118d55 Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 23 Jun 2009 11:12:00 +1000 +Subject: [PATCH 04/16] server - Send log level configuration setting to speech modules + +Send the log level configuration setting through to the speech modules as a +mandetory parameter, as logging is not yet configurable for speech modules, +causing undesirable log file sizes in most cases. +--- + ChangeLog | 17 +++++++++++++++++ + intl/fdset.h | 1 + + src/server/config.c | 15 ++++++++++++++- + src/server/module.c | 11 +++++++++++ + src/server/output.c | 19 +++++++++++++++++++ + src/server/output.h | 1 + + 6 files changed, 63 insertions(+), 1 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 66cc64d..2f2af09 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,20 @@ ++2009-06-23 Luke Yelavich ++ ++ * src/server/config.c: Add new macro GLOBAL_SET_LOGLEVEL, to set the ++ log level for both the server and speech modules. Make use of this ++ macro when reading the LogLevel setting from the configuration file. ++ ++ * src/server/output.c (output_send_loglevel_setting): Fix typo. ++ ++2009-06-22 Luke Yelavich ++ ++ * src/server/output.c: Add output_send_loglevel_setting function ++ to send the loglevel configuration setting through to speech modules. ++ ++ * src/server/module.c (load_output_module): Add a call to ++ output_send_loglevel_setting to send the log level configuration ++ setting to modules. ++ + 2009-05-14 Hynek Hanke + + * src/audio/pulse.c (_pulse_open): Typo. +diff --git a/intl/fdset.h b/intl/fdset.h +index 100211f..420efe0 100644 +--- a/intl/fdset.h ++++ b/intl/fdset.h +@@ -132,6 +132,7 @@ typedef struct{ + int audio_pulse_target_length; + int audio_pulse_pre_buffering; + int audio_pulse_min_request; ++ int log_level; + + /* TODO: Should be moved out */ + unsigned int hist_cur_uid; +diff --git a/src/server/config.c b/src/server/config.c +index 4cf38b5..f47af0d 100644 +--- a/src/server/config.c ++++ b/src/server/config.c +@@ -153,6 +153,19 @@ free_config_options(configoption_t *opts, int *num) + return NULL; \ + } + ++#define GLOBAL_SET_LOGLEVEL(name, arg, cond, str) \ ++ DOTCONF_CB(cb_ ## name) \ ++ { \ ++ int val = cmd->data.value; \ ++ if (cl_spec_section) \ ++ FATAL("This command isn't allowed in a client specific section!"); \ ++ if (!(cond)) FATAL(str); \ ++ if (!SpeechdOptions.arg ## _set){ \ ++ SpeechdOptions.arg = val; \ ++ GlobalFDSet.arg = val; \ ++ } \ ++ return NULL; \ ++ } + + /* == CALLBACK DEFINITIONS == */ + GLOBAL_FDSET_OPTION_CB_STR(DefaultModule, output_module); +@@ -183,7 +196,7 @@ GLOBAL_FDSET_OPTION_CB_SPECIAL(DefaultCapLetRecognition, cap_let_recogn, ECapLet + + SPEECHD_OPTION_CB_INT_M(LocalhostAccessOnly, localhost_access_only, val>=0, "Invalid access controll mode!"); + SPEECHD_OPTION_CB_INT_M(Port, port, val>=0, "Invalid port number!"); +-SPEECHD_OPTION_CB_INT_M(LogLevel, log_level, (val>=0)&&(val<=5), "Invalid log (verbosity) level!"); ++GLOBAL_SET_LOGLEVEL(LogLevel, log_level, (val>=0)&&(val<=5), "Invalid log (verbosity) level!"); + SPEECHD_OPTION_CB_INT(MaxHistoryMessages, max_history_messages, val>=0, "Invalid parameter!"); + + DOTCONF_CB(cb_LanguageDefaultModule) +diff --git a/src/server/module.c b/src/server/module.c +index 2cc365d..fd16f5c 100644 +--- a/src/server/module.c ++++ b/src/server/module.c +@@ -208,6 +208,17 @@ load_output_module(char* mod_name, char* mod_prog, char* mod_cfgfile, char* mod_ + return NULL; + } + ++ /* Send log level configuration setting */ ++ ret = output_send_loglevel_setting(module); ++ if (ret !=0){ ++ MSG(1, "ERROR: Can't set the log level inin the output module."); ++ module->working = 0; ++ kill(module->pid, 9); ++ waitpid(module->pid, NULL, WNOHANG); ++ destroy_module(module); ++ return NULL; ++ } ++ + /* Get a list of supported voices */ + _output_get_voices(module); + fclose(f); +diff --git a/src/server/output.c b/src/server/output.c +index 0a58eee..a31b709 100644 +--- a/src/server/output.c ++++ b/src/server/output.c +@@ -400,6 +400,25 @@ output_send_audio_settings(OutputModule *output) + + return 0; + } ++ ++int ++output_send_loglevel_setting(OutputModule *output) ++{ ++ GString *set_str; ++ int err; ++ ++ MSG(4, "Module set parameters."); ++ set_str = g_string_new(""); ++ ADD_SET_INT(log_level); ++ ++ SEND_CMD_N("LOGLEVEL"); ++ SEND_DATA_N(set_str->str); ++ SEND_CMD_N("."); ++ ++ g_string_free(set_str, 1); ++ ++ return 0; ++} + #undef ADD_SET_INT + #undef ADD_SET_STR + +diff --git a/src/server/output.h b/src/server/output.h +index bbcec7c..d6d73f3 100644 +--- a/src/server/output.h ++++ b/src/server/output.h +@@ -43,6 +43,7 @@ char* output_read_reply2(OutputModule *output); + int output_send_data(char* cmd, OutputModule *output, int wfr); + int output_send_settings(TSpeechDMessage *msg, OutputModule *output); + int output_send_audio_settings(OutputModule *output); ++int output_send_loglevel_setting(OutputModule *output); + int output_module_is_speaking(OutputModule *output, char **index_mark); + int waitpid_with_timeout(pid_t pid, int *status_ptr, int options, size_t timeout); + int output_close(OutputModule *module); +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/12_server_More_tightly_integrate_the_server_into_a_user.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/12_server_More_tightly_integrate_the_server_into_a_user.dpatch @@ -0,0 +1,172 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 9f4bd2ef1f60d5b5be6885fa6a29c3e38e3f662a Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 14 Jul 2009 14:36:04 +1000 +Subject: [PATCH 12/16] server - More tightly integrate the server into a user session + +This commit allows for tighter integration of the speech server into a user's +session. When the user logs in, the SPEECHD_PORT environment variable is set +to a unique port number, which is the base port set in intl/def.h, plus the +user's UID. When the server gets loaded, it then checks for the presence of +the SPEECHD_PORT environment variable, and uses that port for communication +if found. The environment variable will overwrite any setting in the config +file, but will not override the port command-line flag. + +This integration is disabled by default, but can be enabled at compile time +with the --enable-session-integration command-line flag given to the +configure script. You can also set in which directory the shell fragment +gets placed, to allow it to be run at user login. This is set using the +--with-bash-profile-dir command-line flag. The default is +$sysconfdir/profile.d. +--- + configure.in | 20 +++++++++++++++++++- + src/Makefile.am | 4 ++-- + src/server/Makefile.am | 4 ++++ + src/server/speechd.c | 13 +++++++++++++ + src/session/Makefile.in | 32 ++++++++++++++++++++++++++++++++ + src/session/speechd-user-port.sh.in | 1 + + 6 files changed, 71 insertions(+), 3 deletions(-) + create mode 100644 src/session/Makefile.in + create mode 100644 src/session/speechd-user-port.sh.in + +diff --git a/configure.in b/configure.in +index 287a06b..3c0ab6a 100644 +--- a/configure.in ++++ b/configure.in +@@ -242,6 +242,24 @@ AC_SUBST(gthread_libs) + + AC_SUBST(datadir) + ++AC_ARG_ENABLE([session-integration], ++ AC_HELP_STRING([--enable-session-integration], ++ [build with user session integration support]), ++ msg_session_integration=$enableval, ++ msg_session_integration=no) ++ if test "x$enable_session_integration" != "xyes"; then ++ msg_session_integration=no ++ fi ++AM_CONDITIONAL(ENABLE_SESSION, test "$msg_session_integration" = "yes") ++ ++AC_ARG_WITH([bash-profile-dir], ++ AC_HELP_STRING([--with-bash-profile-dir=PATH], ++ [choose directory for session integration shell file (default=SYSCONFDIR/profile.d)]), ++ with_bash_profile_dir=$withval, ++ with_bash_profile_dir=$sysconfdir/profile.d) ++BASH_PROFILE_DIR=$with_bash_profile_dir ++AC_SUBST(BASH_PROFILE_DIR) ++ + spdconfdir='${sysconfdir}/speech-dispatcher' + AC_SUBST(spdconfdir) + moduleconfdir='${spdconfdir}/modules' +@@ -285,5 +303,5 @@ AC_SUBST(LIB_SPD_CURRENT) + AC_SUBST(LIB_SPD_REVISION) + AC_SUBST(LIB_SPD_AGE) + +-AC_OUTPUT([Makefile src/Makefile src/server/Makefile src/modules/Makefile src/c/Makefile src/c/api/Makefile src/c/clients/Makefile src/c/clients/say/Makefile src/c/clients/spdsend/Makefile src/tests/Makefile src/audio/Makefile config/Makefile config/modules/Makefile config/clients/Makefile doc/Makefile src/python/Makefile]) ++AC_OUTPUT([Makefile src/Makefile src/server/Makefile src/modules/Makefile src/c/Makefile src/c/api/Makefile src/c/clients/Makefile src/c/clients/say/Makefile src/c/clients/spdsend/Makefile src/tests/Makefile src/audio/Makefile config/Makefile config/modules/Makefile config/clients/Makefile doc/Makefile src/python/Makefile src/session/Makefile]) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 19f0c08..32e9bfa 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -8,8 +8,8 @@ EXTRA_DIST = cl/ChangeLog cl/README cl/*.lisp cl/*.asd \ + guile/ChangeLog guile/Makefile guile/README guile/*.in guile/*.c guile/*.h \ + python/*.py python/speechd/*.py python/Makefile.in python/speechd_config/*.py \ + python/speechd_config/spd-conf python/speechd_config/test.wav \ +-python/speechd_config/speechd.desktop ++python/speechd_config/speechd.desktop session/Makefile.in session/speechd-user-port.sh.in + +-SUBDIRS= server audio c modules tests python ++SUBDIRS= server audio c modules tests python session + + +diff --git a/src/server/Makefile.am b/src/server/Makefile.am +index fcbcfd9..1d45ae0 100644 +--- a/src/server/Makefile.am ++++ b/src/server/Makefile.am +@@ -7,3 +7,7 @@ speech_dispatcher_LDFLAGS = -rdynamic + inc_local = -I$(top_srcdir)/intl/ + localedir = $(datadir)/locale + AM_CFLAGS = -Wall $(inc_local) -I$(localedir) @glib_include@ -DSYS_CONF=\"@spdconfdir@\" -DSND_DATA=\"@snddatadir@\" -DMODULEBINDIR=\"@modulebindir@\" -DVERSION=\"@VERSION@\" -DPACKAGE=\"@PACKAGE@\" -DPIDPATH=\"@pidpath@\" ++ ++if ENABLE_SESSION ++AM_CFLAGS += -DENABLE_SESSION ++endif +diff --git a/src/server/speechd.c b/src/server/speechd.c +index 530fdbc..a9ed391 100644 +--- a/src/server/speechd.c ++++ b/src/server/speechd.c +@@ -766,6 +766,19 @@ main(int argc, char *argv[]) + + options_parse(argc, argv); + ++#ifdef ENABLE_SESSION ++ /* Get the server port from the SPEECHD_PORT environment variable. */ ++ char *tail_ptr; ++ int val; ++ if (getenv("SPEECHD_PORT") && !SpeechdOptions.port_set){ ++ SpeechdOptions.port_set = 1; ++ val = strtol(getenv("SPEECHD_PORT"), &tail_ptr, 10); ++ if (tail_ptr != getenv("SPEECHD_PORT")){ ++ SpeechdOptions.port = val; ++ } ++ } ++#endif ++ + MSG(1, "Speech Dispatcher "VERSION" starting"); + + /* Check if there is .speech-dispatcher directory +diff --git a/src/session/Makefile.in b/src/session/Makefile.in +new file mode 100644 +index 0000000..7304fe7 +--- /dev/null ++++ b/src/session/Makefile.in +@@ -0,0 +1,32 @@ ++prefix = @prefix@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++datarootdir = @datarootdir@ ++bash_profile_dir = @BASH_PROFILE_DIR@ ++speechd_default_port = $(shell grep SPEECHD_DEFAULT_PORT ../../intl/def.h | awk '{print $$3}') ++ ++all: ++ifneq ($(ENABLE_SESSION_TRUE), "") ++ sed -e "s/@SPEECHD_DEFAULT_PORT@/$(speechd_default_port)/" speechd-user-port.sh.in > speechd-user-port.sh ++endif ++ ++install: ++ifneq ($(ENABLE_SESSION_TRUE), "") ++ install -d -o root -m 755 $(DESTDIR)/$(bash_profile_dir) ++ install -o root -m 644 speechd-user-port.sh $(DESTDIR)/$(bash_profile_dir) ++endif ++ ++uninstall: ++ rm -f $(DESTDIR)/$(bash_profile_dir)/speechd-user-port.sh ++ ++clean: ++ rm -f speechd-user-port.sh ++ ++distclean: clean ++ ++maintainer-clean: clean ++ ++distdir: ++ ++check: ++ +diff --git a/src/session/speechd-user-port.sh.in b/src/session/speechd-user-port.sh.in +new file mode 100644 +index 0000000..70e185d +--- /dev/null ++++ b/src/session/speechd-user-port.sh.in +@@ -0,0 +1 @@ ++export SPEECHD_PORT=$(expr @SPEECHD_DEFAULT_PORT@ + $(getent passwd $USER | cut -f 3 -d :)) +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/16_autospawn.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/16_autospawn.dpatch @@ -0,0 +1,79 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 18_autospawn.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad speech-dispatcher-0.6.7~/src/c/api/libspeechd.c speech-dispatcher-0.6.7/src/c/api/libspeechd.c +--- speech-dispatcher-0.6.7~/src/c/api/libspeechd.c 2009-08-11 16:33:12.252120892 +1000 ++++ speech-dispatcher-0.6.7/src/c/api/libspeechd.c 2009-08-11 16:34:17.216120650 +1000 +@@ -90,6 +90,11 @@ + int port; + int ret; + char tcp_no_delay = 1; ++ const char *pidof_speechd[] = { "pidof", "speech-dispatcher", NULL }; ++ const char *speechd_cmd[] = { "/bin/sh", "/usr/bin/speechd-server-spawn", NULL }; ++ gchar *speechd_pid = NULL; ++ GError *error = NULL; ++ gint exit_status; + + if (client_name == NULL) return NULL; + +@@ -130,6 +135,12 @@ + SPD_DBG("Debugging started"); + #endif /* LIBSPEECHD_DEBUG */ + ++ /* Start the speech-dispatcher server if it isn't running. */ ++ if (g_spawn_sync(NULL, (gchar**)pidof_speechd, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &speechd_pid, NULL, &exit_status, &error) && strlen(speechd_pid) == 0){ ++ g_spawn_sync(NULL, (gchar**)speechd_cmd, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, NULL, NULL, &exit_status, &error); ++ sleep(0.5); ++ } ++ + /* Connect to server */ + ret = connect(connection->socket, (struct sockaddr *)&address, sizeof(address)); + if (ret == -1){ +diff -urNad speech-dispatcher-0.6.7~/src/python/speechd/client.py speech-dispatcher-0.6.7/src/python/speechd/client.py +--- speech-dispatcher-0.6.7~/src/python/speechd/client.py 2009-08-11 16:33:11.744120467 +1000 ++++ speech-dispatcher-0.6.7/src/python/speechd/client.py 2009-08-11 16:33:12.500121113 +1000 +@@ -25,7 +25,8 @@ + + #TODO: Blocking variants for speak, char, key, sound_icon. + +-import socket, sys, os ++import socket, sys, os, subprocess, time ++spd_server_spawn_cmd='/usr/bin/speechd-server-spawn' + + try: + import threading +@@ -110,11 +111,15 @@ + 704: CallbackType.PAUSE, + 705: CallbackType.RESUME, + } ++ speechd_server_pid = '' + + def __init__(self, host, port): + """Init connection: open the socket to server, + initialize buffers, launch a communication handling + thread.""" ++ if host == '127.0.0.1' and self.speechd_server_pid == '': ++ self.speechd_server_pid = self.speechd_server_spawn() ++ time.sleep(0.5) + self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self._socket.connect((socket.gethostbyname(host), port)) + self._buffer = "" +@@ -303,7 +308,13 @@ + """ + self._callback = callback + +- ++ def speechd_server_spawn(self): ++ """Attempts to spawn the speech-dispatcher server.""" ++ if os.path.exists(spd_server_spawn_cmd): ++ speechd_server = subprocess.Popen(['/bin/sh', spd_server_spawn_cmd], ++ stdin=None, stdout=subprocess.PIPE, stderr=None) ++ return speechd_server.communicate()[0].rstrip('\n') ++ + class Scope(object): + """An enumeration of valid SSIP command scopes. + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/15_config_Load_system_wide_and_user_client_configuratio.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/15_config_Load_system_wide_and_user_client_configuratio.dpatch @@ -0,0 +1,37 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 55bcc9d8c48c9f9df1fe231f2a4f3d988d5d7bd9 Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Thu, 30 Jul 2009 14:23:43 +1000 +Subject: [PATCH 16/16] config - Load system wide and user client configuration files + +A user may wish to use a client configuration file they have created, as well +as client configuration files added by the system administrator. Allow +speech-dispatcher to make use of any additional configuration files added by +the user or administrator, without the need to hard-code these new files into +speechd.conf. +--- + config/speechd.conf.in | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/config/speechd.conf.in b/config/speechd.conf.in +index 2bc6c49..5f35fcb 100644 +--- a/config/speechd.conf.in ++++ b/config/speechd.conf.in +@@ -256,6 +256,6 @@ DefaultModule espeak + + # There are some sample client settings + +-Include "clients/emacs.conf" +-Include "clients/gnome-speech.conf" ++Include "INCLUDE_PATH/clients/*.conf" ++Include "clients/*.conf" + +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/03_paths+files.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/03_paths+files.dpatch @@ -0,0 +1,87 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_paths+files.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Use `speech-dispatcher' instead of `speechd' in paths. + +@DPATCH@ +diff -urNad speech-dispatcher~/config/speechd.conf.in speech-dispatcher/config/speechd.conf.in +--- speech-dispatcher~/config/speechd.conf.in 2008-08-05 09:34:20.000000000 +0200 ++++ speech-dispatcher/config/speechd.conf.in 2008-10-24 19:48:19.000000000 +0200 +@@ -43,7 +43,7 @@ + # The CustomLogFile allows logging all messages of the given kind, + # regardless their priority, to the given destination. + +-#CustomLogFile "protocol" "/var/log/speech-dispatcher/speechd-protocol.log" ++#CustomLogFile "protocol" "/var/log/speech-dispatcher/speech-dispatcher-protocol.log" + + # ----- VOICE PARAMETERS ----- + +@@ -69,7 +69,7 @@ + # default. Voice types are symbolic names which map to particular + # voices provided by the synthesizer according to the output module + # configuratuion. Please see the synthesizer-specific configuration +-# in etc/speechd/modules/ to see which voices are assigned to ++# in etc/speech-dispatcher/modules/ to see which voices are assigned to + # different symbolic names. The following symbolic names are + # currently supported: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3, + # CHILD_MALE, CHILD_FEMALE +@@ -203,7 +203,7 @@ + # - binary is the path to the binary executable of this module, + # either relative (to lib/speech-dispatcher-modules/) or absolute + # - configuration is the path to the config file of this module, +-# either relative (to etc/speechd/modules/) or absolute ++# either relative (to etc/speech-dispatcher/modules/) or absolute + + AddModule "espeak" "sd_espeak" "espeak.conf" + AddModule "festival" "sd_festival" "festival.conf" +diff -urNad speech-dispatcher~/doc/speech-dispatcher.texi speech-dispatcher/doc/speech-dispatcher.texi +--- speech-dispatcher~/doc/speech-dispatcher.texi 2008-08-04 21:26:29.000000000 +0200 ++++ speech-dispatcher/doc/speech-dispatcher.texi 2008-10-24 19:50:05.000000000 +0200 +@@ -807,8 +807,8 @@ + + @item + Check the appropriate logfile in +-@file{~/.speech-dispatcher/logs/speechd.log} for user Speech +-Dispatcher or in @file{/var/log/speech-dispatcher/speechd.log}. Look ++@file{~/.speech-dispatcher/logs/speech-dispatcher.log} for user Speech ++Dispatcher or in @file{/var/log/speech-dispatcher/speech-dispatcher.log}. Look + for lines containing the string 'ERROR' and their surrounding + contents. If you hear no speech, restart Speech Dispatcher and look + near the end of the log file -- before any attempts for synthesis of +diff -urNad speech-dispatcher~/src/server/options.c speech-dispatcher/src/server/options.c +--- speech-dispatcher~/src/server/options.c 2008-07-10 17:35:56.000000000 +0200 ++++ speech-dispatcher/src/server/options.c 2008-10-24 19:50:16.000000000 +0200 +@@ -139,7 +139,7 @@ + exit(1); + } + +- debug_logfile_path = g_strdup_printf("%s/speechd.log", ++ debug_logfile_path = g_strdup_printf("%s/speech-dispatcher.log", + SpeechdOptions.debug_destination); + /* Open logfile for writing */ + debug_logfile = fopen(debug_logfile_path, "wx"); +diff -urNad speech-dispatcher~/src/server/set.c speech-dispatcher/src/server/set.c +--- speech-dispatcher~/src/server/set.c 2008-07-01 11:00:32.000000000 +0200 ++++ speech-dispatcher/src/server/set.c 2008-10-24 19:50:03.000000000 +0200 +@@ -380,7 +380,7 @@ + if (!SpeechdOptions.debug && !debug) return 1; + + if (debug){ +- debug_logfile_path = g_strdup_printf("%s/speechd.log", SpeechdOptions.debug_destination); ++ debug_logfile_path = g_strdup_printf("%s/speech-dispatcher.log", SpeechdOptions.debug_destination); + + debug_logfile = fopen(debug_logfile_path, "w"); + if (debug_logfile == NULL){ +diff -urNad speech-dispatcher~/src/server/speechd.c speech-dispatcher/src/server/speechd.c +--- speech-dispatcher~/src/server/speechd.c 2008-07-10 17:36:49.000000000 +0200 ++++ speech-dispatcher/src/server/speechd.c 2008-10-24 19:49:59.000000000 +0200 +@@ -714,7 +714,7 @@ + void + logging_init(void) + { +- char *file_name = g_strdup_printf("%s/speechd.log", SpeechdOptions.log_dir); ++ char *file_name = g_strdup_printf("%s/speech-dispatcher.log", SpeechdOptions.log_dir); + assert(file_name != NULL); + if (!strncmp(file_name,"stdout",6)){ + logfile = stdout; --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/10_modules_Fix_compiler_warning.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/10_modules_Fix_compiler_warning.dpatch @@ -0,0 +1,33 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From f3f00462ad4cf40060fc35fb85af8838e7cdaa3e Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Wed, 8 Jul 2009 11:03:14 +1000 +Subject: [PATCH 10/16] modules - Fix compiler warning + +Fix a compiler warning in the graceful audio fallback code. +--- + src/modules/module_utils.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/modules/module_utils.c b/src/modules/module_utils.c +index 67bc59b..575debf 100644 +--- a/src/modules/module_utils.c ++++ b/src/modules/module_utils.c +@@ -1081,7 +1081,7 @@ module_audio_init_spd(char **status_info) + + DBG("Openning audio output system"); + if (outputs[0]){ +- const char *next = outputs; ++ char *next = outputs; + size_t len; + + do{ +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/19_enable_autospawn_config.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/19_enable_autospawn_config.dpatch @@ -0,0 +1,16 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_enable_autospawn_config.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad speech-dispatcher-0.6.7+git20090514~/config/speechd.conf.in speech-dispatcher-0.6.7+git20090514/config/speechd.conf.in +--- speech-dispatcher-0.6.7+git20090514~/config/speechd.conf.in 2009-08-26 10:36:30.236345322 +1000 ++++ speech-dispatcher-0.6.7+git20090514/config/speechd.conf.in 2009-08-26 10:41:00.080345182 +1000 +@@ -259,3 +259,5 @@ + Include "INCLUDE_PATH/clients/*.conf" + Include "clients/*.conf" + ++# This line below is to enable autospawning, without breaking everything else read by dotconf. ++# AutoSpawn --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/13_server_Add_support_for_retrieving_current_voice_and_.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/13_server_Add_support_for_retrieving_current_voice_and_.dpatch @@ -0,0 +1,140 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From a83f93b2b198b11e9ac0f9cbc10a9cc8a7c3300e Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Mon, 27 Jul 2009 16:11:02 +1000 +Subject: [PATCH 14/16] server - Add support for retrieving current voice and current output module over SSIP + +Thanks to Jeremy Whiting for the patch. +--- + src/server/msg.h | 2 + + src/server/parse.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/server/parse.h | 1 + + 3 files changed, 71 insertions(+), 0 deletions(-) + +diff --git a/src/server/msg.h b/src/server/msg.h +index ae3c41e..36c8fc6 100644 +--- a/src/server/msg.h ++++ b/src/server/msg.h +@@ -77,6 +77,8 @@ + #define C_OK_VOICES "249" + #define OK_MODULES_LIST_SENT "250 OK VOICE LIST SENT\r\n" + #define C_OK_MODULES "250" ++#define OK_GET "251 OK GET RETURNED\r\n" ++#define C_OK_GET "251" + + #define OK_INSIDE_BLOCK "260 OK INSIDE BLOCK\r\n" + #define OK_OUTSIDE_BLOCK "261 OK OUTSIDE BLOCK\r\n" +diff --git a/src/server/parse.c b/src/server/parse.c +index a83a827..36214ef 100644 +--- a/src/server/parse.c ++++ b/src/server/parse.c +@@ -104,6 +104,7 @@ parse(const char *buf, const int bytes, const int fd) + CHECK_SSIP_COMMAND("char", parse_char, BLOCK_OK); + CHECK_SSIP_COMMAND("key", parse_key, BLOCK_OK) + CHECK_SSIP_COMMAND("list", parse_list, BLOCK_NO); ++ CHECK_SSIP_COMMAND("get", parse_get, BLOCK_NO); + CHECK_SSIP_COMMAND("help", parse_help, BLOCK_NO); + CHECK_SSIP_COMMAND("block", parse_block, BLOCK_OK); + +@@ -879,6 +880,72 @@ parse_list(const char* buf, const int bytes, const int fd) + } + + char* ++parse_get(const char *buf, const int bytes, const int fd) ++{ ++ char *get_type; ++ GString *result; ++ char *helper; ++ ++ TFDSetElement *settings; ++ ++ settings = get_client_settings_by_fd(fd); ++ if (settings == NULL) ++ return strdup(ERR_INTERNAL); ++ ++ GET_PARAM_STR(get_type, 1, CONV_DOWN); ++ if(TEST_CMD(get_type, "voice")) { ++ result = g_string_new(""); ++ ++ switch (settings->voice) ++ { ++ case MALE1: ++ g_string_append_printf(result, C_OK_GET"-MALE1\r\n"); ++ break; ++ case MALE2: ++ g_string_append_printf(result, C_OK_GET"-MALE2\r\n"); ++ break; ++ case MALE3: ++ g_string_append_printf(result, C_OK_GET"-MALE3\r\n"); ++ break; ++ case FEMALE1: ++ g_string_append_printf(result, C_OK_GET"-FEMALE1\r\n"); ++ break; ++ case FEMALE2: ++ g_string_append_printf(result, C_OK_GET"-FEMALE2\r\n"); ++ break; ++ case FEMALE3: ++ g_string_append_printf(result, C_OK_GET"-FEMALE3\r\n"); ++ break; ++ case CHILD_MALE: ++ g_string_append_printf(result, C_OK_GET"-CHILD_MALE\r\n"); ++ break; ++ case CHILD_FEMALE: ++ g_string_append_printf(result, C_OK_GET"-CHILD_FEMALE\r\n"); ++ break; ++ case NO_VOICE: ++ default: ++ g_string_append_printf(result, C_OK_GET"-NO_VOICE\r\n"); ++ break; ++ } ++ helper = result->str; ++ g_string_free(result, 0); ++ return helper; ++ } ++ else if (TEST_CMD(get_type, "output_module")) { ++ result = g_string_new(""); ++ g_string_append_printf(result, C_OK_GET"-%s\r\n", ++ settings->output_module); ++ helper = result->str; ++ g_string_free(result, 0); ++ return helper; ++ } ++ else{ ++ spd_free(get_type); ++ return strdup(ERR_PARAMETER_INVALID); ++ } ++} ++ ++char* + parse_help(const char* buf, const int bytes, const int fd) + { + char *help; +@@ -891,6 +958,7 @@ parse_help(const char* buf, const int bytes, const int fd) + C_OK_HELP"- CHAR -- say a character \r\n" + C_OK_HELP"- SOUND_ICON -- execute a sound icon \r\n" + C_OK_HELP"- SET -- set a parameter \r\n" ++ C_OK_HELP"- GET -- get a current parameter \r\n" + C_OK_HELP"- LIST -- list available arguments \r\n" + C_OK_HELP"- HISTORY -- commands related to history \r\n" + C_OK_HELP"- QUIT -- close the connection \r\n" +diff --git a/src/server/parse.h b/src/server/parse.h +index a50d631..2201d03 100644 +--- a/src/server/parse.h ++++ b/src/server/parse.h +@@ -14,6 +14,7 @@ char* parse_snd_icon(const char* buf, const int bytes, const int fd); + char* parse_char(const char* buf, const int bytes, const int fd); + char* parse_key(const char* buf, const int bytes, const int fd); + char* parse_list(const char* buf, const int bytes, const int fd); ++char* parse_get(const char* buf, const int bytes, const int fd); + char* parse_help(const char* buf, const int bytes, const int fd); + char* parse_block(const char* buf, const int bytes, const int fd); + +-- +1.6.3.3 + --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/17_fix_compilation_error.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/17_fix_compilation_error.dpatch @@ -0,0 +1,33 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad speech-dispatcher-0.6.7~/src/modules/module_main.c speech-dispatcher-0.6.7/src/modules/module_main.c +--- speech-dispatcher-0.6.7~/src/modules/module_main.c 2009-08-05 15:48:06.662766422 +0100 ++++ speech-dispatcher-0.6.7/src/modules/module_main.c 2009-08-05 15:48:30.551842683 +0100 +@@ -21,9 +21,6 @@ + * $Id: module_main.c,v 1.17 2008-10-15 17:05:37 hanke Exp $ + */ + +-/* So that gcc doesn't comply */ +-int getline(char**, size_t*, FILE*); +- + #define PROCESS_CMD(command, function) \ + if (!strcmp(cmd_buf, #command"\n")){ \ + char *msg; \ +diff -urNad speech-dispatcher-0.6.7~/src/modules/module_utils.h speech-dispatcher-0.6.7/src/modules/module_utils.h +--- speech-dispatcher-0.6.7~/src/modules/module_utils.h 2009-08-05 15:48:06.666766023 +0100 ++++ speech-dispatcher-0.6.7/src/modules/module_utils.h 2009-08-05 15:48:24.110850107 +0100 +@@ -423,9 +423,6 @@ + + + +-/* So that gcc doesn't complain */ +-int getline(char**, size_t*, FILE*); +- + pthread_mutex_t module_stdout_mutex; + + int module_utils_init(void); --- speech-dispatcher-0.6.7+git20090514.orig/debian/patches/18_cleanup_c_api.dpatch +++ speech-dispatcher-0.6.7+git20090514/debian/patches/18_cleanup_c_api.dpatch @@ -0,0 +1,35 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19_fix_compilation_error.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +From 18beb896353bc767d67ebb95c789efce4cc743ee Mon Sep 17 00:00:00 2001 +From: Luke Yelavich +Date: Tue, 25 Aug 2009 14:59:00 +1000 +Subject: [PATCH 2/2] C API - Clean up spd_set_synthesis_voice function definitions + +Fixes a typo in the libspeechd header file. +--- + src/c/api/libspeechd.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/c/api/libspeechd.h b/src/c/api/libspeechd.h +index 97b865e..173cee3 100644 +--- a/src/c/api/libspeechd.h ++++ b/src/c/api/libspeechd.h +@@ -192,8 +192,8 @@ int spd_set_voice_type_all(SPDConnection*, SPDVoiceType type); + int spd_set_voice_type_uid(SPDConnection*, SPDVoiceType type, unsigned int uid); + + int spd_set_synthesis_voice(SPDConnection*, const char *voice_name); +-int spd_set_synthesis_voice_type_all(SPDConnection*, const char *voice_name); +-int spd_set_synthesis_voice_type_uid(SPDConnection*, const char *voice_name, unsigned int uid); ++int spd_set_synthesis_voice_all(SPDConnection*, const char *voice_name); ++int spd_set_synthesis_voice_uid(SPDConnection*, const char *voice_name, unsigned int uid); + + int spd_set_data_mode(SPDConnection *connection, SPDDataMode mode); + +-- +1.6.3.3 +