commit: 31b4cc0a1fa2cca18e4fb46028b449333fe4cb86 Author: Aric Belsito <lluixhi <AT> gmail <DOT> com> AuthorDate: Mon Oct 31 23:06:45 2016 +0000 Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com> CommitDate: Mon Oct 31 23:06:45 2016 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=31b4cc0a
app-accessibility/speech-dispatcher: Add stable. Apparently @doughdemon made these patches, but I forget where I found them.. app-accessibility/speech-dispatcher/Manifest | 5 + ...-Make-some-includes-consistent-with-POSIX.patch | 54 ++++++ ...lback-for-systems-without-TEMP_FAILURE_RE.patch | 182 +++++++++++++++++++++ app-accessibility/speech-dispatcher/metadata.xml | 19 +++ .../speech-dispatcher-0.8.1.ebuild | 116 +++++++++++++ 5 files changed, 376 insertions(+) diff --git a/app-accessibility/speech-dispatcher/Manifest b/app-accessibility/speech-dispatcher/Manifest new file mode 100644 index 0000000..abe4cce --- /dev/null +++ b/app-accessibility/speech-dispatcher/Manifest @@ -0,0 +1,5 @@ +AUX 0001-Make-some-includes-consistent-with-POSIX.patch 1413 SHA256 6a08763dd8d42283fb1cd0341ace5c948a3662e522137098a0043cb59308ebbb SHA512 76ad3f2e56a2e3ff85880da337dfae73b9c247b69a64584fbc045dc5055ef9f24a9f7788dae65b91d084b5a0f5c04336d40e6eaa7420abae58bc6d19f3121a9e WHIRLPOOL 7a751fd5e7fa6051b81fae15db6a60f5d66ba8ef9e03de5b811064ab05fd384596e0c407cd9053771d15cf07596c6daaf7c217bf3d969e7e8e5003eeaf7dd138 +AUX 0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch 5153 SHA256 32d72cb4ba7a72cb7714e8f7226b34e21f3e57765a13c39cece38e966857e0c5 SHA512 ee5527670346c14c6453ac7aee320dca8360f963599bd95123ef5828d09d7a5c2907dddfd81b8477c198dcc8b1ca98c01fd9c73cd1b74d74083766904c7ea424 WHIRLPOOL a75572d10bd1beb6142964708769622a99f70037b00654ce31e895bf8e32d14d184dae22e4876c1927d2463c8f2b48b42b3beb2b3cd2b0234f2a8c9a53a133ca +DIST speech-dispatcher-0.8.1.tar.gz 1309969 SHA256 d25727239bbee4ee7881dd5e23e4da64a184b2ff3c8c9830088a671fb23b7757 SHA512 35f1ae547001a45d7945406ae5672829ff9ab6ac3f0cccb9eb3670dd92888a63c7cc4270ee90b5a166e6788afe3b117b5c3ef62c41a9df9f9af94dc4e0948fe8 WHIRLPOOL 945ef7ab1d771dc1e3727f223cfadfd309db03813f11fe995c0f4caf3a6f24bc9abc18e1f2f342b072bcd5fd0d626dae315f1fd0228d4172e051a2aba1255092 +EBUILD speech-dispatcher-0.8.1.ebuild 2857 SHA256 7e0b44cbfcd9cbec8831408f5398c0edd6cff418096ccdcfd9a97f641f2ec487 SHA512 8317653382d1210ebbf45595a24d27665920c9e275c7c0625026973990bce6c3297e982429be8af7eb7e7ddb6785fd844b4ae4c20dac3599a761c4aa7a35a2c0 WHIRLPOOL ff1f61e92e7884a7cd51bc6b1de183290843f338b4b08586d2d45d5180c5f792187cd0f1760a9d1f2abdaf8918a8989eefd52c15dec6e8a868cb88a6a35fafa3 +MISC metadata.xml 632 SHA256 4ab0806f2fd7c313c2be2379d2f56ec03df12fa37a266bcd287a3dc5f0c11482 SHA512 db94cba99bd2c9bbfe98b1647ac53a3861cbd697df791bea025e2a713a5991ca6929f2bc82a985ba38eef4a2571515d96aac6558fe143b68e24713490c12dd0a WHIRLPOOL d3b4e5856cd9961bb4f030535f20b55595bf1a8264d228427f99d2b44d7b57892803a887a32f00e51bc77edc8d88f7ae4415dab6ac375c3f8f91a63ad34cfc55 diff --git a/app-accessibility/speech-dispatcher/files/0001-Make-some-includes-consistent-with-POSIX.patch b/app-accessibility/speech-dispatcher/files/0001-Make-some-includes-consistent-with-POSIX.patch new file mode 100644 index 0000000..d7947b7 --- /dev/null +++ b/app-accessibility/speech-dispatcher/files/0001-Make-some-includes-consistent-with-POSIX.patch @@ -0,0 +1,54 @@ +From f2dda28648de4bd940be54e827878f081af22ebc Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.ja...@posteo.de> +Date: Mon, 23 Mar 2015 21:03:29 +0100 +Subject: [PATCH] Make some includes consistent with POSIX + +Reviewed-by: Luke Yelavich <them...@themuso.com> +--- + src/modules/cicero.c | 2 +- + src/modules/spd_audio.c | 2 +- + src/server/module.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/modules/cicero.c b/src/modules/cicero.c +index 62332a5..2c69b7e 100644 +--- a/src/modules/cicero.c ++++ b/src/modules/cicero.c +@@ -28,7 +28,7 @@ + #include <speechd_types.h> + #include <safe_io.h> + #include <errno.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <fcntl.h> + #include <langinfo.h> + #include <sys/stat.h> +diff --git a/src/modules/spd_audio.c b/src/modules/spd_audio.c +index 3b65bf7..c85e21d 100644 +--- a/src/modules/spd_audio.c ++++ b/src/modules/spd_audio.c +@@ -38,7 +38,7 @@ + + #include <stdio.h> + #include <string.h> +-#include <sys/fcntl.h> ++#include <fcntl.h> + #include <sys/ioctl.h> + #include <sys/time.h> + #include <time.h> +diff --git a/src/server/module.c b/src/server/module.c +index 0681caf..51746a0 100644 +--- a/src/server/module.c ++++ b/src/server/module.c +@@ -29,7 +29,7 @@ + #include <sys/types.h> + #include <sys/wait.h> + #include <sys/stat.h> +-#include <sys/unistd.h> ++#include <unistd.h> + #include <stdio.h> + #include <dirent.h> + #include <glib.h> +-- +2.4.0 + diff --git a/app-accessibility/speech-dispatcher/files/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch b/app-accessibility/speech-dispatcher/files/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch new file mode 100644 index 0000000..c469902 --- /dev/null +++ b/app-accessibility/speech-dispatcher/files/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch @@ -0,0 +1,182 @@ +From 98504410b7f77cad7457bfdfcd593e2898c3b461 Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.ja...@posteo.de> +Date: Mon, 23 Mar 2015 21:03:12 +0100 +Subject: [PATCH] Provide fallback for systems without TEMP_FAILURE_RETRY + +Reviewed-by: Luke Yelavich <them...@themuso.com> +--- + include/safe_io.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++ + src/modules/cicero.c | 6 ++--- + src/server/output.c | 18 +-------------- + src/server/sem_functions.c | 5 +++-- + src/server/speaking.c | 5 ++--- + 5 files changed, 63 insertions(+), 26 deletions(-) + create mode 100644 include/safe_io.h + +diff --git a/include/safe_io.h b/include/safe_io.h +new file mode 100644 +index 0000000..37cfe7f +--- /dev/null ++++ b/include/safe_io.h +@@ -0,0 +1,55 @@ ++/* ++ * safe_io.h - Wrapper around read and write ++ * ++ * Copyright (C) 2001, 2002, 2003, 2007 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 software 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 ++ * along with this package; see the file COPYING. If not, write to ++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ ++#include <unistd.h> ++#include <errno.h> ++ ++#ifdef TEMP_FAILURE_RETRY /* GNU libc */ ++#define safe_read(fd, buf, count) TEMP_FAILURE_RETRY(read(fd, buf, count)) ++#define safe_write(fd, buf, count) TEMP_FAILURE_RETRY(write(fd, buf, count)) ++#else /* TEMP_FAILURE_RETRY */ ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif ++static inline ssize_t ++safe_read(int fd, void *buf, size_t count) { ++ do { ++ ssize_t w = read(fd, buf, count); ++ ++ if (w == -1 && errno == EINTR) continue; ++ return w; ++ } while (1); ++} ++static inline ssize_t ++safe_write(int fd, const void *buf, size_t count) { ++ do { ++ ssize_t w = write(fd, buf, count); ++ ++ if (w == -1 && errno == EINTR) continue; ++ return w; ++ } while (1); ++} ++#endif /* TEMP_FAILURE_RETRY */ +diff --git a/src/modules/cicero.c b/src/modules/cicero.c +index 237796e..62332a5 100644 +--- a/src/modules/cicero.c ++++ b/src/modules/cicero.c +@@ -26,6 +26,7 @@ + #endif + + #include <speechd_types.h> ++#include <safe_io.h> + #include <errno.h> + #include <sys/poll.h> + #include <fcntl.h> +@@ -376,10 +377,7 @@ void *_cicero_speak(void *nothing) + cicero_speaking = 0; + break; + } +- if (ret > 0) +- TEMP_FAILURE_RETRY(read +- (fd1[0], b, +- 2)); ++ if (ret > 0) safe_read(fd1[0], b, 2); + if (cicero_stop) { + cicero_speaking = 0; + module_report_event_stop(); +diff --git a/src/server/output.c b/src/server/output.c +index 40b7e8c..ef98a45 100644 +--- a/src/server/output.c ++++ b/src/server/output.c +@@ -26,27 +26,11 @@ + #endif + + #include <fdsetconv.h> ++#include <safe_io.h> + #include <spd_utils.h> + #include "output.h" + #include "parse.h" + +-#ifdef TEMP_FAILURE_RETRY /* GNU libc */ +-#define safe_write(fd, buf, count) TEMP_FAILURE_RETRY(write(fd, buf, count)) +-#else /* TEMP_FAILURE_RETRY */ +-#ifdef HAVE_UNISTD_H +-#include <unistd.h> +-#endif +-static inline ssize_t +-safe_write(int fd, const void *buf, size_t count) { +- do { +- ssize_t w = write(fd, buf, count); +- +- if (w == -1 && errno == EINTR) continue; +- return w; +- } while (1); +-} +-#endif /* TEMP_FAILURE_RETRY */ +- + #if !(defined(__GLIBC__) && defined(_GNU_SOURCE)) + /* Added by Willie Walker - strndup is a gcc-ism + */ +diff --git a/src/server/sem_functions.c b/src/server/sem_functions.c +index 0a86f56..430e74c 100644 +--- a/src/server/sem_functions.c ++++ b/src/server/sem_functions.c +@@ -26,6 +26,8 @@ + #include <config.h> + #endif + ++#include <safe_io.h> ++ + #include "speechd.h" + #include "sem_functions.h" + +@@ -33,8 +35,7 @@ void speaking_semaphore_post(void) + { + char buf[1]; + buf[0] = 42; +- const ssize_t wr_bytes = +- TEMP_FAILURE_RETRY(write(speaking_pipe[1], buf, 1)); ++ const ssize_t wr_bytes = safe_write(speaking_pipe[1], buf, 1); + if (wr_bytes != 1) + FATAL("write to polled fd: could not write 1 byte"); + } +diff --git a/src/server/speaking.c b/src/server/speaking.c +index bd27008..f2dc289 100644 +--- a/src/server/speaking.c ++++ b/src/server/speaking.c +@@ -29,6 +29,7 @@ + #include <glib.h> + #include <poll.h> + #include <unistd.h> ++#include <safe_io.h> + #include "speechd.h" + #include "server.h" + #include "index_marking.h" +@@ -88,9 +89,7 @@ void *speak(void *data) + MSG(5, + "wait_for_poll: activity in Speech Dispatcher"); + const ssize_t rd_bytes = +- TEMP_FAILURE_RETRY(read +- (poll_fds[0].fd, buf, +- 1)); ++ safe_read(poll_fds[0].fd, buf, 1); + if (rd_bytes != 1) + FATAL + ("read from polled fd: could not read 1 byte"); +-- +2.4.0 + diff --git a/app-accessibility/speech-dispatcher/metadata.xml b/app-accessibility/speech-dispatcher/metadata.xml new file mode 100644 index 0000000..3b8394d --- /dev/null +++ b/app-accessibility/speech-dispatcher/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>willi...@gentoo.org</email> + </maintainer> + <maintainer type="project"> + <email>accessibil...@gentoo.org</email> + <name>Gentoo Accessibility Project</name> + </maintainer> + <maintainer type="project"> + <email>so...@gentoo.org</email> + <name>Gentoo Sound project</name> + </maintainer> + <use> + <flag name="espeak">Adds support for espeak speech engine</flag> + <flag name="flite">Adds support for flite speech engine</flag> + </use> +</pkgmetadata> diff --git a/app-accessibility/speech-dispatcher/speech-dispatcher-0.8.1.ebuild b/app-accessibility/speech-dispatcher/speech-dispatcher-0.8.1.ebuild new file mode 100644 index 0000000..f7d0b8e --- /dev/null +++ b/app-accessibility/speech-dispatcher/speech-dispatcher-0.8.1.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +PYTHON_COMPAT=( python3_3 python3_4 python3_5 ) +PYTHON_REQ_USE="threads(+)" + +inherit eutils python-r1 + +DESCRIPTION="Speech synthesis interface" +HOMEPAGE="http://www.freebsoft.org/speechd" +SRC_URI="http://www.freebsoft.org/pub/projects/speechd/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" +IUSE="alsa ao +espeak flite nas pulseaudio python static-libs" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +COMMON_DEPEND="python? ( ${PYTHON_DEPS} ) + >=dev-libs/dotconf-1.3 + >=dev-libs/glib-2.28:2 + >=media-libs/libsndfile-1.0.2 + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + espeak? ( app-accessibility/espeak ) + flite? ( app-accessibility/flite ) + nas? ( media-libs/nas ) + pulseaudio? ( media-sound/pulseaudio )" +DEPEND="${COMMON_DEPEND} + >=dev-util/intltool-0.40.0 + virtual/pkgconfig" + RDEPEND="${COMMON_DEPEND} + dev-python/pyxdg" + +src_prepare() { + # Fix for MUSL + epatch "${FILESDIR}"/0001-Make-some-includes-consistent-with-POSIX.patch + epatch "${FILESDIR}"/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch +} + +src_configure() { + local myeconfargs=( + --disable-python + $(use_enable static-libs static) + $(use_with alsa) + $(use_with ao libao) + $(use_with espeak) + $(use_with flite) + $(use_with pulseaudio pulse) + $(use_with nas) + ) + econf ${myeconfargs[@]} +} + +src_compile() { + use python && python_copy_sources + + emake + + if use python; then + building() { + cd src/api/python || die + emake \ + pyexecdir="$(python_get_sitedir)" \ + pythondir="$(python_get_sitedir)" + } + python_foreach_impl run_in_build_dir building + fi +} + +src_install() { + emake DESTDIR="${D}" install + dodoc ANNOUNCE AUTHORS BUGS ChangeLog FAQ NEWS README* + + prune_libtool_files --all + + if use python; then + installation() { + cd src/api/python || die + emake \ + DESTDIR="${D}" \ + pyexecdir="$(python_get_sitedir)" \ + pythondir="$(python_get_sitedir)" \ + install + } + python_foreach_impl run_in_build_dir installation + python_replicate_script "${ED}"/usr/bin/spd-conf + fi +} + +pkg_postinst() { + local editconfig="n" + if ! use espeak; then + ewarn "You have disabled espeak, which is speech-dispatcher's" + ewarn "default speech synthesizer." + ewarn + editconfig="y" + fi + if ! use pulseaudio; then + ewarn "You have disabled pulseaudio support." + ewarn "pulseaudio is speech-dispatcher's default audio subsystem." + ewarn + editconfig="y" + fi + if [[ "${editconfig}" == "y" ]]; then + ewarn "You must edit ${EROOT}etc/speech-dispatcher/speechd.conf" + ewarn "and make sure the settings there match your system." + ewarn + fi + elog "For festival support, you need to" + elog "install app-accessibility/festival-freebsoft-utils." +}