speech-dispatcher: portability patches from Alpine.
This commit is contained in:
parent
fd41b4d804
commit
1638911175
|
@ -0,0 +1,54 @@
|
|||
From f2dda28648de4bd940be54e827878f081af22ebc Mon Sep 17 00:00:00 2001
|
||||
From: Felix Janda <felix.janda@posteo.de>
|
||||
Date: Mon, 23 Mar 2015 21:03:29 +0100
|
||||
Subject: [PATCH] Make some includes consistent with POSIX
|
||||
|
||||
Reviewed-by: Luke Yelavich <themuso@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
|
||||
--- src/modules/cicero.c
|
||||
+++ 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
|
||||
--- src/modules/spd_audio.c
|
||||
+++ 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
|
||||
--- src/server/module.c
|
||||
+++ 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
|
||||
|
|
@ -0,0 +1,182 @@
|
|||
From 98504410b7f77cad7457bfdfcd593e2898c3b461 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Janda <felix.janda@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 <themuso@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
|
||||
+++ 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
|
||||
--- src/modules/cicero.c
|
||||
+++ 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
|
||||
--- src/server/output.c
|
||||
+++ 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
|
||||
--- src/server/sem_functions.c
|
||||
+++ 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
|
||||
--- src/server/speaking.c
|
||||
+++ 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
|
||||
|
|
@ -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}"
|
||||
|
|
Loading…
Reference in New Issue