Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian....@packages.debian.org
Usertags: pu

Dear release team,

There is a bug affecting pulseaudio users: #913102. This bug causes the
mute state to be incorrectly restored. Some users have asked for the fix
(which is now on unstable), to be backported to buster given that GDM is
affected by this bug. The upstream patch fixing this issue is very
small[1].

The full diff is attached.

[1] 
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/105/diffs?commit_id=7fb85e0a5bfdec339fda9f7584f65cf9ddbd50a1

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 
'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff --git a/debian/changelog b/debian/changelog
index 02916c2a1..1b9633855 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+pulseaudio (12.2-5) unstable; urgency=medium
+
+  * Pick upstream patch fixing mute state restoring (Closes: #913102)
+
+ -- Felipe Sateler <fsate...@debian.org>  Sun, 04 Aug 2019 21:18:02 -0400
+
 pulseaudio (12.2-4) unstable; urgency=medium
 
   [ Jan Graichen ]
diff --git a/debian/patches/series b/debian/patches/series
index 3e43a7538..37a72b94f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ volume-test.patch
 alsa-mixer-Update-to-support-Arctis-Pro-Wireless-headset.patch
 alsa-mixer-Add-support-for-2018-Arctis-7.patch
 Don-t-compile-with-ffast-math.patch
+sink-source-Don-t-change-suspend-cause-when-unlinking.patch
diff --git 
a/debian/patches/sink-source-Don-t-change-suspend-cause-when-unlinking.patch 
b/debian/patches/sink-source-Don-t-change-suspend-cause-when-unlinking.patch
new file mode 100644
index 000000000..efa780834
--- /dev/null
+++ b/debian/patches/sink-source-Don-t-change-suspend-cause-when-unlinking.patch
@@ -0,0 +1,47 @@
+From: Tanu Kaskinen <ta...@iki.fi>
+Date: Mon, 10 Jun 2019 14:18:47 +0300
+Subject: sink, source: Don't change suspend cause when unlinking
+
+See the added comments for why this is necessary.
+
+Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/667
+(cherry picked from commit 7fb85e0a5bfdec339fda9f7584f65cf9ddbd50a1)
+---
+ src/pulsecore/sink.c   | 6 +++++-
+ src/pulsecore/source.c | 6 +++++-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
+index 38e8e50..4abbbb0 100644
+--- a/src/pulsecore/sink.c
++++ b/src/pulsecore/sink.c
+@@ -760,7 +760,11 @@ void pa_sink_unlink(pa_sink* s) {
+     }
+ 
+     if (linked)
+-        sink_set_state(s, PA_SINK_UNLINKED, 0);
++        /* It's important to keep the suspend cause unchanged when unlinking,
++         * because if we remove the SESSION suspend cause here, the alsa sink
++         * will sync its volume with the hardware while another user is
++         * active, messing up the volume for that other user. */
++        sink_set_state(s, PA_SINK_UNLINKED, s->suspend_cause);
+     else
+         s->state = PA_SINK_UNLINKED;
+ 
+diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
+index 02ae87a..c11d89b 100644
+--- a/src/pulsecore/source.c
++++ b/src/pulsecore/source.c
+@@ -702,7 +702,11 @@ void pa_source_unlink(pa_source *s) {
+     }
+ 
+     if (linked)
+-        source_set_state(s, PA_SOURCE_UNLINKED, 0);
++        /* It's important to keep the suspend cause unchanged when unlinking,
++         * because if we remove the SESSION suspend cause here, the alsa
++         * source will sync its volume with the hardware while another user is
++         * active, messing up the volume for that other user. */
++        source_set_state(s, PA_SOURCE_UNLINKED, s->suspend_cause);
+     else
+         s->state = PA_SOURCE_UNLINKED;
+ 

Reply via email to