From 163891117568b599f1a542860a968161e5600f08 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Wed, 20 May 2015 10:37:28 +0200 Subject: [PATCH] speech-dispatcher: portability patches from Alpine. --- ...-some-includes-consistent-with-POSIX.patch | 54 ++++++ ...-for-systems-without-TEMP_FAILURE_RE.patch | 182 ++++++++++++++++++ srcpkgs/speech-dispatcher/template | 6 +- 3 files changed, 237 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/speech-dispatcher/patches/0001-Make-some-includes-consistent-with-POSIX.patch create mode 100644 srcpkgs/speech-dispatcher/patches/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch diff --git a/srcpkgs/speech-dispatcher/patches/0001-Make-some-includes-consistent-with-POSIX.patch b/srcpkgs/speech-dispatcher/patches/0001-Make-some-includes-consistent-with-POSIX.patch new file mode 100644 index 00000000000..bd8f638e160 --- /dev/null +++ b/srcpkgs/speech-dispatcher/patches/0001-Make-some-includes-consistent-with-POSIX.patch @@ -0,0 +1,54 @@ +From f2dda28648de4bd940be54e827878f081af22ebc Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Mon, 23 Mar 2015 21:03:29 +0100 +Subject: [PATCH] Make some includes consistent with POSIX + +Reviewed-by: Luke Yelavich +--- + 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 +--- src/modules/cicero.c ++++ src/modules/cicero.c +@@ -28,7 +28,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/src/modules/spd_audio.c b/src/modules/spd_audio.c +index 3b65bf7..c85e21d 100644 +--- src/modules/spd_audio.c ++++ src/modules/spd_audio.c +@@ -38,7 +38,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/src/server/module.c b/src/server/module.c +index 0681caf..51746a0 100644 +--- src/server/module.c ++++ src/server/module.c +@@ -29,7 +29,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +2.4.0 + diff --git a/srcpkgs/speech-dispatcher/patches/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch b/srcpkgs/speech-dispatcher/patches/0001-Provide-fallback-for-systems-without-TEMP_FAILURE_RE.patch new file mode 100644 index 00000000000..b6e56325a14 --- /dev/null +++ b/srcpkgs/speech-dispatcher/patches/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 +Date: Mon, 23 Mar 2015 21:03:12 +0100 +Subject: [PATCH] Provide fallback for systems without TEMP_FAILURE_RETRY + +Reviewed-by: Luke Yelavich +--- + 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 ++++ 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 ++#endif ++ ++#include ++#include ++ ++#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 ++#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 +--- src/modules/cicero.c ++++ src/modules/cicero.c +@@ -26,6 +26,7 @@ + #endif + + #include ++#include + #include + #include + #include +@@ -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 +--- src/server/output.c ++++ src/server/output.c +@@ -26,27 +26,11 @@ + #endif + + #include ++#include + #include + #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 +-#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 +--- src/server/sem_functions.c ++++ src/server/sem_functions.c +@@ -26,6 +26,8 @@ + #include + #endif + ++#include ++ + #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 +--- src/server/speaking.c ++++ src/server/speaking.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #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/srcpkgs/speech-dispatcher/template b/srcpkgs/speech-dispatcher/template index 01c7c8439f2..d8bf4a4f996 100644 --- a/srcpkgs/speech-dispatcher/template +++ b/srcpkgs/speech-dispatcher/template @@ -1,7 +1,7 @@ # Template build file for 'speech-dispatcher'. pkgname=speech-dispatcher version=0.8.2 -revision=2 +revision=3 build_style=gnu-configure configure_args="--disable-static" short_desc="High-level device independent layer for speech synthesis interface" @@ -30,10 +30,6 @@ conf_files=" /etc/speech-dispatcher/modules/espeak.conf /etc/speech-dispatcher/modules/cicero.conf" -pre_configure() { - sed -i 's,sys/unistd.h,unistd.h,g' src/server/module.c -} - speech-dispatcher-devel_package() { short_desc+=" - development files" depends="${sourcepkg}-${version}_${revision}"