[pulseaudio] 02/09: Refreshed patches
Luke Yelavich
themuso-guest at moszumanska.debian.org
Thu Aug 25 22:10:10 UTC 2016
This is an automated email from the git hooks/post-receive script.
themuso-guest pushed a commit to branch ubuntu
in repository pulseaudio.
commit 741432349a32dc7d0bcac45b7c283c337f013b03
Author: Luke Yelavich <themuso at ubuntu.com>
Date: Wed Jun 1 12:33:51 2016 +1000
Refreshed patches
---
.../0005-dont-load-cork-music-on-phone.patch | 2 +-
...rapper-Quit-daemon-if-pid-file-is-removed.patch | 6 +-
...Quick-workaround-for-potential-index-out-.patch | 40 ------------
...0203-card-Add-hook-before-profile-changes.patch | 8 +--
debian/patches/0207-Enable-pulseaudio-droid.patch | 12 ++--
...-corking-a-sink-input-stream-when-stalled.patch | 14 ++---
.../0407-access-Add-access-control-hooks.patch | 8 +--
.../0408-protocol-native-add-access-checks.patch | 72 +++++++++++-----------
debian/patches/0409-Trust-store-patch.patch | 43 +++----------
.../0417-increase-timeout-check-apparmor.patch | 2 +-
...th-bluez5-bring-back-SCO-over-PCM-support.patch | 67 ++++++++++----------
...luez5-prevent-SCO-sink-source-to-be-suspe.patch | 33 +++++-----
...with-upstream-for-Android-5-support-and-b.patch | 12 ++--
.../0700-modules-add-snappy-policy-module.patch | 30 ++++-----
debian/patches/series | 1 -
15 files changed, 140 insertions(+), 210 deletions(-)
diff --git a/debian/patches/0005-dont-load-cork-music-on-phone.patch b/debian/patches/0005-dont-load-cork-music-on-phone.patch
index 2894175..4346c12 100644
--- a/debian/patches/0005-dont-load-cork-music-on-phone.patch
+++ b/debian/patches/0005-dont-load-cork-music-on-phone.patch
@@ -2,7 +2,7 @@ Index: pulseaudio/src/daemon/default.pa.in
===================================================================
--- pulseaudio.orig/src/daemon/default.pa.in
+++ pulseaudio/src/daemon/default.pa.in
-@@ -164,7 +164,7 @@ load-module module-systemd-login
+@@ -151,7 +151,7 @@ load-module module-systemd-login
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
diff --git a/debian/patches/0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch b/debian/patches/0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
index 3826118..87d8d70 100644
--- a/debian/patches/0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
+++ b/debian/patches/0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
@@ -29,7 +29,7 @@ Index: pulseaudio/src/Makefile.am
===================================================================
--- pulseaudio.orig/src/Makefile.am
+++ pulseaudio/src/Makefile.am
-@@ -938,6 +938,7 @@ libpulsecore_ at PA_MAJORMINOR@_la_SOURCES
+@@ -946,6 +946,7 @@ libpulsecore_ at PA_MAJORMINOR@_la_SOURCES
pulsecore/core-subscribe.c pulsecore/core-subscribe.h \
pulsecore/core.c pulsecore/core.h \
pulsecore/hook-list.c pulsecore/hook-list.h \
@@ -81,7 +81,7 @@ Index: pulseaudio/src/daemon/main.c
int autospawn_fd = -1;
bool autospawn_locked = false;
#ifdef HAVE_DBUS
-@@ -1022,6 +1032,9 @@ int main(int argc, char *argv[]) {
+@@ -1024,6 +1034,9 @@ int main(int argc, char *argv[]) {
goto finish;
}
@@ -91,7 +91,7 @@ Index: pulseaudio/src/daemon/main.c
c->default_sample_spec = conf->default_sample_spec;
c->alternate_sample_rate = conf->alternate_sample_rate;
c->default_channel_map = conf->default_channel_map;
-@@ -1162,6 +1175,9 @@ finish:
+@@ -1164,6 +1177,9 @@ finish:
pa_autospawn_lock_done(false);
}
diff --git a/debian/patches/0024-alsa-mixer-Quick-workaround-for-potential-index-out-.patch b/debian/patches/0024-alsa-mixer-Quick-workaround-for-potential-index-out-.patch
deleted file mode 100644
index 3a524f4..0000000
--- a/debian/patches/0024-alsa-mixer-Quick-workaround-for-potential-index-out-.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8d3a93d699e94d461e6ad814e731765c91a36ec4 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Mon, 21 Mar 2016 10:28:02 +0100
-Subject: [PATCH] alsa-mixer: Quick workaround for potential
- index-out-of-bounds access
-
-This might fix (LP: #1539209) but I'm not sure.
-
-Upstream had a bigger refactor of the function instead, which
-also fixes the problem (see
-"alsa-mixer: refactor element_probe and fix >2 channel bug" upstream).
-
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
----
- src/modules/alsa/alsa-mixer.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
-index 1fe2a02..ed5fcf7 100644
---- a/src/modules/alsa/alsa-mixer.c
-+++ b/src/modules/alsa/alsa-mixer.c
-@@ -1751,6 +1751,7 @@ static int element_probe(pa_alsa_element *e, snd_mixer_t *m) {
-
- if (e->n_channels <= 0) {
- pa_log_warn("Volume element %s with no channels?", e->alsa_name);
-+ e->n_channels = 1; /* Diwic: quick workaround so that we don't index out of bounds a few rows later */
- e->volume_use = PA_ALSA_VOLUME_IGNORE;
- }
-
-@@ -1767,6 +1768,7 @@ static int element_probe(pa_alsa_element *e, snd_mixer_t *m) {
- * don't support elements with more than two
- * channels... */
- pa_log_warn("Volume element %s has %u channels. That's too much! I can't handle that!", e->alsa_name, e->n_channels);
-+ e->n_channels = 1; /* Diwic: quick workaround so that we don't index out of bounds a few rows later */
- e->volume_use = PA_ALSA_VOLUME_IGNORE;
- }
-
---
-2.7.3
-
diff --git a/debian/patches/0203-card-Add-hook-before-profile-changes.patch b/debian/patches/0203-card-Add-hook-before-profile-changes.patch
index 5af5223..08172cb 100644
--- a/debian/patches/0203-card-Add-hook-before-profile-changes.patch
+++ b/debian/patches/0203-card-Add-hook-before-profile-changes.patch
@@ -14,7 +14,7 @@ Index: pulseaudio/src/pulsecore/card.c
===================================================================
--- pulseaudio.orig/src/pulsecore/card.c
+++ pulseaudio/src/pulsecore/card.c
-@@ -291,6 +291,8 @@ int pa_card_set_profile(pa_card *c, pa_c
+@@ -303,6 +303,8 @@ int pa_card_set_profile(pa_card *c, pa_c
return 0;
}
@@ -27,11 +27,11 @@ Index: pulseaudio/src/pulsecore/core.h
===================================================================
--- pulseaudio.orig/src/pulsecore/core.h
+++ pulseaudio/src/pulsecore/core.h
-@@ -121,6 +121,7 @@ typedef enum pa_core_hook {
- PA_CORE_HOOK_CARD_PUT,
+@@ -122,6 +122,7 @@ typedef enum pa_core_hook {
PA_CORE_HOOK_CARD_UNLINK,
+ PA_CORE_HOOK_CARD_PREFERRED_PORT_CHANGED,
PA_CORE_HOOK_CARD_PROFILE_CHANGED,
+ PA_CORE_HOOK_CARD_PROFILE_CHANGING,
PA_CORE_HOOK_CARD_PROFILE_ADDED,
PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED,
- PA_CORE_HOOK_PORT_AVAILABLE_CHANGED,
+ PA_CORE_HOOK_CARD_SUSPEND_CHANGED,
diff --git a/debian/patches/0207-Enable-pulseaudio-droid.patch b/debian/patches/0207-Enable-pulseaudio-droid.patch
index 3d2f530..efeda4a 100644
--- a/debian/patches/0207-Enable-pulseaudio-droid.patch
+++ b/debian/patches/0207-Enable-pulseaudio-droid.patch
@@ -2,7 +2,7 @@ Index: pulseaudio/configure.ac
===================================================================
--- pulseaudio.orig/configure.ac
+++ pulseaudio/configure.ac
-@@ -822,6 +822,21 @@ AM_CONDITIONAL([HAVE_ALSA], [test "x$HAV
+@@ -847,6 +847,21 @@ AM_CONDITIONAL([HAVE_ALSA], [test "x$HAV
AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
@@ -24,7 +24,7 @@ Index: pulseaudio/configure.ac
#### EsounD support (optional) ####
AC_ARG_ENABLE([esound],
-@@ -1536,6 +1551,7 @@ AS_IF([test "x$HAVE_X11" = "x1"], ENABLE
+@@ -1567,6 +1582,7 @@ AS_IF([test "x$HAVE_X11" = "x1"], ENABLE
AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
@@ -32,7 +32,7 @@ Index: pulseaudio/configure.ac
AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
-@@ -1598,6 +1614,7 @@ echo "
+@@ -1630,6 +1646,7 @@ echo "
Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
Enable EsounD: ${ENABLE_ESOUND}
Enable Alsa: ${ENABLE_ALSA}
@@ -44,7 +44,7 @@ Index: pulseaudio/src/Makefile.am
===================================================================
--- pulseaudio.orig/src/Makefile.am
+++ pulseaudio/src/Makefile.am
-@@ -1273,6 +1273,16 @@ modlibexec_LTLIBRARIES += \
+@@ -1281,6 +1281,16 @@ modlibexec_LTLIBRARIES += \
module-alsa-source.la \
module-alsa-card.la
@@ -61,7 +61,7 @@ Index: pulseaudio/src/Makefile.am
dist_alsaprofilesets_DATA = \
modules/alsa/mixer/profile-sets/default.conf \
modules/alsa/mixer/profile-sets/force-speaker.conf \
-@@ -1543,6 +1553,13 @@ SYMDEF_FILES = \
+@@ -1551,6 +1561,13 @@ SYMDEF_FILES = \
module-filter-apply-symdef.h \
module-filter-heuristics-symdef.h
@@ -75,7 +75,7 @@ Index: pulseaudio/src/Makefile.am
if HAVE_ESOUND
SYMDEF_FILES += \
module-esound-protocol-tcp-symdef.h \
-@@ -1852,6 +1869,44 @@ libalsa_util_la_LIBADD += $(DBUS_LIBS)
+@@ -1860,6 +1877,44 @@ libalsa_util_la_LIBADD += $(DBUS_LIBS)
libalsa_util_la_CFLAGS += $(DBUS_CFLAGS)
endif
diff --git a/debian/patches/0211-corking-a-sink-input-stream-when-stalled.patch b/debian/patches/0211-corking-a-sink-input-stream-when-stalled.patch
index e1f5fe0..4b32451 100644
--- a/debian/patches/0211-corking-a-sink-input-stream-when-stalled.patch
+++ b/debian/patches/0211-corking-a-sink-input-stream-when-stalled.patch
@@ -22,7 +22,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
===================================================================
--- pulseaudio.orig/src/pulsecore/protocol-native.c
+++ pulseaudio/src/pulsecore/protocol-native.c
-@@ -124,6 +124,10 @@ typedef struct playback_stream {
+@@ -126,6 +126,10 @@ typedef struct playback_stream {
bool is_underrun:1;
bool drain_request:1;
@@ -33,7 +33,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
uint32_t drain_tag;
uint32_t syncid;
-@@ -218,7 +222,9 @@ enum {
+@@ -226,7 +230,9 @@ enum {
PLAYBACK_STREAM_MESSAGE_OVERFLOW,
PLAYBACK_STREAM_MESSAGE_DRAIN_ACK,
PLAYBACK_STREAM_MESSAGE_STARTED,
@@ -44,7 +44,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
};
enum {
-@@ -832,6 +838,18 @@ static int playback_stream_process_msg(p
+@@ -843,6 +849,18 @@ static int playback_stream_process_msg(p
break;
}
@@ -63,7 +63,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
case PLAYBACK_STREAM_MESSAGE_UNDERFLOW: {
pa_tagstruct *t;
-@@ -1184,6 +1202,12 @@ static playback_stream* playback_stream_
+@@ -1195,6 +1213,12 @@ static playback_stream* playback_stream_
s->sink_input = sink_input;
s->is_underrun = true;
s->drain_request = false;
@@ -76,7 +76,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_atomic_store(&s->missing, 0);
s->buffer_attr_req = *a;
s->adjust_latency = adjust_latency;
-@@ -1426,6 +1450,12 @@ static void handle_seek(playback_stream
+@@ -1440,6 +1464,12 @@ static void handle_seek(playback_stream
/* We just ended an underrun, let's ask the sink
* for a complete rewind rewrite */
@@ -89,7 +89,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_log_debug("Requesting rewind due to end of underrun.");
pa_sink_input_request_rewind(s->sink_input,
(size_t) (s->sink_input->thread_info.underrun_for == (uint64_t) -1 ? 0 :
-@@ -1605,6 +1635,15 @@ static int sink_input_process_msg(pa_msg
+@@ -1619,6 +1649,15 @@ static int sink_input_process_msg(pa_msg
return pa_sink_input_process_msg(o, code, userdata, offset, chunk);
}
@@ -105,7 +105,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
static bool handle_input_underrun(playback_stream *s, bool force) {
bool send_drain;
-@@ -1656,6 +1695,9 @@ static int sink_input_pop_cb(pa_sink_inp
+@@ -1670,6 +1709,9 @@ static int sink_input_pop_cb(pa_sink_inp
if (!handle_input_underrun(s, false))
s->is_underrun = false;
diff --git a/debian/patches/0407-access-Add-access-control-hooks.patch b/debian/patches/0407-access-Add-access-control-hooks.patch
index 21b33e5..5b7b07b 100644
--- a/debian/patches/0407-access-Add-access-control-hooks.patch
+++ b/debian/patches/0407-access-Add-access-control-hooks.patch
@@ -16,7 +16,7 @@ Index: pulseaudio/src/Makefile.am
===================================================================
--- pulseaudio.orig/src/Makefile.am
+++ pulseaudio/src/Makefile.am
-@@ -641,6 +641,7 @@ commonlib_LTLIBRARIES = \
+@@ -643,6 +643,7 @@ commonlib_LTLIBRARIES = \
# to the existing libpulse being linked to libpulsecommon). Duplicating the
# code allows us to prevent this circular linking.
libpulsecommon_ at PA_MAJORMINOR@_la_SOURCES = \
@@ -135,7 +135,7 @@ Index: pulseaudio/src/pulsecore/core.c
===================================================================
--- pulseaudio.orig/src/pulsecore/core.c
+++ pulseaudio/src/pulsecore/core.c
-@@ -151,6 +151,9 @@ pa_core* pa_core_new(pa_mainloop_api *m,
+@@ -150,6 +150,9 @@ pa_core* pa_core_new(pa_mainloop_api *m,
for (j = 0; j < PA_CORE_HOOK_MAX; j++)
pa_hook_init(&c->hooks[j], c);
@@ -145,7 +145,7 @@ Index: pulseaudio/src/pulsecore/core.c
pa_random(&c->cookie, sizeof(c->cookie));
#ifdef SIGPIPE
-@@ -222,6 +225,8 @@ static void core_free(pa_object *o) {
+@@ -219,6 +222,8 @@ static void core_free(pa_object *o) {
for (j = 0; j < PA_CORE_HOOK_MAX; j++)
pa_hook_done(&c->hooks[j]);
@@ -166,7 +166,7 @@ Index: pulseaudio/src/pulsecore/core.h
typedef enum pa_server_type {
PA_SERVER_TYPE_UNSET,
-@@ -206,6 +207,8 @@ struct pa_core {
+@@ -211,6 +212,8 @@ struct pa_core {
/* hooks */
pa_hook hooks[PA_CORE_HOOK_MAX];
diff --git a/debian/patches/0408-protocol-native-add-access-checks.patch b/debian/patches/0408-protocol-native-add-access-checks.patch
index 04caade..ed96213 100644
--- a/debian/patches/0408-protocol-native-add-access-checks.patch
+++ b/debian/patches/0408-protocol-native-add-access-checks.patch
@@ -24,15 +24,15 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
===================================================================
--- pulseaudio.orig/src/pulsecore/protocol-native.c
+++ pulseaudio/src/pulsecore/protocol-native.c
-@@ -300,6 +300,7 @@ static void command_set_card_profile(pa_
- static void command_set_sink_or_source_port(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata);
+@@ -309,6 +309,7 @@ static void command_set_sink_or_source_p
static void command_set_port_latency_offset(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata);
static void command_enable_srbchannel(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata);
+ static void command_register_memfd_shmid(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata);
+static pa_hook_result_t check_access(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata, uint32_t idx, pa_subscription_event_type_t event, const char *name);
static const pa_pdispatch_cb_t command_table[PA_COMMAND_MAX] = {
[PA_COMMAND_ERROR] = NULL,
-@@ -2015,6 +2016,23 @@ if (!(expression)) { \
+@@ -2029,6 +2030,23 @@ if (!(expression)) { \
} \
} while(0);
@@ -56,7 +56,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
static pa_tagstruct *reply_new(uint32_t tag) {
pa_tagstruct *reply;
-@@ -2092,6 +2110,8 @@ static void command_create_playback_stre
+@@ -2106,6 +2124,8 @@ static void command_create_playback_stre
CHECK_VALIDITY_GOTO(c->pstream, !sink_name || sink_index == PA_INVALID_INDEX, tag, PA_ERR_INVALID, finish);
CHECK_VALIDITY_GOTO(c->pstream, pa_cvolume_valid(&volume), tag, PA_ERR_INVALID, finish);
@@ -65,7 +65,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
p = pa_proplist_new();
if (name)
-@@ -2413,6 +2433,8 @@ static void command_create_record_stream
+@@ -2427,6 +2447,8 @@ static void command_create_record_stream
CHECK_VALIDITY_GOTO(c->pstream, source_index == PA_INVALID_INDEX || !source_name, tag, PA_ERR_INVALID, finish);
CHECK_VALIDITY_GOTO(c->pstream, !source_name || source_index == PA_INVALID_INDEX, tag, PA_ERR_INVALID, finish);
@@ -74,7 +74,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
p = pa_proplist_new();
if (name)
-@@ -2618,6 +2640,7 @@ static void command_exit(pa_pdispatch *p
+@@ -2632,6 +2654,7 @@ static void command_exit(pa_pdispatch *p
}
CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
@@ -82,7 +82,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
ret = pa_core_exit(c->protocol->core, false, 0);
CHECK_VALIDITY(c->pstream, ret >= 0, tag, PA_ERR_ACCESS);
-@@ -2938,6 +2961,7 @@ static void command_stat(pa_pdispatch *p
+@@ -3028,6 +3051,7 @@ static void command_stat(pa_pdispatch *p
}
CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
@@ -90,7 +90,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
stat = pa_mempool_get_stat(c->protocol->core->mempool);
-@@ -3064,6 +3088,8 @@ static void command_create_upload_stream
+@@ -3154,6 +3178,8 @@ static void command_create_upload_stream
CHECK_VALIDITY(c->pstream, (length % pa_frame_size(&ss)) == 0 && length > 0, tag, PA_ERR_INVALID);
CHECK_VALIDITY(c->pstream, length <= PA_SCACHE_ENTRY_SIZE_MAX, tag, PA_ERR_TOOLARGE);
@@ -99,7 +99,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
p = pa_proplist_new();
if ((c->version >= 13 && pa_tagstruct_get_proplist(t, p) < 0) ||
-@@ -3162,6 +3188,8 @@ static void command_play_sample(pa_pdisp
+@@ -3252,6 +3278,8 @@ static void command_play_sample(pa_pdisp
CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
@@ -108,7 +108,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
p = pa_proplist_new();
if ((c->version >= 13 && pa_tagstruct_get_proplist(t, p) < 0) ||
-@@ -3205,6 +3233,8 @@ static void command_remove_sample(pa_pdi
+@@ -3295,6 +3323,8 @@ static void command_remove_sample(pa_pdi
CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
CHECK_VALIDITY(c->pstream, name && pa_namereg_is_valid_name(name), tag, PA_ERR_INVALID);
@@ -117,7 +117,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (pa_scache_remove_item(c->protocol->core, name) < 0) {
pa_pstream_send_error(c->pstream, tag, PA_ERR_NOENTITY);
return;
-@@ -3653,6 +3683,8 @@ static void command_get_info(pa_pdispatc
+@@ -3743,6 +3773,8 @@ static void command_get_info(pa_pdispatc
return;
}
@@ -126,7 +126,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
reply = reply_new(tag);
if (sink)
sink_fill_tagstruct(c, reply, sink);
-@@ -3713,6 +3745,8 @@ static void command_get_info_list(pa_pdi
+@@ -3803,6 +3835,8 @@ static void command_get_info_list(pa_pdi
if (i) {
PA_IDXSET_FOREACH(p, i, idx) {
@@ -135,7 +135,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (command == PA_COMMAND_GET_SINK_INFO_LIST)
sink_fill_tagstruct(c, reply, p);
else if (command == PA_COMMAND_GET_SOURCE_INFO_LIST)
-@@ -3735,6 +3769,11 @@ static void command_get_info_list(pa_pdi
+@@ -3825,6 +3859,11 @@ static void command_get_info_list(pa_pdi
}
pa_pstream_send_tagstruct(c->pstream, reply);
@@ -147,7 +147,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
}
static void command_get_server_info(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) {
-@@ -3755,6 +3794,15 @@ static void command_get_server_info(pa_p
+@@ -3845,6 +3884,15 @@ static void command_get_server_info(pa_p
CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
@@ -163,7 +163,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
reply = reply_new(tag);
pa_tagstruct_puts(reply, PACKAGE_NAME);
pa_tagstruct_puts(reply, PACKAGE_VERSION);
-@@ -3770,9 +3818,7 @@ static void command_get_server_info(pa_p
+@@ -3860,9 +3908,7 @@ static void command_get_server_info(pa_p
fixup_sample_spec(c, &fixed_ss, &c->protocol->core->default_sample_spec);
pa_tagstruct_put_sample_spec(reply, &fixed_ss);
@@ -173,7 +173,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_tagstruct_puts(reply, def_source ? def_source->name : NULL);
pa_tagstruct_putu32(reply, c->protocol->core->cookie);
-@@ -3891,6 +3937,8 @@ static void command_set_volume(
+@@ -3981,6 +4027,8 @@ static void command_set_volume(
client_name = pa_strnull(pa_proplist_gets(c->client->proplist, PA_PROP_APPLICATION_PROCESS_BINARY));
@@ -182,7 +182,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (sink) {
CHECK_VALIDITY(c->pstream, volume.channels == 1 || pa_cvolume_compatible(&volume, &sink->sample_spec), tag, PA_ERR_INVALID);
-@@ -3986,6 +4034,8 @@ static void command_set_mute(
+@@ -4076,6 +4124,8 @@ static void command_set_mute(
CHECK_VALIDITY(c->pstream, si || so || sink || source, tag, PA_ERR_NOENTITY);
@@ -191,7 +191,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
client_name = pa_strnull(pa_proplist_gets(c->client->proplist, PA_PROP_APPLICATION_PROCESS_BINARY));
if (sink) {
-@@ -4449,6 +4499,7 @@ static void command_set_default_sink_or_
+@@ -4539,6 +4589,7 @@ static void command_set_default_sink_or_
source = pa_namereg_get(c->protocol->core, s, PA_NAMEREG_SOURCE);
CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
@@ -199,7 +199,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_namereg_set_default_source(c->protocol->core, source);
} else {
-@@ -4457,6 +4508,7 @@ static void command_set_default_sink_or_
+@@ -4547,6 +4598,7 @@ static void command_set_default_sink_or_
sink = pa_namereg_get(c->protocol->core, s, PA_NAMEREG_SINK);
CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
@@ -207,7 +207,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_namereg_set_default_sink(c->protocol->core, sink);
}
-@@ -4524,6 +4576,7 @@ static void command_kill(pa_pdispatch *p
+@@ -4614,6 +4666,7 @@ static void command_kill(pa_pdispatch *p
client = pa_idxset_get_by_index(c->protocol->core->clients, idx);
CHECK_VALIDITY(c->pstream, client, tag, PA_ERR_NOENTITY);
@@ -215,7 +215,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_native_connection_ref(c);
pa_client_kill(client);
-@@ -4533,6 +4586,7 @@ static void command_kill(pa_pdispatch *p
+@@ -4623,6 +4676,7 @@ static void command_kill(pa_pdispatch *p
s = pa_idxset_get_by_index(c->protocol->core->sink_inputs, idx);
CHECK_VALIDITY(c->pstream, s, tag, PA_ERR_NOENTITY);
@@ -223,7 +223,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_native_connection_ref(c);
pa_sink_input_kill(s);
-@@ -4543,6 +4597,7 @@ static void command_kill(pa_pdispatch *p
+@@ -4633,6 +4687,7 @@ static void command_kill(pa_pdispatch *p
s = pa_idxset_get_by_index(c->protocol->core->source_outputs, idx);
CHECK_VALIDITY(c->pstream, s, tag, PA_ERR_NOENTITY);
@@ -231,7 +231,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_native_connection_ref(c);
pa_source_output_kill(s);
-@@ -4572,6 +4627,8 @@ static void command_load_module(pa_pdisp
+@@ -4662,6 +4717,8 @@ static void command_load_module(pa_pdisp
CHECK_VALIDITY(c->pstream, name && *name && pa_utf8_valid(name) && !strchr(name, '/'), tag, PA_ERR_INVALID);
CHECK_VALIDITY(c->pstream, !argument || pa_utf8_valid(argument), tag, PA_ERR_INVALID);
@@ -240,7 +240,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (!(m = pa_module_load(c->protocol->core, name, argument))) {
pa_pstream_send_error(c->pstream, tag, PA_ERR_MODINITFAILED);
return;
-@@ -4600,6 +4657,8 @@ static void command_unload_module(pa_pdi
+@@ -4690,6 +4747,8 @@ static void command_unload_module(pa_pdi
m = pa_idxset_get_by_index(c->protocol->core->modules, idx);
CHECK_VALIDITY(c->pstream, m, tag, PA_ERR_NOENTITY);
@@ -249,7 +249,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_module_unload_request(m, false);
pa_pstream_send_simple_ack(c->pstream, tag);
}
-@@ -4638,6 +4697,7 @@ static void command_move_stream(pa_pdisp
+@@ -4728,6 +4787,7 @@ static void command_move_stream(pa_pdisp
sink = pa_namereg_get(c->protocol->core, name_device, PA_NAMEREG_SINK);
CHECK_VALIDITY(c->pstream, si && sink, tag, PA_ERR_NOENTITY);
@@ -257,7 +257,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (pa_sink_input_move_to(si, sink, true) < 0) {
pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID);
-@@ -4657,6 +4717,7 @@ static void command_move_stream(pa_pdisp
+@@ -4747,6 +4807,7 @@ static void command_move_stream(pa_pdisp
source = pa_namereg_get(c->protocol->core, name_device, PA_NAMEREG_SOURCE);
CHECK_VALIDITY(c->pstream, so && source, tag, PA_ERR_NOENTITY);
@@ -265,7 +265,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (pa_source_output_move_to(so, source, true) < 0) {
pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID);
-@@ -4692,6 +4753,8 @@ static void command_suspend(pa_pdispatch
+@@ -4782,6 +4843,8 @@ static void command_suspend(pa_pdispatch
if (idx == PA_INVALID_INDEX && name && !*name) {
@@ -274,7 +274,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_log_debug("%s all sinks", b ? "Suspending" : "Resuming");
if (pa_sink_suspend_all(c->protocol->core, b, PA_SUSPEND_USER) < 0) {
-@@ -4708,6 +4771,8 @@ static void command_suspend(pa_pdispatch
+@@ -4798,6 +4861,8 @@ static void command_suspend(pa_pdispatch
CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
@@ -283,7 +283,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_log_debug("%s of sink %s requested by client %" PRIu32 ".",
b ? "Suspending" : "Resuming", sink->name, c->client->index);
-@@ -4722,6 +4787,8 @@ static void command_suspend(pa_pdispatch
+@@ -4812,6 +4877,8 @@ static void command_suspend(pa_pdispatch
if (idx == PA_INVALID_INDEX && name && !*name) {
@@ -292,7 +292,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_log_debug("%s all sources", b ? "Suspending" : "Resuming");
if (pa_source_suspend_all(c->protocol->core, b, PA_SUSPEND_USER) < 0) {
-@@ -4739,6 +4806,8 @@ static void command_suspend(pa_pdispatch
+@@ -4829,6 +4896,8 @@ static void command_suspend(pa_pdispatch
CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
@@ -301,7 +301,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_log_debug("%s of source %s requested by client %" PRIu32 ".",
b ? "Suspending" : "Resuming", source->name, c->client->index);
-@@ -4782,6 +4851,8 @@ static void command_extension(pa_pdispat
+@@ -4872,6 +4941,8 @@ static void command_extension(pa_pdispat
CHECK_VALIDITY(c->pstream, m, tag, PA_ERR_NOEXTENSION);
CHECK_VALIDITY(c->pstream, m->load_once || idx != PA_INVALID_INDEX, tag, PA_ERR_INVALID);
@@ -310,7 +310,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
cb = (pa_native_protocol_ext_cb_t) (unsigned long) pa_hashmap_get(c->protocol->extensions, m);
CHECK_VALIDITY(c->pstream, cb, tag, PA_ERR_NOEXTENSION);
-@@ -4824,6 +4895,8 @@ static void command_set_card_profile(pa_
+@@ -4914,6 +4985,8 @@ static void command_set_card_profile(pa_
CHECK_VALIDITY(c->pstream, profile, tag, PA_ERR_NOENTITY);
@@ -319,7 +319,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if ((ret = pa_card_set_profile(card, profile, true)) < 0) {
pa_pstream_send_error(c->pstream, tag, -ret);
return;
-@@ -4864,6 +4937,8 @@ static void command_set_sink_or_source_p
+@@ -4954,6 +5027,8 @@ static void command_set_sink_or_source_p
CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
@@ -328,7 +328,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if ((ret = pa_sink_set_port(sink, port, true)) < 0) {
pa_pstream_send_error(c->pstream, tag, -ret);
return;
-@@ -4880,6 +4955,8 @@ static void command_set_sink_or_source_p
+@@ -4970,6 +5045,8 @@ static void command_set_sink_or_source_p
CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
@@ -337,7 +337,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if ((ret = pa_source_set_port(source, port, true)) < 0) {
pa_pstream_send_error(c->pstream, tag, -ret);
return;
-@@ -4924,6 +5001,8 @@ static void command_set_port_latency_off
+@@ -5014,6 +5091,8 @@ static void command_set_port_latency_off
port = pa_hashmap_get(card->ports, port_name);
CHECK_VALIDITY(c->pstream, port, tag, PA_ERR_NOENTITY);
@@ -346,7 +346,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_device_port_set_latency_offset(port, offset);
pa_pstream_send_simple_ack(c->pstream, tag);
-@@ -5464,3 +5543,136 @@ pa_client* pa_native_connection_get_clie
+@@ -5556,3 +5635,136 @@ pa_client* pa_native_connection_get_clie
return c->client;
}
diff --git a/debian/patches/0409-Trust-store-patch.patch b/debian/patches/0409-Trust-store-patch.patch
index f3c3958..c9c6f4b 100644
--- a/debian/patches/0409-Trust-store-patch.patch
+++ b/debian/patches/0409-Trust-store-patch.patch
@@ -17,7 +17,6 @@ Signed-off-by: David Henningsson <david.henningsson at canonical.com>
src/pulsecore/iochannel.c | 2 +
src/pulsecore/protocol-native.c | 13 ++
src/pulsecore/tagstruct.c | 1 +
- src/tests/connect-stress.c | 4 +-
12 files changed, 399 insertions(+), 7 deletions(-)
create mode 100644 src/modules/trust-store/module-trust-store.c
create mode 100644 src/modules/trust-store/truststore.cc
@@ -27,7 +26,7 @@ Index: pulseaudio/configure.ac
===================================================================
--- pulseaudio.orig/configure.ac
+++ pulseaudio/configure.ac
-@@ -1414,6 +1414,19 @@ AS_IF([test "x$enable_adrian_aec" != "xn
+@@ -1444,6 +1444,19 @@ AS_IF([test "x$enable_adrian_aec" != "xn
[HAVE_ADRIAN_EC=1])
AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
@@ -47,7 +46,7 @@ Index: pulseaudio/configure.ac
###################################
-@@ -1583,6 +1596,7 @@ AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"],
+@@ -1614,6 +1627,7 @@ AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"],
AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
@@ -55,7 +54,7 @@ Index: pulseaudio/configure.ac
AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
-@@ -1647,6 +1661,7 @@ echo "
+@@ -1679,6 +1693,7 @@ echo "
Enable speex (resampler, AEC): ${ENABLE_SPEEX}
Enable soxr (resampler): ${ENABLE_SOXR}
Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
@@ -67,7 +66,7 @@ Index: pulseaudio/src/Makefile.am
===================================================================
--- pulseaudio.orig/src/Makefile.am
+++ pulseaudio/src/Makefile.am
-@@ -1077,6 +1077,10 @@ if HAVE_WEBRTC
+@@ -1085,6 +1085,10 @@ if HAVE_WEBRTC
modlibexec_LTLIBRARIES += libwebrtc-util.la
endif
@@ -78,7 +77,7 @@ Index: pulseaudio/src/Makefile.am
if HAVE_ESOUND
modlibexec_LTLIBRARIES += \
libprotocol-esound.la
-@@ -1201,6 +1205,11 @@ modlibexec_LTLIBRARIES += \
+@@ -1209,6 +1213,11 @@ modlibexec_LTLIBRARIES += \
module-filter-heuristics.la \
module-role-ducking.la
@@ -90,7 +89,7 @@ Index: pulseaudio/src/Makefile.am
if HAVE_ESOUND
modlibexec_LTLIBRARIES += \
module-esound-protocol-tcp.la \
-@@ -1527,6 +1536,7 @@ SYMDEF_FILES = \
+@@ -1535,6 +1544,7 @@ SYMDEF_FILES = \
module-intended-roles-symdef.h \
module-suspend-on-idle-symdef.h \
module-echo-cancel-symdef.h \
@@ -98,7 +97,7 @@ Index: pulseaudio/src/Makefile.am
module-hal-detect-symdef.h \
module-udev-detect-symdef.h \
module-systemd-login-symdef.h \
-@@ -2119,6 +2129,20 @@ module_echo_cancel_la_CFLAGS += -DHAVE_W
+@@ -2129,6 +2139,20 @@ module_echo_cancel_la_CFLAGS += -DHAVE_W
module_echo_cancel_la_LIBADD += libwebrtc-util.la
endif
@@ -535,7 +534,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
===================================================================
--- pulseaudio.orig/src/pulsecore/protocol-native.c
+++ pulseaudio/src/pulsecore/protocol-native.c
-@@ -2814,6 +2814,13 @@ static void command_auth(pa_pdispatch *p
+@@ -2866,6 +2866,13 @@ static void command_auth(pa_pdispatch *p
do_shm = false;
#ifdef HAVE_CREDS
@@ -549,7 +548,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
if (do_shm) {
/* Only enable SHM if both sides are owned by the same
* user. This is a security measure because otherwise data
-@@ -5623,6 +5630,7 @@ typedef struct pa_protocol_native_access
+@@ -5715,6 +5722,7 @@ typedef struct pa_protocol_native_access
} pa_protocol_native_access_data;
static void check_access_finish_cb(pa_access_data *data, bool res) {
@@ -557,7 +556,7 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
pa_protocol_native_access_data *d = (pa_protocol_native_access_data *) data;
pa_native_connection *c = PA_NATIVE_CONNECTION(d->userdata);
-@@ -5631,6 +5639,11 @@ static void check_access_finish_cb(pa_ac
+@@ -5723,6 +5731,11 @@ static void check_access_finish_cb(pa_ac
goto finish;
}
@@ -569,28 +568,6 @@ Index: pulseaudio/src/pulsecore/protocol-native.c
/* call the dispatcher again, hopefully this time, the access check will
* fail or succeed immediately */
command_table[d->command](d->pd, d->command, d->tag, d->tc, d->userdata);
-Index: pulseaudio/src/tests/connect-stress.c
-===================================================================
---- pulseaudio.orig/src/tests/connect-stress.c
-+++ pulseaudio/src/tests/connect-stress.c
-@@ -63,7 +63,7 @@ static const pa_sample_spec sample_spec
-
- static void context_state_callback(pa_context *c, void *userdata);
-
--static void connect(const char *name, int *try) {
-+static void connect2(const char *name, int *try) {
- int ret;
- pa_mainloop_api *api;
-
-@@ -201,7 +201,7 @@ START_TEST (connect_stress_test) {
- streams[i] = NULL;
-
- for (i = 0; i < NTESTS; i++) {
-- connect(bname, &i);
-+ connect2(bname, &i);
- usleep(rand() % 500000);
- disconnect();
- usleep(rand() % 500000);
Index: pulseaudio/po/POTFILES.in
===================================================================
--- pulseaudio.orig/po/POTFILES.in
diff --git a/debian/patches/0417-increase-timeout-check-apparmor.patch b/debian/patches/0417-increase-timeout-check-apparmor.patch
index c48bede..5c544e7 100644
--- a/debian/patches/0417-increase-timeout-check-apparmor.patch
+++ b/debian/patches/0417-increase-timeout-check-apparmor.patch
@@ -91,7 +91,7 @@ Index: pulseaudio/src/Makefile.am
===================================================================
--- pulseaudio.orig/src/Makefile.am
+++ pulseaudio/src/Makefile.am
-@@ -2138,7 +2138,7 @@ libtruststore_util_la_LIBADD = libpulsec
+@@ -2148,7 +2148,7 @@ libtruststore_util_la_LIBADD = libpulsec
libtruststore_util_la_LDFLAGS = -avoid-version
module_trust_store_la_SOURCES = modules/trust-store/module-trust-store.c
diff --git a/debian/patches/0502-bluetooth-bluez5-bring-back-SCO-over-PCM-support.patch b/debian/patches/0502-bluetooth-bluez5-bring-back-SCO-over-PCM-support.patch
index c9758db..6f7079a 100644
--- a/debian/patches/0502-bluetooth-bluez5-bring-back-SCO-over-PCM-support.patch
+++ b/debian/patches/0502-bluetooth-bluez5-bring-back-SCO-over-PCM-support.patch
@@ -8,10 +8,10 @@ Subject: [PATCH 502/507] bluetooth: bluez5: bring back SCO over PCM support
src/modules/bluetooth/module-bluez5-discover.c | 19 +-
2 files changed, 346 insertions(+), 75 deletions(-)
-diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
-index 6ebcda2..999c254 100644
---- a/src/modules/bluetooth/module-bluez5-device.c
-+++ b/src/modules/bluetooth/module-bluez5-device.c
+Index: pulseaudio/src/modules/bluetooth/module-bluez5-device.c
+===================================================================
+--- pulseaudio.orig/src/modules/bluetooth/module-bluez5-device.c
++++ pulseaudio/src/modules/bluetooth/module-bluez5-device.c
@@ -30,6 +30,7 @@
#include <pulse/rtclock.h>
#include <pulse/timeval.h>
@@ -29,7 +29,7 @@ index 6ebcda2..999c254 100644
#include "a2dp-codecs.h"
#include "bluez5-util.h"
-@@ -54,7 +57,9 @@ PA_MODULE_AUTHOR("João Paulo Rechi Vita");
+@@ -54,7 +57,9 @@ PA_MODULE_AUTHOR("João Paulo Rechi Vita
PA_MODULE_DESCRIPTION("BlueZ 5 Bluetooth audio sink and source");
PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(false);
@@ -40,7 +40,7 @@ index 6ebcda2..999c254 100644
#define MAX_PLAYBACK_CATCH_UP_USEC (100 * PA_USEC_PER_MSEC)
#define FIXED_LATENCY_PLAYBACK_A2DP (25 * PA_USEC_PER_MSEC)
-@@ -66,8 +71,11 @@ PA_MODULE_USAGE("path=<device object path>");
+@@ -66,8 +71,11 @@ PA_MODULE_USAGE("path=<device object pat
#define BITPOOL_DEC_STEP 5
#define HSP_MAX_GAIN 15
@@ -91,7 +91,7 @@ index 6ebcda2..999c254 100644
};
typedef enum pa_bluetooth_form_factor {
-@@ -712,6 +736,11 @@ static void teardown_stream(struct userdata *u) {
+@@ -712,6 +736,11 @@ static void teardown_stream(struct userd
u->rtpoll_item = NULL;
}
@@ -103,7 +103,7 @@ index 6ebcda2..999c254 100644
if (u->stream_fd >= 0) {
pa_close(u->stream_fd);
u->stream_fd = -1;
-@@ -733,18 +762,29 @@ static void teardown_stream(struct userdata *u) {
+@@ -733,18 +762,29 @@ static void teardown_stream(struct userd
static int transport_acquire(struct userdata *u, bool optional) {
pa_assert(u->transport);
@@ -135,7 +135,7 @@ index 6ebcda2..999c254 100644
return 0;
}
-@@ -766,6 +806,10 @@ static void transport_release(struct userdata *u) {
+@@ -766,6 +806,10 @@ static void transport_release(struct use
/* Run from I/O thread */
static void transport_config_mtu(struct userdata *u) {
@@ -146,7 +146,7 @@ index 6ebcda2..999c254 100644
if (u->profile == PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT || u->profile == PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY) {
u->read_block_size = u->read_link_mtu;
u->write_block_size = u->write_link_mtu;
-@@ -779,6 +823,9 @@ static void transport_config_mtu(struct userdata *u) {
+@@ -779,6 +823,9 @@ static void transport_config_mtu(struct
/ u->sbc_info.frame_length * u->sbc_info.codesize;
}
@@ -156,7 +156,7 @@ index 6ebcda2..999c254 100644
if (u->sink) {
pa_sink_set_max_request_within_thread(u->sink, u->write_block_size);
pa_sink_set_fixed_latency_within_thread(u->sink,
-@@ -794,7 +841,7 @@ static void transport_config_mtu(struct userdata *u) {
+@@ -794,7 +841,7 @@ static void transport_config_mtu(struct
pa_bytes_to_usec(u->read_block_size, &u->sample_spec));
}
@@ -165,7 +165,7 @@ index 6ebcda2..999c254 100644
static void setup_stream(struct userdata *u) {
struct pollfd *pollfd;
int one;
-@@ -943,46 +990,52 @@ static int add_source(struct userdata *u) {
+@@ -943,46 +990,52 @@ static int add_source(struct userdata *u
pa_assert(u->transport);
@@ -249,7 +249,7 @@ index 6ebcda2..999c254 100644
return 0;
}
-@@ -1100,52 +1153,67 @@ static int add_sink(struct userdata *u) {
+@@ -1100,52 +1153,67 @@ static int add_sink(struct userdata *u)
pa_assert(u->transport);
@@ -348,7 +348,7 @@ index 6ebcda2..999c254 100644
if (u->profile == PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT || u->profile == PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY) {
u->sample_spec.format = PA_SAMPLE_S16LE;
u->sample_spec.channels = 1;
-@@ -1264,11 +1332,18 @@ static int setup_transport(struct userdata *u) {
+@@ -1264,11 +1332,18 @@ static int setup_transport(struct userda
pa_bluetooth_transport *t;
pa_assert(u);
@@ -368,7 +368,7 @@ index 6ebcda2..999c254 100644
if (!t || t->state <= PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED) {
pa_log_warn("Profile has no transport");
return -1;
-@@ -1305,11 +1380,16 @@ static int init_profile(struct userdata *u) {
+@@ -1305,11 +1380,16 @@ static int init_profile(struct userdata
pa_assert(u);
pa_assert(u->profile != PA_BLUETOOTH_PROFILE_OFF);
@@ -449,7 +449,7 @@ index 6ebcda2..999c254 100644
/* Run from main thread */
static int start_thread(struct userdata *u) {
pa_assert(u);
-@@ -1527,6 +1664,25 @@ static int start_thread(struct userdata *u) {
+@@ -1527,6 +1664,25 @@ static int start_thread(struct userdata
u->rtpoll = pa_rtpoll_new();
pa_thread_mq_init(&u->thread_mq, u->core->mainloop, u->rtpoll);
@@ -475,7 +475,7 @@ index 6ebcda2..999c254 100644
if (!(u->thread = pa_thread_new("bluetooth", thread_func, u))) {
pa_log_error("Failed to create IO thread");
return -1;
-@@ -1557,10 +1713,10 @@ static int start_thread(struct userdata *u) {
+@@ -1557,10 +1713,10 @@ static int start_thread(struct userdata
static void stop_thread(struct userdata *u) {
pa_assert(u);
@@ -488,7 +488,7 @@ index 6ebcda2..999c254 100644
pa_source_unlink(u->source);
if (u->thread) {
-@@ -1582,7 +1738,8 @@ static void stop_thread(struct userdata *u) {
+@@ -1582,7 +1738,8 @@ static void stop_thread(struct userdata
if (u->transport) {
transport_release(u);
@@ -498,7 +498,7 @@ index 6ebcda2..999c254 100644
}
if (u->sink) {
-@@ -1840,6 +1997,22 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
+@@ -1840,6 +1997,22 @@ static pa_card_profile *create_card_prof
return cp;
}
@@ -521,7 +521,7 @@ index 6ebcda2..999c254 100644
/* Run from main thread */
static int set_profile_cb(pa_card *c, pa_card_profile *new_profile) {
struct userdata *u;
-@@ -1851,6 +2024,10 @@ static int set_profile_cb(pa_card *c, pa_card_profile *new_profile) {
+@@ -1851,6 +2024,10 @@ static int set_profile_cb(pa_card *c, pa
p = PA_CARD_PROFILE_DATA(new_profile);
@@ -532,7 +532,7 @@ index 6ebcda2..999c254 100644
if (*p != PA_BLUETOOTH_PROFILE_OFF) {
const pa_bluetooth_device *d = u->device;
-@@ -1957,6 +2134,11 @@ static int add_card(struct userdata *u) {
+@@ -1957,6 +2134,11 @@ static int add_card(struct userdata *u)
p = PA_CARD_PROFILE_DATA(u->card->active_profile);
u->profile = *p;
@@ -544,7 +544,7 @@ index 6ebcda2..999c254 100644
return 0;
}
-@@ -1966,13 +2148,15 @@ static void handle_transport_state_change(struct userdata *u, struct pa_bluetoot
+@@ -1966,13 +2148,15 @@ static void handle_transport_state_chang
bool release = false;
pa_card_profile *cp;
pa_device_port *port;
@@ -562,7 +562,7 @@ index 6ebcda2..999c254 100644
pa_card_profile_set_available(cp, transport_state_to_availability(t->state));
/* Update port availability */
-@@ -1983,9 +2167,13 @@ static void handle_transport_state_change(struct userdata *u, struct pa_bluetoot
+@@ -1983,9 +2167,13 @@ static void handle_transport_state_chang
/* Acquire or release transport as needed */
acquire = (t->state == PA_BLUETOOTH_TRANSPORT_STATE_PLAYING && u->profile == t->profile);
@@ -577,7 +577,7 @@ index 6ebcda2..999c254 100644
if (u->source) {
pa_log_debug("Resuming source %s because its transport state changed to playing", u->source->name);
-@@ -2013,6 +2201,9 @@ static void handle_transport_state_change(struct userdata *u, struct pa_bluetoot
+@@ -2013,6 +2201,9 @@ static void handle_transport_state_chang
* BlueZ should probably release the transport automatically, and in
* that case we would just mark the transport as released */
@@ -587,7 +587,7 @@ index 6ebcda2..999c254 100644
/* Remote side closed the stream so we consider it PA_SUSPEND_USER */
if (u->source) {
pa_log_debug("Suspending source %s because the remote end closed the stream", u->source->name);
-@@ -2045,6 +2236,10 @@ static pa_hook_result_t transport_state_changed_cb(pa_bluetooth_discovery *y, pa
+@@ -2045,6 +2236,10 @@ static pa_hook_result_t transport_state_
pa_assert(t);
pa_assert(u);
@@ -598,7 +598,7 @@ index 6ebcda2..999c254 100644
if (t == u->transport && t->state <= PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED)
pa_assert_se(pa_card_set_profile(u->card, pa_hashmap_get(u->card->profiles, "off"), false) >= 0);
-@@ -2102,6 +2297,36 @@ static pa_hook_result_t transport_microphone_gain_changed_cb(pa_bluetooth_discov
+@@ -2102,6 +2297,36 @@ static pa_hook_result_t transport_microp
return PA_HOOK_OK;
}
@@ -707,10 +707,10 @@ index 6ebcda2..999c254 100644
pa_xfree(u);
}
-diff --git a/src/modules/bluetooth/module-bluez5-discover.c b/src/modules/bluetooth/module-bluez5-discover.c
-index 1ccc1d1..40ce562 100644
---- a/src/modules/bluetooth/module-bluez5-discover.c
-+++ b/src/modules/bluetooth/module-bluez5-discover.c
+Index: pulseaudio/src/modules/bluetooth/module-bluez5-discover.c
+===================================================================
+--- pulseaudio.orig/src/modules/bluetooth/module-bluez5-discover.c
++++ pulseaudio/src/modules/bluetooth/module-bluez5-discover.c
@@ -38,15 +38,20 @@ PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(true);
PA_MODULE_USAGE(
@@ -732,7 +732,7 @@ index 1ccc1d1..40ce562 100644
pa_core *core;
pa_hashmap *loaded_device_paths;
pa_hook_slot *device_connection_changed_slot;
-@@ -73,6 +78,16 @@ static pa_hook_result_t device_connection_changed_cb(pa_bluetooth_discovery *y,
+@@ -73,6 +78,16 @@ static pa_hook_result_t device_connectio
pa_module *m;
char *args = pa_sprintf_malloc("path=%s", d->path);
@@ -765,7 +765,7 @@ index 1ccc1d1..40ce562 100644
return 0;
fail:
-@@ -159,5 +174,7 @@ void pa__done(pa_module *m) {
+@@ -160,5 +175,7 @@ void pa__done(pa_module *m) {
if (u->loaded_device_paths)
pa_hashmap_free(u->loaded_device_paths);
@@ -773,6 +773,3 @@ index 1ccc1d1..40ce562 100644
+ pa_modargs_free(u->modargs);
pa_xfree(u);
}
---
-2.6.2
-
diff --git a/debian/patches/0506-bluetooth-bluez5-prevent-SCO-sink-source-to-be-suspe.patch b/debian/patches/0506-bluetooth-bluez5-prevent-SCO-sink-source-to-be-suspe.patch
index 9cbe51a..e86feed 100644
--- a/debian/patches/0506-bluetooth-bluez5-prevent-SCO-sink-source-to-be-suspe.patch
+++ b/debian/patches/0506-bluetooth-bluez5-prevent-SCO-sink-source-to-be-suspe.patch
@@ -12,11 +12,11 @@ selected for the droid card.
src/modules/bluetooth/module-bluez5-discover.c | 13 ++++
2 files changed, 96 insertions(+)
-diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
-index 07f88d0..f1e887c 100644
---- a/src/modules/bluetooth/module-bluez5-device.c
-+++ b/src/modules/bluetooth/module-bluez5-device.c
-@@ -73,6 +73,7 @@ PA_MODULE_USAGE("path=<device object path> "
+Index: pulseaudio/src/modules/bluetooth/module-bluez5-device.c
+===================================================================
+--- pulseaudio.orig/src/modules/bluetooth/module-bluez5-device.c
++++ pulseaudio/src/modules/bluetooth/module-bluez5-device.c
+@@ -73,6 +73,7 @@ PA_MODULE_USAGE("path=<device object pat
#define HSP_MAX_GAIN 15
#define USE_SCO_OVER_PCM(u) (u->profile == PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT && (u->hsp.sco_sink && u->hsp.sco_source))
@@ -34,7 +34,7 @@ index 07f88d0..f1e887c 100644
pa_bluetooth_discovery *discovery;
pa_bluetooth_device *device;
pa_bluetooth_transport *transport;
-@@ -1042,6 +1046,69 @@ static int add_source(struct userdata *u) {
+@@ -1042,6 +1046,69 @@ static int add_source(struct userdata *u
return 0;
}
@@ -104,7 +104,7 @@ index 07f88d0..f1e887c 100644
/* Run from IO thread */
static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offset, pa_memchunk *chunk) {
struct userdata *u = PA_SINK(o)->userdata;
-@@ -2036,6 +2103,13 @@ static int set_profile_cb(pa_card *c, pa_card_profile *new_profile) {
+@@ -2036,6 +2103,13 @@ static int set_profile_cb(pa_card *c, pa
if (!d->transports[*p] || d->transports[*p]->state <= PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED) {
pa_log_warn("Refused to switch profile to %s: Not connected", new_profile->name);
@@ -118,7 +118,7 @@ index 07f88d0..f1e887c 100644
return -PA_ERR_IO;
}
}
-@@ -2162,6 +2236,7 @@ static int add_card(struct userdata *u) {
+@@ -2162,6 +2236,7 @@ static int add_card(struct userdata *u)
pa_log_debug("Created card (current profile %s)",
pa_bluetooth_profile_to_string(u->profile));
@@ -148,10 +148,10 @@ index 07f88d0..f1e887c 100644
if (u->sbc_info.buffer)
pa_xfree(u->sbc_info.buffer);
-diff --git a/src/modules/bluetooth/module-bluez5-discover.c b/src/modules/bluetooth/module-bluez5-discover.c
-index 831e9e2..1f249cc 100644
---- a/src/modules/bluetooth/module-bluez5-discover.c
-+++ b/src/modules/bluetooth/module-bluez5-discover.c
+Index: pulseaudio/src/modules/bluetooth/module-bluez5-discover.c
+===================================================================
+--- pulseaudio.orig/src/modules/bluetooth/module-bluez5-discover.c
++++ pulseaudio/src/modules/bluetooth/module-bluez5-discover.c
@@ -38,12 +38,14 @@ PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(true);
PA_MODULE_USAGE(
@@ -167,7 +167,7 @@ index 831e9e2..1f249cc 100644
"sco_sink",
"sco_source",
NULL
-@@ -78,6 +80,15 @@ static pa_hook_result_t device_connection_changed_cb(pa_bluetooth_discovery *y,
+@@ -78,6 +80,15 @@ static pa_hook_result_t device_connectio
pa_module *m;
char *args = pa_sprintf_malloc("path=%s", d->path);
@@ -183,7 +183,7 @@ index 831e9e2..1f249cc 100644
if (pa_modargs_get_value(u->modargs, "sco_sink", NULL) &&
pa_modargs_get_value(u->modargs, "sco_source", NULL)) {
char *tmp;
-@@ -88,6 +99,7 @@ static pa_hook_result_t device_connection_changed_cb(pa_bluetooth_discovery *y,
+@@ -88,6 +99,7 @@ static pa_hook_result_t device_connectio
pa_xfree(args);
args = tmp;
}
@@ -191,13 +191,10 @@ index 831e9e2..1f249cc 100644
pa_log_debug("Loading module-bluez5-device %s", args);
m = pa_module_load(u->module->core, "module-bluez5-device", args);
pa_xfree(args);
-@@ -182,5 +194,6 @@ void pa__done(pa_module *m) {
+@@ -183,5 +195,6 @@ void pa__done(pa_module *m) {
if (u->modargs)
pa_modargs_free(u->modargs);
+
pa_xfree(u);
}
---
-2.6.2
-
diff --git a/debian/patches/0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch b/debian/patches/0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch
index 37d925c..50fcb63 100644
--- a/debian/patches/0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch
+++ b/debian/patches/0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch
@@ -31,7 +31,7 @@ Index: pulseaudio/configure.ac
===================================================================
--- pulseaudio.orig/configure.ac
+++ pulseaudio/configure.ac
-@@ -837,6 +837,23 @@ AS_IF([test "x$enable_android_hal" = "xy
+@@ -862,6 +862,23 @@ AS_IF([test "x$enable_android_hal" = "xy
AM_CONDITIONAL([HAVE_ANDROID], [test "x$HAVE_ANDROID" = "x1"])
AS_IF([test "x$HAVE_ANDROID" = "x1"], AC_DEFINE([HAVE_ANDROID], 1, [Have Android Audio HAL?]))
@@ -55,7 +55,7 @@ Index: pulseaudio/configure.ac
#### EsounD support (optional) ####
AC_ARG_ENABLE([esound],
-@@ -1565,6 +1582,8 @@ AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"],
+@@ -1596,6 +1613,8 @@ AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"],
AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
AS_IF([test "x$HAVE_ANDROID" = "x1"], ENABLE_ANDROID=yes, ENABLE_ANDROID=no)
@@ -64,7 +64,7 @@ Index: pulseaudio/configure.ac
AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
-@@ -1629,6 +1648,8 @@ echo "
+@@ -1661,6 +1680,8 @@ echo "
Enable EsounD: ${ENABLE_ESOUND}
Enable Alsa: ${ENABLE_ALSA}
Enable Android Audio HAL: ${ENABLE_ANDROID}
@@ -77,7 +77,7 @@ Index: pulseaudio/src/Makefile.am
===================================================================
--- pulseaudio.orig/src/Makefile.am
+++ pulseaudio/src/Makefile.am
-@@ -1285,12 +1285,25 @@ modlibexec_LTLIBRARIES += \
+@@ -1293,12 +1293,25 @@ modlibexec_LTLIBRARIES += \
if HAVE_ANDROID
modlibexec_LTLIBRARIES += \
@@ -109,7 +109,7 @@ Index: pulseaudio/src/Makefile.am
endif
dist_alsaprofilesets_DATA = \
-@@ -1566,9 +1579,19 @@ SYMDEF_FILES = \
+@@ -1574,9 +1587,19 @@ SYMDEF_FILES = \
if HAVE_ANDROID
SYMDEF_FILES += \
@@ -132,7 +132,7 @@ Index: pulseaudio/src/Makefile.am
endif
if HAVE_ESOUND
-@@ -1881,42 +1904,86 @@ libalsa_util_la_CFLAGS += $(DBUS_CFLAGS)
+@@ -1889,42 +1912,86 @@ libalsa_util_la_CFLAGS += $(DBUS_CFLAGS)
endif
if HAVE_ANDROID
diff --git a/debian/patches/0700-modules-add-snappy-policy-module.patch b/debian/patches/0700-modules-add-snappy-policy-module.patch
index ae0bf0e..1b1088e 100644
--- a/debian/patches/0700-modules-add-snappy-policy-module.patch
+++ b/debian/patches/0700-modules-add-snappy-policy-module.patch
@@ -10,11 +10,11 @@ Subject: [PATCH] modules: add snappy policy module
3 files changed, 129 insertions(+), 1 deletion(-)
create mode 100644 src/modules/module-snappy-policy.c
-Index: pa-debian/src/Makefile.am
+Index: pulseaudio/src/Makefile.am
===================================================================
---- pa-debian.orig/src/Makefile.am
-+++ pa-debian/src/Makefile.am
-@@ -1216,6 +1216,11 @@ modlibexec_LTLIBRARIES += \
+--- pulseaudio.orig/src/Makefile.am
++++ pulseaudio/src/Makefile.am
+@@ -1224,6 +1224,11 @@ modlibexec_LTLIBRARIES += \
module-esound-sink.la
endif
@@ -26,7 +26,7 @@ Index: pa-debian/src/Makefile.am
# See comment at librtp.la above
if !OS_IS_WIN32
modlibexec_LTLIBRARIES += \
-@@ -1603,6 +1608,11 @@ SYMDEF_FILES += \
+@@ -1611,6 +1616,11 @@ SYMDEF_FILES += \
module-esound-sink-symdef.h
endif
@@ -38,7 +38,7 @@ Index: pa-debian/src/Makefile.am
EXTRA_DIST += $(SYMDEF_FILES)
BUILT_SOURCES += $(SYMDEF_FILES) builddirs
-@@ -2210,6 +2220,14 @@ module_trust_store_la_LIBADD = $(MODULE_
+@@ -2220,6 +2230,14 @@ module_trust_store_la_LIBADD = $(MODULE_
module_trust_store_la_CFLAGS = $(AM_CFLAGS) -DHAVE_TRUST_STORE=1
endif
@@ -53,10 +53,10 @@ Index: pa-debian/src/Makefile.am
# RTP modules
module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c
module_rtp_send_la_LDFLAGS = $(MODULE_LDFLAGS)
-Index: pa-debian/src/modules/module-snappy-policy.c
+Index: pulseaudio/src/modules/module-snappy-policy.c
===================================================================
--- /dev/null
-+++ pa-debian/src/modules/module-snappy-policy.c
++++ pulseaudio/src/modules/module-snappy-policy.c
@@ -0,0 +1,98 @@
+/***
+ This file is part of PulseAudio.
@@ -156,16 +156,16 @@ Index: pa-debian/src/modules/module-snappy-policy.c
+ pa_xfree(u);
+ }
+}
-Index: pa-debian/configure.ac
+Index: pulseaudio/configure.ac
===================================================================
---- pa-debian.orig/configure.ac
-+++ pa-debian/configure.ac
-@@ -1445,6 +1445,19 @@ AS_IF([test "x$enable_trust_store" = "xy
+--- pulseaudio.orig/configure.ac
++++ pulseaudio/configure.ac
+@@ -1475,6 +1475,19 @@ AS_IF([test "x$enable_trust_store" = "xy
AM_CONDITIONAL([HAVE_TRUST_STORE], [test "x$HAVE_TRUST_STORE" = "x1"])
+# Snappy support
-+
++
+AC_ARG_ENABLE([snappy],
+ AS_HELP_STRING([--enable-snappy], [Enable snappy support]))
+
@@ -180,7 +180,7 @@ Index: pa-debian/configure.ac
###################################
# Output #
-@@ -1624,6 +1637,8 @@ AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x
+@@ -1655,6 +1668,8 @@ AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x
AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
@@ -189,7 +189,7 @@ Index: pa-debian/configure.ac
echo "
---{ $PACKAGE_NAME $VERSION }---
-@@ -1683,6 +1698,8 @@ echo "
+@@ -1715,6 +1730,8 @@ echo "
Enable soxr (resampler): ${ENABLE_SOXR}
Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
Enable Ubuntu trust store: ${ENABLE_TRUST_STORE}
diff --git a/debian/patches/series b/debian/patches/series
index 7ba17ab..3f490bc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,7 +4,6 @@
0006-load-module-x11-bell.patch
0016-nodisplay-autostart.patch
0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
-0024-alsa-mixer-Quick-workaround-for-potential-index-out-.patch
# Ubuntu touch stuff
0202-dont-probe-ucm.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-pulseaudio/pulseaudio.git
More information about the pkg-pulseaudio-devel
mailing list