summaryrefslogtreecommitdiff
path: root/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.11.3-fix-dlopen.patch
blob: f520fdc6adfb64619386b3345912fa1146cadaa7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
https://github.com/brailcom/speechd/commit/db21e5fe4b3155734f60a67c8ab5da6b53174e1b
https://github.com/brailcom/speechd/pull/783
https://bugs.gentoo.org/877339

From db21e5fe4b3155734f60a67c8ab5da6b53174e1b Mon Sep 17 00:00:00 2001
From: Bernard Cafarelli <bernard.cafarelli@gmail.com>
Date: Mon, 17 Oct 2022 15:28:37 +0200
Subject: [PATCH] Fix audio plugin loading with dlopen

dlopen needs the full name including .so extension
Set SPD_AUDIO_PLUGIN_ENTRY to correct name (ltdl adds a prefix)
--- a/src/audio/alsa.c
+++ b/src/audio/alsa.c
@@ -37,7 +37,11 @@
 #include <alsa/asoundlib.h>
 #include <alsa/pcm.h>
 
+#ifdef USE_DLOPEN
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
+#else
 #define SPD_AUDIO_PLUGIN_ENTRY spd_alsa_LTX_spd_audio_plugin_get
+#endif
 #include <spd_audio_plugin.h>
 
 typedef struct {
--- a/src/audio/libao.c
+++ b/src/audio/libao.c
@@ -32,7 +32,11 @@
 #include <glib.h>
 #include <ao/ao.h>
 
+#ifdef USE_DLOPEN
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
+#else
 #define SPD_AUDIO_PLUGIN_ENTRY spd_libao_LTX_spd_audio_plugin_get
+#endif
 #include <spd_audio_plugin.h>
 
 /* send a packet of XXX bytes to the sound device */
--- a/src/audio/nas.c
+++ b/src/audio/nas.c
@@ -32,7 +32,11 @@
 
 #include <pthread.h>
 
+#ifdef USE_DLOPEN
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
+#else
 #define SPD_AUDIO_PLUGIN_ENTRY spd_nas_LTX_spd_audio_plugin_get
+#endif
 #include <spd_audio_plugin.h>
 
 typedef struct {
--- a/src/audio/oss.c
+++ b/src/audio/oss.c
@@ -39,7 +39,11 @@
 
 #include <sys/soundcard.h>
 
+#ifdef USE_DLOPEN
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
+#else
 #define SPD_AUDIO_PLUGIN_ENTRY spd_oss_LTX_spd_audio_plugin_get
+#endif
 #include <spd_audio_plugin.h>
 
 typedef struct {
--- a/src/audio/pulse.c
+++ b/src/audio/pulse.c
@@ -51,7 +51,11 @@
 #include <pulse/simple.h>
 #include <pulse/error.h>
 
+#ifdef USE_DLOPEN
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
+#else
 #define SPD_AUDIO_PLUGIN_ENTRY spd_pulse_LTX_spd_audio_plugin_get
+#endif
 #include <spd_audio_plugin.h>
 
 typedef struct {
--- a/src/common/spd_audio.c
+++ b/src/common/spd_audio.c
@@ -120,7 +120,7 @@ AudioID *spd_audio_open(const char *name, void **pars, char **error)
 		plugin_dir = PLUGIN_DIR;
 
 #ifdef USE_DLOPEN
-	libname = g_strdup_printf("%s/" SPD_AUDIO_LIB_PREFIX "%s", plugin_dir, name);
+	libname = g_strdup_printf("%s/" SPD_AUDIO_LIB_PREFIX "%s.so", plugin_dir, name);
 	dlhandle = dlopen(libname, RTLD_NOW | RTLD_GLOBAL);
 
 	g_free(libname);