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 <them...@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_@PA_MAJORMINOR@_la_SOURCES +@@ -946,6 +946,7 @@ libpulsecore_@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.hennings...@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.hennings...@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_@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.hennings...@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 _______________________________________________ pkg-pulseaudio-devel mailing list pkg-pulseaudio-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-pulseaudio-devel