diff -pruN 16.1+dfsg1-2/debian/changelog 1:16.1+dfsg1-2ubuntu3/debian/changelog
--- 16.1+dfsg1-2/debian/changelog	2022-09-22 19:00:13.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/changelog	2023-02-15 01:44:55.000000000 +0000
@@ -1,3 +1,42 @@
+pulseaudio (1:16.1+dfsg1-2ubuntu3) lunar; urgency=medium
+
+  [ Kai-Heng Feng ]
+  * d/p/0015-bluetooth-Amend-writeout-to-send-more-initial-frames.patch
+    (LP: #2007331)
+
+ -- Kai-Heng Feng <kai.heng.feng@canonical.com>  Wed, 15 Feb 2023 09:44:55 +0800
+
+pulseaudio (1:16.1+dfsg1-2ubuntu2) lunar; urgency=medium
+
+  * Fix typo for snap build option
+
+ -- Jeremy Bicha <jbicha@ubuntu.com>  Wed, 08 Feb 2023 17:31:06 -0500
+
+pulseaudio (1:16.1+dfsg1-2ubuntu1) lunar; urgency=medium
+
+  * Sync with Debian. Remaining changes:
+    - Add epoch
+    - Recommend gstreamer1.0-plugins-good & suggest gstreamer1.0-plugins-bad
+    - Build-Depend on doxygen, libapparmor-dev, and libsnapd-glib-dev
+    - Enable snap build option
+    - Add patches:
+      + 0001-volume-config-changes.patch
+      + 0016-nodisplay-autostart.patch
+      + 0030-load-module-switch-on-connect.patch
+    - Add patches for Snap support:
+      + 0406-tagstruct-add-copy-method.patch
+      + 0407-access-Add-access-control-hooks.patch
+      + 0408-protocol-native-add-access-checks.patch
+      + 0409-fix-arg-parsing-after-async-hook.patch
+      + 0410-pa-client-peer-apparmor-label.patch
+      + 0700-modules-add-snappy-policy-module.patch
+      + 0701-enable-snap-policy-module.patch
+      + 0702-add-snappy-policy-module.patch
+      + 0016-check_off_profile_when_switching_profile.patch
+      + 0001-card-restore-setting-preferred-ports-in-entry_from_c.patch
+
+ -- Jeremy Bicha <jbicha@ubuntu.com>  Wed, 08 Feb 2023 17:06:19 -0500
+
 pulseaudio (16.1+dfsg1-2) unstable; urgency=medium
 
   * Team upload
@@ -5,6 +44,24 @@ pulseaudio (16.1+dfsg1-2) unstable; urge
 
  -- Jeremy Bicha <jbicha@ubuntu.com>  Thu, 22 Sep 2022 15:00:13 -0400
 
+pulseaudio (1:16.1+dfsg1-1ubuntu3) kinetic; urgency=medium
+
+  * Restore debian/tests/build
+
+ -- Jeremy Bicha <jbicha@ubuntu.com>  Fri, 26 Aug 2022 12:04:11 -0400
+
+pulseaudio (1:16.1+dfsg1-1ubuntu2) kinetic; urgency=medium
+
+  * 0700-modules-add-snappy-policy-modules.patch: Look for snapd-glib-2
+
+ -- Jeremy Bicha <jbicha@ubuntu.com>  Thu, 25 Aug 2022 22:00:19 -0400
+
+pulseaudio (1:16.1+dfsg1-1ubuntu1) kinetic; urgency=medium
+
+  * Resynchronize on Debian
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Fri, 24 Jun 2022 14:23:08 +0200
+
 pulseaudio (16.1+dfsg1-1) experimental; urgency=medium
 
   * Correctly use gbp import to regenerate a dfsg tarball
@@ -40,25 +97,6 @@ pulseaudio (15.99.1+dfsg1-1) experimenta
 
  -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 24 Feb 2022 22:03:52 +0100
 
-pulseaudio (15.0+dfsg1-4) unstable; urgency=medium
-
-  [ Diederik de Haas ]
-  * Create /etc/pulse/system.pa.d to store additional configuration snippets
-    for system.pa (Closes: #994708)
-
-  [ Laurent Bigonville ]
-  * Enable gstreamer support.  This is mainly needed to use different codecs
-    for Bluetooth headsets (Closes: #991597, #954434)
-  * Fix LDAC RTP payloading.  Without this, LDAC is not working with recent
-    Sony devices
-
-  [ Debian Janitor ]
-  * Remove 5 obsolete maintscript entries in 1 files.
-  * Bump debhelper from old 12 to 13. + debian/rules: Drop --fail-missing
-    argument to dh_missing, which is now the default.
-
- -- Laurent Bigonville <bigon@debian.org>  Tue, 22 Feb 2022 14:57:31 +0100
-
 pulseaudio (15.0+dfsg1-3) unstable; urgency=medium
 
   * Team upload.
@@ -83,6 +121,51 @@ pulseaudio (15.0+dfsg1-2) unstable; urge
 
  -- Felipe Sateler <fsateler@debian.org>  Tue, 17 Aug 2021 19:16:03 -0400
 
+pulseaudio (1:15.0+dfsg1-1ubuntu6) jammy; urgency=medium
+
+  * debian/control: build-depends on doxygen
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 24 Nov 2021 10:10:01 +0100
+
+pulseaudio (1:15.0+dfsg1-1ubuntu5) jammy; urgency=medium
+
+  * debian/rules:
+    - fix a typo in one of the build option
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 24 Nov 2021 09:49:25 +0100
+
+pulseaudio (1:15.0+dfsg1-1ubuntu4) jammy; urgency=medium
+
+  * d/p/0001-card-restore-setting-preferred-ports-in-entry_from_c.patch
+    - cherry pick an upstream commit to fix the issue of hdmi can't be
+      restored after s3 resume (LP: #1951667)
+
+ -- Hui Wang <hui.wang@canonical.com>  Sat, 20 Nov 2021 11:56:36 +0800
+
+pulseaudio (1:15.0+dfsg1-1ubuntu3) jammy; urgency=medium
+
+  * debian/patches/gitlab_ice_error.patch:
+    - cherry pick an upstream candidate fix for a segfault issue in the
+      session closing handling (lp: #1942685)
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Fri, 22 Oct 2021 12:28:32 +0200
+
+pulseaudio (1:15.0+dfsg1-1ubuntu2) impish; urgency=medium
+
+  * debian/control.in:
+    - include the Ubuntu epoch in the Replaces version to fix upgrades
+      (lp: #1938753)
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Mon, 09 Aug 2021 10:51:37 +0200
+
+pulseaudio (1:15.0+dfsg1-1ubuntu1) impish; urgency=medium
+
+  * New upstream version resynchronized on Debian
+   - Support for bluetooth LDAC and AptX codecs and HFP profiles for
+     improved audio quality
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Mon, 02 Aug 2021 17:32:10 +0200
+
 pulseaudio (15.0+dfsg1-1) experimental; urgency=medium
 
   [ Felipe Sateler ]
@@ -148,7 +231,7 @@ pulseaudio (14.99.1+dfsg1-1) experimenta
     This was the behaviour with previous autotools build system
 
   [ Faidon Liambotis ]
-  * Create /etc/pulse/default.pa.d that can now be used for additional
+  * Create /etc/pulse/default.pa.d that can now be used for additional 
     configuration snippets
   * Validate manpages and desktop file.
     For that we need the new build dependencies on libxml2-utils
@@ -156,26 +239,20 @@ pulseaudio (14.99.1+dfsg1-1) experimenta
 
  -- Felipe Sateler <fsateler@debian.org>  Fri, 28 May 2021 21:04:18 -0400
 
-pulseaudio (14.2-3) UNRELEASED; urgency=medium
+pulseaudio (1:14.2-2ubuntu2) impish; urgency=medium
 
-  [ Kevin Locke ]
-  * Move shell completion scripts to pulseaudio-utils.
-    The shell completion scripts support commands from both the pulseaudio
-    package and pulseaudio-utils package, which may be installed without
-    pulseaudio (e.g. for use with PipeWire configured for PulseAudio
-    compatibility).  Ship the completions in pulseaudio-utils to cover this
-    case.  Note that the completion for the pulseaudio command will be
-    available if the pulseaudio package is installed, since it depends on
-    pulseaudio-utils.
-    Also move the Lintian override for script-not-executable and add one for
-    bash-completion-with-hashbang.  I'm in favor of fixing these, rather
-    than overriding them, but not sufficiently to pursue it right now.
-    Signed-off-by: Kevin Locke <kevin@kevinlocke.name> (Closes: #803329)
+  * d/p/0016-check_off_profile_when_switching_profile.patch
+  * d/p/0017-add_dynamic_priority_bonus_base_for_alsa_profiles.patch
+    Fix a "Rear Mic" always showing on input list when using dual codec.
+    (LP: #1929371)
 
-  [ Laurent Bigonville ]
-  * debian/control: Add the needed Breaks/Replaces after moving the completion files
+ -- Jeremy Szu <jeremy.szu@canonical.com>  Tue, 25 May 2021 12:41:39 +0000
+
+pulseaudio (1:14.2-2ubuntu1) impish; urgency=medium
 
- -- Felipe Sateler <fsateler@debian.org>  Mon, 14 Jun 2021 22:59:16 -0400
+  * Resynchronize with Debian
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Mon, 17 May 2021 16:50:37 +0200
 
 pulseaudio (14.2-2) unstable; urgency=medium
 
@@ -190,6 +267,12 @@ pulseaudio (14.2-2) unstable; urgency=me
 
  -- Felipe Sateler <fsateler@debian.org>  Fri, 26 Feb 2021 19:51:50 -0300
 
+pulseaudio (1:14.2-1ubuntu1) hirsute; urgency=medium
+
+  * New upstream version
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Fri, 22 Jan 2021 12:03:10 +0100
+
 pulseaudio (14.2-1) unstable; urgency=medium
 
   [ Helmut Grohne ]
@@ -211,6 +294,12 @@ pulseaudio (14.2-1) unstable; urgency=me
 
  -- Felipe Sateler <fsateler@debian.org>  Tue, 19 Jan 2021 14:31:45 -0300
 
+pulseaudio (1:14.1-1ubuntu1) hirsute; urgency=medium
+
+  * New stable version merged from Debian
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 14 Jan 2021 16:53:10 +0100
+
 pulseaudio (14.1-1) unstable; urgency=medium
 
   * New bugfix version
@@ -228,6 +317,20 @@ pulseaudio (14.0-2) unstable; urgency=me
 
  -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 06 Jan 2021 12:03:26 +0100
 
+pulseaudio (1:14.0-1ubuntu2) hirsute; urgency=medium
+
+  * d/p/0001-switch-on-port-available-Switch-to-headset-or-mic-on.patch
+    - Fix the headset-mic/headphone-mic selection on the machines without
+      internal mic (lp: #1908167)
+
+ -- Hui Wang <hui.wang@canonical.com>  Tue, 15 Dec 2020 15:48:42 +0800
+
+pulseaudio (1:14.0-1ubuntu1) hirsute; urgency=medium
+
+  * New stable version merged from Debian
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 26 Nov 2020 12:13:01 +0100
+
 pulseaudio (14.0-1) experimental; urgency=medium
 
   * New upstream version
@@ -236,18 +339,183 @@ pulseaudio (14.0-1) experimental; urgenc
 
  -- Sebastien Bacher <seb128@debian.org>  Thu, 26 Nov 2020 11:40:50 +0100
 
+pulseaudio (1:13.99.3-1ubuntu2) hirsute; urgency=medium
+
+  * SECURITY UPDATE: don't rely on SCM_CREDENTIALS to detect snap confined
+    clients (LP: #1895928)
+    - d/p/0409-pa-client-peer-credentials.patch: drop patch
+    - d/p/0409-fix-arg-parsing-after-async-hook.patch: remains of old 0409
+      patch not related to pa_creds.
+    - d/p/0410-pa-client-peer-apparmor-label.patch: new patch, records
+      AppArmor label in pa_client struct for native connections using
+      aa_getpeercon.
+    - d/p/0702-add-snappy-policy-module.patch: use the AppArmor
+      label in the pa_client rather than looking it up via the process ID
+      from SCM_CREDENTIALS.
+    - CVE-2020-16123
+   * Don't block classic snaps from module loading/unloading (LP: #1886854)
+    - d/p/0702-add-snappy-policy-module.patch: replace
+      deny_to_snaps_hook with a version that allows classic snaps.
+
+ -- James Henstridge <james.henstridge@canonical.com>  Mon, 09 Nov 2020 22:43:42 -0500
+
+pulseaudio (1:13.99.3-1ubuntu1) hirsute; urgency=medium
+
+  * Update to the current candidate version (lp: #1902485)
+  * debian/patches/git_segfault_fix.patch:
+    - removed, included in the new version
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 05 Nov 2020 15:27:10 +0100
+
 pulseaudio (13.99.3-1) experimental; urgency=medium
 
   * New upstream version
 
  -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 05 Nov 2020 15:12:10 +0100
 
+pulseaudio (1:13.99.2-1ubuntu2) groovy; urgency=medium
+
+  * debian/patches/git_segfault_fix.patch:
+    - backport a fix for a segfault regression for the recent update
+      (lp: #1900812)
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 21 Oct 2020 10:46:23 +0200
+
+pulseaudio (1:13.99.2-1ubuntu1) groovy; urgency=medium
+
+  * Updated to the current candidate version
+  * d/p/git_cherrypick_fixes.patch,
+    d/p/git_config_upgrade.patch,
+    d/p/0001-alsa-mixer-Recognize-USB-audio-jack-mixer.patch,
+    d/p/0002-module-alsa-card-Set-a-minimum-profile-priority-if-i.patch
+    d/p/0032-alsa-mixer-store-the-ucm_device-with-the-order-of-th.patch,
+    d/p/0033-alsa-make-the-unsuspend-more-robust.patch,
+    d/p/0034-alsa-adjust-ucm-sink-source-priority-according-to-po.patch,
+    d/p/0035-ucm-add-possibility-to-skip-the-UCM-card-completely-.patch,
+    d/p/0036-device-port-queue-CARD-CHANGE-event-before-update-de.patch:
+  * d/p/0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch:
+    - removed, upstream fixed the issue differently
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Fri, 09 Oct 2020 11:45:03 +0200
+
 pulseaudio (13.99.2-1) experimental; urgency=medium
 
   * New upstream version
 
  -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 08 Oct 2020 21:39:32 +0200
 
+pulseaudio (1:13.99.1-1ubuntu11) groovy; urgency=medium
+
+  [ Kai-Heng Feng ]
+  * d/p/0001-alsa-mixer-Add-support-for-HP-Thunderbolt-Dock.patch
+  * d/p/0002-alsa-mixer-Expand-comments-in-the-HP-Thunderbolt-Doc.patch
+    Add profile-sets for HP Thunderbolt Dock (LP: #1894606)
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Tue, 22 Sep 2020 10:09:09 +0200
+
+pulseaudio (1:13.99.1-1ubuntu10) groovy; urgency=medium
+
+  * d/p/0001-alsa-mixer-Recognize-USB-audio-jack-mixer.patch:
+    - recognize USB jack mixer to support jack detection (LP: #1891461)
+  * d/p/0002-module-alsa-card-Set-a-minimum-profile-priority-if-i.patch:
+    - resolve an issue when headset gets unplugged, HDMI audio is chosen
+      instead of internal speaker (LP: #1891461)
+
+ -- Kai-Heng Feng <kai.heng.feng@canonical.com>  Thu, 13 Aug 2020 16:58:42 +0800
+
+pulseaudio (1:13.99.1-1ubuntu9) groovy; urgency=medium
+
+  * d/p/0034-alsa-adjust-ucm-sink-source-priority-according-to-po.patch
+  * d/p/0035-ucm-add-possibility-to-skip-the-UCM-card-completely-.patch
+  * d/p/0036-device-port-queue-CARD-CHANGE-event-before-update-de.patch
+    Make digital mic on the AMD Renoir machines work under gnome desktop
+    (LP: #1889217)
+
+ -- Hui Wang <hui.wang@canonical.com>  Sat, 08 Aug 2020 13:32:49 +0800
+
+pulseaudio (1:13.99.1-1ubuntu8) groovy; urgency=medium
+
+  * d/p/0033-alsa-make-the-unsuspend-more-robust.patch:
+    - resolve cases where there is no available audio entry in sound
+      settings after suspending in 'Performance mode' (LP: #1887610)
+
+ -- Hui Wang <hui.wang@canonical.com>  Wed, 15 Jul 2020 15:29:05 +0800
+
+pulseaudio (1:13.99.1-1ubuntu7) groovy; urgency=medium
+
+  * d/p/0032-alsa-mixer-store-the-ucm_device-with-the-order-of-th.patch
+    - switch the port on ucm device based on priority (LP: #1882161)
+
+ -- Hui Wang <hui.wang@canonical.com>  Fri, 05 Jun 2020 10:10:09 +0800
+
+pulseaudio (1:13.99.1-1ubuntu6) groovy; urgency=medium
+
+  * debian/patches/git_config_upgrade.patch:
+     -stream-restore: Forget pre-14.0 stream routing, old configurations are
+      incompatible and create routing issues where e.g the speaker despite
+      having headset selected (lp: #1866194)
+  * debian/rules:
+    - enable --enable-stream-restore-clear-old-devices
+  * debian/rules:
+    - don't let tests fail build on riscv
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 03 Jun 2020 17:28:51 +0200
+
+pulseaudio (1:13.99.1-1ubuntu5) groovy; urgency=medium
+
+  * SECURITY UPDATE: stop snaps from loading and unloading modules, to
+    prevent bypass of audio recording restriction (LP: #1877102). Patch
+    thanks to James Henstridge
+    - d/p/0407-access-Add-access-control-hooks.patch: make sure access
+      hook IDs are non-zero.
+    - d/p/0700-modules-add-snappy-policy-module.patch: Prevent snaps from
+      controlling modules, terminating the daemon, or disconnecting clients.
+    - CVE-2020-11931
+  * debian/control: Build-Depends on libsnapd-glib-dev (>= 1.49)
+
+ -- Jamie Strandboge <jamie@ubuntu.com>  Tue, 12 May 2020 20:08:11 +0000
+
+pulseaudio (1:13.99.1-1ubuntu4) groovy; urgency=medium
+
+  * debian/patches/gitlab_jack_identifier.patch:
+    - fix a regression introduced by the change which was leading to
+      headphones not being activated when connected (LP: #1876065)
+
+ -- Kai-Heng Feng <kai.heng.feng@canonical.com>  Wed, 06 May 2020 15:20:42 +0200
+
+pulseaudio (1:13.99.1-1ubuntu3) focal; urgency=medium
+
+  * debian/patches/git_cherrypick_fixes.patch:
+    - cherry pick pending commits from git, we are on a rc version but it
+      looks like the stable isn't going to be rolled before focal is out
+      so let's include the pending fixes in our package.
+    - fixes for sound not working on Bay and Cherry trail (lp: #1872970)
+    - remove git_ucm_assert.patch which was an individual cherrypick
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 16 Apr 2020 10:07:10 +0200
+
+pulseaudio (1:13.99.1-1ubuntu2) focal; urgency=medium
+
+  * debian/patches/git_ucm_assert.patch:
+    - backport an assert fix from git (lp: #1871039)
+
+  [Kai-Heng Feng]
+  * alsa-mixer: Handle the index for ALSA mixer jack identifiers
+  * alsa-mixer: Support dual Front Headphone Jack
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 08 Apr 2020 17:58:57 +0200
+
+pulseaudio (1:13.99.1-1ubuntu1) focal; urgency=medium
+
+  [ Sebastien Bacher ]
+  * Resynchonize on Debian
+
+  [ Daniel van Vugt ]
+  * Drop patches superseded by upstream changes:
+    - 0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Wed, 26 Feb 2020 12:20:10 +0100
+
 pulseaudio (13.99.1-1) experimental; urgency=medium
 
   * New upstream rc version, including those changes:
@@ -344,6 +612,54 @@ pulseaudio (13.0-2) unstable; urgency=me
 
  -- Felipe Sateler <fsateler@debian.org>  Sun, 06 Oct 2019 19:50:40 -0300
 
+pulseaudio (1:13.0-1ubuntu6) focal; urgency=medium
+
+  * Build-depend on dh-python.
+  * pulseaudio-equalizer: Depend on python2 instead of python.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 09 Jan 2020 14:10:34 +0100
+
+pulseaudio (1:13.0-1ubuntu5) focal; urgency=medium
+
+  * Add 0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch
+    to revert to PulseAudio v12 behaviour and ignore monitors with HDMI ports.
+    At least until a proper solution arrives in PulseAudio v14. (LP: #1847570)
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Wed, 11 Dec 2019 16:34:39 +0800
+
+pulseaudio (1:13.0-1ubuntu4) focal; urgency=medium
+
+  * Include the actual gio change now...
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Tue, 10 Dec 2019 17:00:03 +0100
+
+pulseaudio (1:13.0-1ubuntu3) focal; urgency=medium
+
+  * debian/patches/0700-modules-add-snappy-policy-module.patch:
+    - include glib and gio in the pkgconfig requirements, they used to
+      get included by snapd-glib but not anymore, fix the build
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Tue, 10 Dec 2019 16:38:52 +0100
+
+pulseaudio (1:13.0-1ubuntu2) focal; urgency=medium
+
+  * Make autopkgtests cross-test-friendly.
+
+  [ Sebastien Bacher ]
+  * Remove some old patches that are not needed anymore.
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Sat, 07 Dec 2019 21:38:59 -0800
+
+pulseaudio (1:13.0-1ubuntu1) eoan; urgency=medium
+
+  * Merged Debian version 13.0-1
+  * Refreshed patches:
+    - 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
+    - 0407-access-Add-access-control-hooks.patch
+    - 0700-modules-add-snappy-policy-module.patch
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Wed, 18 Sep 2019 08:37:45 +0200
+
 pulseaudio (13.0-1) unstable; urgency=medium
 
   * New upstream version
@@ -352,6 +668,26 @@ pulseaudio (13.0-1) unstable; urgency=me
 
  -- Sebastien Bacher <seb128@ubuntu.com>  Mon, 16 Sep 2019 15:06:43 +0200
 
+pulseaudio (1:12.99.2-1ubuntu1) eoan; urgency=medium
+
+  * Merged Debian version 12.99.2-1 (prerelease 9b91334fd).
+  * Drop upstreamed patches:
+    - volume-test.patch
+    - Don-t-compile-with-ffast-math.patch
+    - steelseries.3.83675b374.patch
+    - steelseries.4.fe6a9a8f5.patch
+    - steelseries.5.3454c19f3.patch
+    - 0800-stream-restore-Don-t-restore-if-the-active_port-is-P.patch
+  * Refreshed Ubuntu patches:
+    - 0016-nodisplay-autostart.patch
+    - 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
+    - 0407-access-Add-access-control-hooks.patch
+    - 0408-protocol-native-add-access-checks.patch
+    - 0409-pa-client-peer-credentials.patch
+    - 0700-modules-add-snappy-policy-module.patch
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Tue, 20 Aug 2019 17:08:14 +0800
+
 pulseaudio (12.99.2-1) unstable; urgency=medium
 
   * New upstream version 12.99.2
@@ -394,106 +730,228 @@ pulseaudio (12.2-3) unstable; urgency=me
 
  -- Felipe Sateler <fsateler@debian.org>  Tue, 15 Jan 2019 21:58:48 -0300
 
-pulseaudio (12.2-2) unstable; urgency=medium
-
-  [ Joseph Herlant ]
-  * Allow rounding without having to allow a random number of errors in
-    tests/volume-test.c (Closes: #906504)
-
-  [ Felipe Sateler ]
-  * Bump debhelper compat level to 11.
-    Also switch to the new debhelper-compat virtual package
-  * Bump Standards-Version
-
- -- Felipe Sateler <fsateler@debian.org>  Fri, 14 Sep 2018 20:16:14 -0300
-
-pulseaudio (12.2-1) unstable; urgency=medium
-
-  [ Felipe Sateler ]
-  * New upstream version 12.2
-  * Do not build esound compatibility anymore.
-    Esound will not be part of buster, so no need to have the compat code built.
-    (Closes: #561780)
-
-  [ Joseph Herlant ]
-  * Add patch to allow a higher deviation for volume-test.c (Closes: #906504)
-
- -- Felipe Sateler <fsateler@debian.org>  Thu, 06 Sep 2018 10:46:33 -0300
+pulseaudio (1:12.2-2ubuntu4) eoan; urgency=medium
 
-pulseaudio (12.0-1) unstable; urgency=medium
+  * debian/patches/0006-load-module-x11-bell.patch:
+    - remove that old distro patch, it's undocumented, not needed since
+      GNOME handles the login sound by itself and create issues in some
+      cases (duplicate sound, not respecting the UI choice)
+      (lp: #1827842)
+
+  [ Hui Wang ]
+  * d/p/0800-stream-restore-Don-t-restore-if-the-active_port-is-P.patch:
+    - Don't restore the streams to sinks/sources with only unavailable ports
+      (LP: #1834138)
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Fri, 28 Jun 2019 11:45:10 +0200
+
+pulseaudio (1:12.2-2ubuntu3) disco; urgency=medium
+
+  * debian/pulseaudio.links: chmod +x so that dh-exec actually works.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Tue, 16 Apr 2019 07:54:26 -0600
+
+pulseaudio (1:12.2-2ubuntu2) disco; urgency=medium
+
+  * Cherrypick changes from 12.2-3 to stop compiling with -ffast-math
+    and to fix alsa/pulseaudio config file integration (LP: #1824103)
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Tue, 16 Apr 2019 07:23:01 -0600
+
+pulseaudio (1:12.2-2ubuntu1) disco; urgency=medium
+
+  * Add steelseries headset support.  This provides sufficient support to
+    enable the Steelseries Arctis 5 and 7 Gaming Headsets (LP: #1758736).
+
+ -- Dave Chiluk <chiluk@ubuntu.com>  Tue, 12 Feb 2019 00:50:27 -0600
+
+pulseaudio (1:12.2-2ubuntu0) disco; urgency=medium
+
+  * Merged with Debian git (12.2-2 + 8ec20f69) (lp: #1807079):
+    - Do not build esound compatibility anymore (Closes: #561780).
+    - Add volume-test.patch to replace 0050-disable-volume-test.patch, so
+      now we can run the test instead of disabling it (LP: #1785556).
+    - d/changelog & d/control: fix lintian complaint about
+      file-contains-trailing-whitespace.
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Tue, 27 Nov 2018 16:35:03 +0800
+
+pulseaudio (1:12.2-0ubuntu4) cosmic; urgency=medium
+
+  * No change rebuild for launchpad translations import
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Tue, 09 Oct 2018 11:15:27 +0200
+
+pulseaudio (1:12.2-0ubuntu3) cosmic; urgency=medium
+
+  [ Ken VanDine ]
+  * Update patch tags with more detailed descriptions and a note about 
+    not forwarding upstream:
+    - 0700-modules-add-snappy-policy-module.patch
+    - 0701-enable-snap-policy-module.patch
+
+  [ James Henstridge ]
+  * 0700-modules-add-snappy-policy-module.patch: grant recording access
+    to snaps with classic confinement. (LP: #1787324)
+
+ -- Ken VanDine <ken.vandine@canonical.com>  Wed, 29 Aug 2018 09:18:41 -0400
+
+pulseaudio (1:12.2-0ubuntu2) cosmic; urgency=medium
+
+  * Update snap policy to make access to audio recording conditional on
+    plugging the "pulseaudio" or "audio-record" interfaces (LP: #1781428):
+    - 0700-modules-add-snappy-policy-module.patch: rewrite to query
+      snapd for the client's plugged interfaces.
+    - 0701-enable-snap-policy-module.patch: enable the module in the
+      default configuration.
+    - Build depend on libsnapd-glib-dev.
+  * Remove module-trust-store patch set:
+    - 0409-Trust-store-patch.patch: trimmed down to pulsecore changes.
+    - 0410-Add-thread-to-activate-trust-store-interface.patch: removed.
+    - 0417-increase-timeout-check-apparmor.patch: removed.
+
+ -- James Henstridge <james.henstridge@canonical.com>  Tue, 07 Aug 2018 17:01:22 +0800
+
+pulseaudio (1:12.2-0ubuntu1) cosmic; urgency=medium
+
+  * New upstream release 12.2 (LP: #1785551):
+    - Fixed broken configure script that was present in release 12.1.
+  * New upstream release 12.1:
+    - Fixed crash when switching to A2DP bluetooth profile
+    - Fixed plugin search path in module-ladspa-sink
+    - Fixed file permissions for the pipes created by module-pipe-sink and
+      module-pipe-source
+  * Add 0050-disable-volume-test.patch to work around volume-test failures
+    (LP: #1785556).
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Mon, 06 Aug 2018 13:42:13 +0800
+
+pulseaudio (1:12.0-1ubuntu1) cosmic; urgency=medium
+
+  * New upstream release 12.0 (LP: #1778178):
+    - Better latency reporting (and hence better A/V sync) with the A2DP
+      bluetooth profile
+    - Much more accurate latency reporting for AirPlay devices
+    - Fixed a crash or high CPU use problem with Intel HDMI LPE
+    - module-switch-on-connect now ignores virtual devices
+    - When using passthrough for compressed audio, set the "non-audio" bit
+    - Prioritize HDMI output over S/PDIF output
+    - HSP support for more bluetooth headsets
+    - Choose the A2DP bluetooth profile by default instead of HSP
+    - New "sink_input_properties" module argument for module-ladspa-sink
+    - New "use_system_clock_for_timing" module argument for module-pipe-sink
+    - module-pipe-sink can now use an existing pipe
+    - Steelseries Arctis 7 USB headset stereo output support
+    - Dell Thunderbolt Dock TB16 speaker jack support
+    - Fixed digital input support for some USB sound cards
+    - Fixed Native Instruments Traktor Audio 6 detection
+    - Ability to disable input or output on macOS
+    - New "dereverb" option for the Speex echo canceller
+    - New module: module-always-source
+    - State files not any more readable by all users in the system mode
+    - module-augment-properties now uses XDG_DATA_DIRS to find .desktop files
+    - Updates for the Vala bindings
+    - The GConf dependency can now be avoided
+    - qpaeq license changed from AGPL to LGPL
+    - qpaeq ported to Qt 5
+    - Compatibility with glibc 2.27
+    - The esdcompat tool isn't any more installed if esound support is disabled
+  * Merge latest Debian changes (version 12.0-1)
+  * Dropped upstreamed patches:
+    - 0800-fix-lp1720684.patch
+    - 0802-alsa-mixer-Add-support-for-usb-audio-in-the-Dell-doc.patch
+    - 0803-build-sys-add-the-Dell-dock-TB16-configuration.patch
+    - 0804-bluez5-device-Rewrite-of-thread-function-reduce-send.patch
+    - 0805-bluez5-device-Fix-memory-leak-in-sco_process_render.patch
+  * Refreshed and fixed patches:
+    - 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
+    - 0407-access-Add-access-control-hooks.patch
+    - 0408-protocol-native-add-access-checks.patch
+    - 0409-Trust-store-patch.patch
+    - 0410-Add-thread-to-activate-trust-store-interface.patch
+    - 0417-increase-timeout-check-apparmor.patch
+    - 0700-modules-add-snappy-policy-module.patch
+    - memfd-glibc2.27.patch
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Mon, 25 Jun 2018 16:04:50 +0800
+
+pulseaudio (1:11.1-1ubuntu8) cosmic; urgency=medium
+
+  * 0804-bluez5-device-Rewrite-of-thread-function-reduce-send.patch,
+    0805-bluez5-device-Fix-memory-leak-in-sco_process_render.patch:
+    - Reduce latency over bluetooth, using A2DP, when the connection drops
+      temporarily (LP: #405294).
+
+ -- Alberto Milone <alberto.milone@canonical.com>  Mon, 21 May 2018 16:41:41 +0200
+
+pulseaudio (1:11.1-1ubuntu7) bionic; urgency=medium
+
+  * Drop build-dependency on dbus-cpp, which is not actually used and is to
+    be removed.
+  * debian/patches/memfd-glibc2.27.patch: fix build failure with glibc
+    2.27.
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Wed, 14 Mar 2018 17:06:53 -0700
+
+pulseaudio (1:11.1-1ubuntu6) bionic; urgency=high
+
+  * No change rebuild against openssl1.1.
+
+ -- Dimitri John Ledkov <xnox@ubuntu.com>  Mon, 05 Feb 2018 16:52:12 +0000
+
+pulseaudio (1:11.1-1ubuntu5) bionic; urgency=medium
+
+  * Drop use of trust-store, which is unmaintained and fails to build.
+    LP: #1739469.
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Thu, 01 Feb 2018 16:12:47 -0800
+
+pulseaudio (1:11.1-1ubuntu4) bionic; urgency=high
+
+  * 0030-load-module-switch-on-connect.patch: Correct typo in default.pa
+    causing pulseaudio startup failure. (LP: #1742750, LP: #1732629)
+  * Refresh patches to apply more cleanly:
+    - 0802-alsa-mixer-Add-support-for-usb-audio-in-the-Dell-doc.patch
+    - 0803-build-sys-add-the-Dell-dock-TB16-configuration.patch
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Fri, 12 Jan 2018 10:23:11 +0800
+
+pulseaudio (1:11.1-1ubuntu3) bionic; urgency=medium
+
+  * 0802-alsa-mixer-Add-support-for-usb-audio-in-the-Dell-doc.patch: Restore
+    patch that was accidentally dropped in the upgrade to 11.1 (LP: #1718824)
+  * 0030-load-module-switch-on-connect.patch: Modify module load order to
+    improve device switching reliability (LP: #1732629)
+  * 0803-build-sys-add-the-Dell-dock-TB16-configuration.patch: add the Dell
+    dock TB16 configuration (LP: #1718824)
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Thu, 11 Jan 2018 17:25:38 +0800
+
+pulseaudio (1:11.1-1ubuntu2) bionic; urgency=medium
+
+  * Add 0800-fix-lp1720684.patch to ensure the default Bluetooth audio
+    profile is the higher quality A2DP rather than HSP/HFP. (LP: #1720684)
+
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Fri, 15 Dec 2017 09:49:25 +0100
+
+pulseaudio (1:11.1-1ubuntu1) bionic; urgency=medium
+
+  * Drop upstreamed patches:
+    - 0800-cb78d6f5-fix-lp1690028-lp1672171.patch
+    - 0801-d985276c-fix-lp1539209-lp1562817.patch
+    - 0802-alsa-mixer-Add-support-for-usb-audio-in-the-Dell-doc.patch
+  * Refreshed patches:
+    - 0001-volume-config-changes.patch
+    - 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch
+    - 0407-access-Add-access-control-hooks.patch
+    - 0408-protocol-native-add-access-checks.patch (and fixed conflicts)
+    - 0409-Trust-store-patch.patch
+    - 0417-increase-timeout-check-apparmor.patch
+    - 0700-modules-add-snappy-policy-module.patch
+  * Merge latest Debian changes (version 11.1-1, see below) (LP: #1716700)
+    - Includes support for newer AirPlay hardware (LP: #951120)
 
-  * New upstream version 12.0
-  * Upload to unstable
-
- -- Felipe Sateler <fsateler@debian.org>  Thu, 21 Jun 2018 11:26:59 -0400
-
-pulseaudio (11.99.1-1) experimental; urgency=medium
-
-  * New upstream version 11.99.1
-    - Drop all patches, applied upstream
-    - Licence of qpaeq changed from AGPL to LGPL
-  * Install new module always-source into pulseaudio package
-  * Build and install the gsettings module.
-    Disable the gconf module as it is superseded by gsettings
-    Closes: #757909
-  * Add new libpulse0 functions to the symbols file
-
- -- Felipe Sateler <fsateler@debian.org>  Sun, 13 May 2018 12:35:13 -0400
-
-pulseaudio (11.1-5) unstable; urgency=medium
-
-  * Change Vcs-* urls to new home in salsa.debian.org
-  * Backport upstream patch to use memfd_create wrapper provided by glibc
-    if available.
-    (Closes: #894104)
-  * Pick upstream patch to port qpaeq to Qt5 (Closes: #894489)
-  * Change Vcs-* urls to new home in salsa.debian.org
-  * Fix typo in debian/NEWS. Thanks lintian
-  * Move bluetooth module to priority optional, extra is deprecated
-  * Remove versioned build-dependencies on libraries present in oldoldstable.
-    These are libasound2-dev, libbluetooth-dev, libldtl-dev, liborc-0.4-dev,
-    libsndfile1-dev, libudev-dev, libxcb1-dev
-  * Drop Breaks against ancient libjack versions, already present in oldoldstable
-  * Drop Breaks against ancient pavucontrol and pulseaudio versions
-
- -- Felipe Sateler <fsateler@debian.org>  Thu, 05 Apr 2018 15:55:56 -0300
-
-pulseaudio (11.1-4) unstable; urgency=medium
-
-  * Add dbus-user-session to Recommends of pulseaudio.
-    Dbus usage is otherwise broken, because there is no daemon to connect to,
-    and dbus does not autolaunch when there is no X11 around.
-    (Closes: #883542)
-  * Drop libatomic-ops-dev Build-Dependency.
-    It is never used when building with gcc, since it is only used as fallback
-    when atomic builtins are not available, but gcc does have them.
-    (Closes: #883597)
-
- -- Felipe Sateler <fsateler@debian.org>  Wed, 06 Dec 2017 18:11:29 -0300
-
-pulseaudio (11.1-3) unstable; urgency=medium
-
-  * Use dh_missing instead of dh_install --fail-missing
-  * We don't need root to build, so tell dpkg about that with
-    Rules-Require-Root: no
-  * Add Recommends: libpam-systemd because otherwise user instances are not started
-    (Closes: #882142)
-  * Bump Standards-Version (no changes needed)
-  * Use https url for uscan watch file
-  * Remove trailing whitespaces from changelog
-
- -- Felipe Sateler <fsateler@debian.org>  Sat, 25 Nov 2017 10:35:47 -0300
-
-pulseaudio (11.1-2) unstable; urgency=low
-
-  * Backport upstream patch to use ConditionUser=!root systemd
-  * Use systemd socket activation by default on linux systems.
-    At the same time, disable autospawn to prevent conflicts
-    Non-linux archs are left untouched.
-    (Closes: #881712, #622989, #521675, #763524)
-  * Upload with urgency=low just in case.
-
- -- Felipe Sateler <fsateler@debian.org>  Fri, 17 Nov 2017 20:34:59 -0300
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Wed, 01 Nov 2017 16:13:53 +0800
 
 pulseaudio (11.1-1) unstable; urgency=medium
 
@@ -504,28 +962,33 @@ pulseaudio (11.1-1) unstable; urgency=me
 
  -- Felipe Sateler <fsateler@debian.org>  Wed, 20 Sep 2017 21:13:18 -0300
 
-pulseaudio (11.0-2) unstable; urgency=medium
+pulseaudio (1:10.0-2ubuntu3) artful; urgency=medium
 
-  * Backport patches from pending 11.1 upstream bugfix release
-    - Fixes crash on load of virtual sinks (Closes: #875541)
+  * Drop build-dependency on libhardware, was left in error by the
+    previous upload - all usage of libhardware was removed.
 
- -- Felipe Sateler <fsateler@debian.org>  Wed, 13 Sep 2017 20:10:52 -0300
+ -- Dimitri John Ledkov <xnox@ubuntu.com>  Mon, 18 Sep 2017 20:40:57 +0100
 
-pulseaudio (11.0-1) unstable; urgency=medium
+pulseaudio (1:10.0-2ubuntu2) artful; urgency=medium
 
-  * New upstream version 11.0
-  * Bump Standards-Version
-  * Drop Conflicts/Replaces against old packages.
-    Stretch has version 10 so all of the versions are already satisfied
+  * Drop Android support (used for Ubuntu Touch). This removes most of the
+    delta to upstream and Debian.
 
- -- Felipe Sateler <fsateler@debian.org>  Tue, 05 Sep 2017 21:02:12 -0300
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Mon, 07 Aug 2017 17:16:23 +0800
 
-pulseaudio (10.99.1-1) experimental; urgency=medium
+pulseaudio (1:10.0-2ubuntu1) artful; urgency=medium
 
-  * New upstream release candidate 10.99.1
-  * Bump Standards-Version (no changes)
+  * Cherrypick fixes for common crashes from upstream:
+    - cb78d6f5: SIGABRT in device_start_waiting_for_profiles (LP: #1690028,
+      LP: #1672171)
+    - d985276c: SIGABRT in pa_alsa_path_set_volume (LP: #1539209, LP: #1562817)
+  * Enable modules that needn't be disabled:
+    - module-role-cork: Now enabled per upstream defaults (LP: #1701688)
+    - module-switch-on-connect: Enabled for seamless hotplugging (LP: #1702794)
+  * Don't try to load sounds that don't exist in Kubuntu (LP: #1703334)
+  * Merge latest debian changes (see below).
 
- -- Felipe Sateler <fsateler@debian.org>  Wed, 26 Jul 2017 09:46:27 -0400
+ -- Daniel van Vugt <daniel.van.vugt@canonical.com>  Tue, 11 Jul 2017 16:57:16 +0800
 
 pulseaudio (10.0-2) unstable; urgency=medium
 
@@ -537,6 +1000,51 @@ pulseaudio (10.0-2) unstable; urgency=me
 
  -- Scott Leggett <scott@sl.id.au>  Thu, 15 Jun 2017 20:07:30 +1000
 
+pulseaudio (1:10.0-1ubuntu2) zesty; urgency=medium
+
+  * debian/patches/0006-load-module-x11-bell.patch:
+    - Upload bell.ogg sample via pactl for module-x11-bell.  Original patch
+      by Daniel Hahler. (LP: #769314)
+  * debian/control:
+    - Add ubuntu-sounds to Suggests list, since it ships the sound used by
+      default in above patch now.
+
+ -- Michael Terry <mterry@ubuntu.com>  Wed, 29 Mar 2017 14:24:19 -0400
+
+pulseaudio (1:10.0-1ubuntu1) zesty; urgency=medium
+
+  * Merge with Debian experimental:
+    - epoch (my stupid fault :S)
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+    - Add support for the trust-store
+    - Add snappy support, preventing snap apps from recording audio, full
+      support via trust-store is planned
+    - Add epoch to conflicts/replaces
+    - Use liblirc-dev instead of liblircclient-dev
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 24 Jan 2017 10:45:12 +1100
+
 pulseaudio (10.0-1) unstable; urgency=medium
 
   * New upstream release
@@ -556,6 +1064,55 @@ pulseaudio (9.99.1-1) experimental; urge
 
  -- Felipe Sateler <fsateler@debian.org>  Wed, 04 Jan 2017 15:43:30 -0300
 
+pulseaudio (1:9.0-5ubuntu3) zesty; urgency=medium
+
+  * Re-add pulseaudio equalizer package, my understanding on build deps with
+    main/universe wasn't quite correct, and I only dropped it to get the
+    package through proposed, so a demotion of the equalizer package to
+    universe is the better solution
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 23 Nov 2016 09:49:51 +1100
+
+pulseaudio (1:9.0-5ubuntu2) zesty; urgency=medium
+
+  * Drop pulseaudio equalizer package, python-qt4 is in universe
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 09 Nov 2016 08:50:41 +1100
+
+pulseaudio (1:9.0-5ubuntu1) zesty; urgency=medium
+
+  * Merge with Debian:
+    - epoch (my stupid fault :S)
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+    - Add support for the trust-store
+    - Add snappy support, preventing snap apps from recording audio, full
+      support via trust-store is planned
+    - Add epoch to conflicts/replaces
+    - Use liblirc-dev instead of liblircclient-dev
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 08 Nov 2016 12:07:26 +1100
+
 pulseaudio (9.0-5) unstable; urgency=medium
 
   [ Felipe Sateler ]
@@ -568,6 +1125,46 @@ pulseaudio (9.0-5) unstable; urgency=med
 
  -- Felipe Sateler <fsateler@debian.org>  Fri, 04 Nov 2016 19:18:11 -0300
 
+pulseaudio (1:9.0-4ubuntu1) zesty; urgency=medium
+
+  * Merge with Debian:
+    - epoch (my stupid fault :S)
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+    - Add support for the trust-store
+    - Add snappy support, preventing snap apps from recording audio, full
+      support via trust-store is planned
+    - Use conflicts/replaces instead of breaks to handle former
+      pulseaudio-module-udev split
+  * 0502-bluetooth-bluez5-bring-back-SCO-over-PCM-support.patch:
+    - Remove patch hunk that set u->transport to NULL. At the time this
+      code was written for 15.10, it was to prevent an assertion. Now with
+      newer versions of pulse, the opposite is happening in some circumstances
+      (LP: #1574324)
+  * debian/control: Use liblirc-dev instead of liblircclient-dev
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 28 Oct 2016 12:20:16 +1100
+
 pulseaudio (9.0-4) unstable; urgency=medium
 
   * Generate shlibs.local file on build, to avoid hardcoding
@@ -589,6 +1186,45 @@ pulseaudio (9.0-3) unstable; urgency=med
 
  -- Felipe Sateler <fsateler@debian.org>  Sun, 28 Aug 2016 13:15:28 -0300
 
+pulseaudio (1:9.0-2ubuntu2) yakkety; urgency=medium
+
+  * Bumping packages off the system requires Conflicts/Replaces, not Breaks.
+  * Adjust version of pulseaudio-module-{udev,x11} dep to account for epoch.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Mon, 19 Sep 2016 12:57:56 -0600
+
+pulseaudio (1:9.0-2ubuntu1) yakkety; urgency=medium
+
+  * Merge with Debian:
+    - epoch (my stupid fault :S)
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+    - Add support for the trust-store
+    - Add snappy support, preventing snap apps from recording audio, full
+      support via trust-store is planned
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 26 Aug 2016 08:56:25 +1000
+
 pulseaudio (9.0-2) unstable; urgency=medium
 
   * Merge module-udev-detect back into main package.
@@ -608,6 +1244,38 @@ pulseaudio (9.0-2) unstable; urgency=med
 
  -- Felipe Sateler <fsateler@debian.org>  Fri, 12 Aug 2016 22:40:38 -0400
 
+pulseaudio (1:9.0-1.1ubuntu1) yakkety; urgency=medium
+
+  * Merge with experimental pulseaudio package:
+    - epoch (my stupid fault :S)
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+    - Add support for the trust-store
+    - Add snappy support, preventing snap apps from recording audio, full
+      support via trust-store is planned
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 13 Jul 2016 08:44:48 +1000
+
 pulseaudio (9.0-1.1) unstable; urgency=medium
 
   * Non-maintainer upload.
@@ -620,6 +1288,7 @@ pulseaudio (9.0-1) unstable; urgency=med
 
   [ Luke Yelavich ]
   * New upstream release
+  * Refreshed patches
   * Update shlibs file
 
  -- Felipe Sateler <fsateler@debian.org>  Sun, 03 Jul 2016 12:00:25 -0400
@@ -639,6 +1308,55 @@ pulseaudio (8.0-3) experimental; urgency
 
  -- Felipe Sateler <fsateler@debian.org>  Thu, 21 Apr 2016 23:59:41 -0300
 
+pulseaudio (1:8.0-2ubuntu3) yakkety; urgency=medium
+
+  * No-change rebuild against libwebrtc-audio-processing1
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Sun, 10 Jul 2016 10:06:31 +0000
+
+pulseaudio (1:8.0-2ubuntu2) yakkety; urgency=medium
+
+  [ Simon Fels ]
+  * debian/patches/0700-modules-add-snappy-policy-module.patch:
+    - Add initial support for a snappy specific policy manager
+      which will deny all audio recording from snaps for now
+      until real integration with the trust-store is available. (LP: #1583057)
+  * debian/rules:
+    - Build with snappy support
+  * debian/pulseaudio.install:
+    - Include new snappy policy module
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 01 Jun 2016 12:04:14 +1000
+
+pulseaudio (1:8.0-2ubuntu1) yakkety; urgency=medium
+
+  * Merge from Debian experimental, remaining changes:
+    - epoch (my stupid fault :S)
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez4 discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 28 Apr 2016 10:12:25 +0200
+
 pulseaudio (8.0-2) unstable; urgency=medium
 
   * Add patch from upstream to switch back to HDMI when port is back.
@@ -670,6 +1388,67 @@ pulseaudio (8.0-1) unstable; urgency=med
 
  -- Felipe Sateler <fsateler@debian.org>  Wed, 27 Jan 2016 20:44:59 -0300
 
+pulseaudio (1:8.0-0ubuntu4) yakkety; urgency=medium
+
+  * debian/pulseaudio.maintscript: Bump versions for files that need to be
+    removed as they are obsolete (LP: #1573296)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 27 Apr 2016 14:41:42 +0200
+
+pulseaudio (1:8.0-0ubuntu3) xenial; urgency=medium
+
+  * Drop 0023-fixing_snd_mixer_poll_descriptors_count_when_zero.patch 
+    - Upstreamed
+  * 0024-alsa-mixer-Quick-workaround-for-potential-index-out-.patch
+    - Fix a potential index-out-of-bounds when reading multichannel mixers
+  * 0100-switch-on-port-available-Switch-from-HDMI-to-analog-.patch
+    - Improve an 8.0 routing regression 
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 21 Mar 2016 11:14:25 +0100
+
+pulseaudio (1:8.0-0ubuntu2) xenial; urgency=medium
+
+  * 0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch:
+    - Fix build failure by changing pa_strlist_tostring calls to
+      pa_strlist_to_string
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 11 Feb 2016 08:44:22 +1100
+
+pulseaudio (1:8.0-0ubuntu1) xenial; urgency=medium
+
+  * New upstream release
+  * Merge from Debian experimental, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't ship the consolekit module, and explicitly depend on the PAM
+      systemd module
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez4 discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add example upstart job to run pulseaudio in system mode
+    - Add a build/run autopkgtest for libpulse-dev
+    - Drop libsoxr-dev build dep, its in universe
+  * Refreshed patches, and dropped those that were applied upstream.
+  * Update local shlibs file for 8.0
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 10 Feb 2016 16:27:28 +1100
+
 pulseaudio (7.99.2-1) experimental; urgency=medium
 
   * New upstream release candidate
@@ -698,6 +1477,90 @@ pulseaudio (7.1-2) unstable; urgency=med
 
  -- Felipe Sateler <fsateler@debian.org>  Fri, 06 Nov 2015 17:15:54 -0300
 
+pulseaudio (1:7.1-1ubuntu7) xenial; urgency=medium
+
+  * Keep the libpulsecore library in the multiarch libdir.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 05 Feb 2016 13:10:43 +0100
+
+pulseaudio (1:7.1-1ubuntu6) xenial; urgency=medium
+
+  * debian/patches/60*.patch:
+    + Add proper dep3 patch header to all patches.
+  * debian/control:
+    + Only depend on android-headers for i386, amd64 and armhf as no
+      other platform actually uses it or provides hybris support.
+
+ -- Simon Fels <simon.fels@canonical.com>  Mon, 01 Feb 2016 15:31:25 +0100
+
+pulseaudio (1:7.1-1ubuntu5) xenial; urgency=medium
+
+  * debian/pulseaudio-module-droid.install:
+    - Correctly install all droid modules which have changed names
+      after we're now supporting multiple Android versions.
+
+ -- Simon Fels <simon.fels@canonical.com>  Thu, 28 Jan 2016 11:19:33 +0100
+
+pulseaudio (1:7.1-1ubuntu4) xenial; urgency=medium
+
+  * debian/patches/0600-droid-sync-with-upstream-for-Android-5-support-and-b.patches
+    debian/patches/0601-droid-alternative-hw-module-id.patch
+    debian/patcheshes/0602-droid-inputstream-config-parameters.pach
+    debian/patches/0603-0603droid-port-priority-and-availability.patch:
+    - Import patches from vivid for Android 5.x support
+
+ -- Simon Fels <simon.fels@canonical.com>  Thu, 28 Jan 2016 10:19:54 +0100
+
+pulseaudio (1:7.1-1ubuntu3) xenial; urgency=medium
+
+  * trust-store: Update translation string
+    Actually ship the .so files in the correct package
+  * Cherrypick upstream patches to allow client.conf.d
+    and daemon.conf.d
+  * debian/patches/0508/0509/0510*.patches
+    - More patches for bluez5 + ofono + HFP support
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 17 Dec 2015 12:36:42 +0100
+
+pulseaudio (1:7.1-1ubuntu2) xenial; urgency=medium
+
+  * debian/patches/050*.patch:
+    - Add bluez5 + ofono + HFP patches for Ubuntu touch
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 30 Nov 2015 11:24:05 +0100
+
+pulseaudio (1:7.1-1ubuntu1) xenial; urgency=medium
+
+  * Merge from Debian experimental, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't ship the consolekit module, and explicitly depend on the PAM
+      systemd module
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez4 discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add example upstart job to run pulseaudio in system mode
+    - Add a build/run autopkgtest for libpulse-dev
+  * Refreshed patches, and dropped those that were applied upstream.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 02 Nov 2015 10:16:47 +1100
+
 pulseaudio (7.1-1) unstable; urgency=medium
 
   * New upstream version
@@ -785,6 +1648,150 @@ pulseaudio (6.0-1) experimental; urgency
 
  -- Felipe Sateler <fsateler@debian.org>  Fri, 13 Mar 2015 22:45:13 -0300
 
+pulseaudio (1:6.0-0ubuntu13) wily; urgency=medium
+
+  * Pull upstream commit a527711 to hopefully fix LP: #1425447
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 13 Oct 2015 10:44:57 +1100
+
+pulseaudio (1:6.0-0ubuntu12) wily; urgency=medium
+
+  * debian/rules: disable bluez4 support, it's not useful and leads to
+    syslog warnings
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Tue, 22 Sep 2015 18:19:45 +0200
+
+pulseaudio (1:6.0-0ubuntu11) wily; urgency=medium
+
+  * debian/patches/04*:
+    Add support for trust-store in Ubuntu touch
+
+ -- David Henningsson <david.henningsson@canonical.com>  Wed, 02 Sep 2015 10:33:41 +0200
+
+pulseaudio (1:6.0-0ubuntu10~gcc5.3) wily; urgency=medium
+
+  * debian/rules: don't disable bluez5
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 13 Aug 2015 17:34:42 +0200
+
+pulseaudio (1:6.0-0ubuntu10~gcc5.2) wily; urgency=medium
+
+  * No-change rebuild against libjack-jackd2-0v5
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Tue, 11 Aug 2015 07:01:56 +0000
+
+pulseaudio (1:6.0-0ubuntu10~gcc5.1) wily; urgency=medium
+
+  * No-change test rebuild for g++5 ABI transition
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Wed, 15 Jul 2015 15:57:11 +0000
+
+pulseaudio (1:6.0-0ubuntu9) wily; urgency=medium
+
+  * 0312-lfe-filter-test-Use-S16NE-format.patch:
+    Fix build failure on powerpc
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 28 May 2015 11:02:48 +0200
+
+pulseaudio (1:6.0-0ubuntu8) wily; urgency=medium
+
+  * 0311-tests-add-tolerant-variation-for-comparing-the-rewin.patch:
+    Fix build failure on i386
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 25 May 2015 14:45:41 +0200
+
+pulseaudio (1:6.0-0ubuntu7) wily; urgency=medium
+
+  * debian/patches/0300-lfe-filter-Import-code-from-the-Chrome-OS-audio-serv.patch
+  * debian/patches/0301-lfe-filter-Enable-LFE-filter-in-the-resampler.patch
+  * debian/patches/0302-lfe-filter-Cleanup-and-refactor.patch
+  * debian/patches/0303-lfe-filter-change-the-crossover-frequency-as-a-param.patch
+  * debian/patches/0304-memblock-Change-pa_memblock_new_malloced-to-an-inlin.patch
+  * debian/patches/0305-lfe-filter-Add-rewind-support.patch
+  * debian/patches/0306-resampler-Make-some-basic-functions-for-rewinding.patch
+  * debian/patches/0307-tests-adding-lfe-filter-test.patch
+  * debian/patches/0308-daemon-conf-enable-the-lfe-remixing-by-default.patch
+  * debian/patches/0309-resampler-Allow-disabling-the-LFE-filter-by-setting-.patch
+  * debian/patches/0310-resampler-Rename-lfe_filter_required-to-lfe_remixed.patch
+    - Add lfe filter patches
+      (LP: #1286021)
+
+ -- Hui Wang <hui.wang@canonical.com>  Wed, 13 May 2015 15:06:28 +0800
+
+pulseaudio (1:6.0-0ubuntu6) vivid; urgency=medium
+
+  * debian/patches/0099-pa-yes-no.patch:
+    - Fix pulseaudio failure to load in some non-English
+    locales (LP: #1445358)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 20 Apr 2015 16:19:10 +0200
+
+pulseaudio (1:6.0-0ubuntu5) vivid; urgency=medium
+
+  * debian/patches/0211-corking-a-sink-input-stream-when-stalled.patch:
+    - Identifying and corking a sink-input stream when it gets stalled
+      (LP: #1391230)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Tue, 07 Apr 2015 00:40:56 -0300
+
+pulseaudio (1:6.0-0ubuntu4) vivid; urgency=medium
+
+  * Move the previously tweaked volume config changes from the rules file
+    to a patch. We are no longer tweaking settings based on architecture,
+    so such config changes can now be aplied statically. These settings
+    were also not being applied since the merge with Debian and updating to
+    pulse 6. (LP: #1424195)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 23 Feb 2015 10:03:37 +1100
+
+pulseaudio (1:6.0-0ubuntu3) vivid; urgency=medium
+
+  * Adding libwebrtc-audio-processing-dev as build dep again, now in main
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Wed, 18 Feb 2015 20:42:43 -0200
+
+pulseaudio (1:6.0-0ubuntu2) vivid; urgency=medium
+
+  * Remove libwebrtc-audio-processing-dev build dep, its in universe
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Wed, 18 Feb 2015 10:58:54 -0200
+
+pulseaudio (1:6.0-0ubuntu1) vivid; urgency=medium
+
+  * New upstream release
+  * Remove pulseaudio-kde autostart file on upgrade (Closes: #776331)
+  * Merge from Debian experimental, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't ship the consolekit module, and explicitly depend on the PAM
+      systemd module
+    - Add a module to allow pulseaudio to use the Android audio HAL
+    - Adjust gbp.conf file to point to the ubuntu branch for package builds
+    - Disable module-role-cork by default
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - Hide pulseaudio from startup apps dialog
+    - Quit daemon if pid file is removed
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch
+    - change default rlimit_rttime value to 200 ms
+    - Don't probe UCM profiles, trust that the profile writer knows what they
+      are doing
+    - Add card hook to allow modules to do something before a profile becomes
+      active
+    - Add an option to the bluez4 discovery module to set the profile
+    - Allow leaving bluetooth transport running while sink and source are
+      suspended.
+    - Add option to module-switch-on-connect to skip abstract devices
+    - Add property to module-device-restore to skip store/restore
+    - Add missing fields for sink_input/source_output info struct to the vala
+      bindings
+    - Add example upstart job to run pulseaudio in system mode
+    - Add a build/run autopkgtest for libpulse-dev
+  * Refreshed patches, and dropped patches that were either applied upstream
+    or are obsolete
+  * Build with bluez4 support, and explicitly disable bluez5
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 18 Feb 2015 17:00:14 +1100
+
 pulseaudio (5.99.2-2) experimental; urgency=medium
 
   * Let configure guess if systemd is available. Closes: #773879
@@ -1109,6 +2116,234 @@ pulseaudio (4.0-1) unstable; urgency=low
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 16 Jun 2013 17:20:36 +0200
 
+pulseaudio (1:4.0-0ubuntu23) vivid; urgency=medium
+
+  * No-change rebuild against libsystemd0.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Mon, 26 Jan 2015 15:26:24 +0100
+
+pulseaudio (1:4.0-0ubuntu22) utopic; urgency=medium
+
+  * 0211-module-stream-restore-use-entry_write-when-filling-u.patch =>
+    0108-module-stream-restore-use-entry_write-when-filling-u.patch:
+    - Renaming as it was accepted upstream
+  * 0212-libpulse.vapi-adding-missing-fields-for-sink_input-s.patch:
+    - Patch sent upstream, adding link to the thread
+  * 0207-Enable-pulseaudio-droid.patch:
+    - Fixing route when adding/removing devices (LP: #1363083)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Wed, 08 Oct 2014 02:01:14 -0300
+
+pulseaudio (1:4.0-0ubuntu21) utopic; urgency=medium
+
+  * 0211-module-stream-restore-use-entry_write-when-filling-u.patch:
+    - Fixing use case for fallback_table, so we can provide default values
+      for stream restore
+  * 0212-libpulse.vapi-adding-missing-fields-for-sink_input-s.patch:
+    - Adding missing fields for sink_input/source_output structs
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Wed, 01 Oct 2014 12:37:54 -0300
+
+pulseaudio (1:4.0-0ubuntu20) utopic; urgency=medium
+
+  * debian/pulseaudio.install:
+    - Installing missing module-role-ducking
+  * 0107-sink-source-Fix-restore-of-volume-on-devices-without.patch:
+    - Updated version of 0211-fix-volume-max-boot.patch, that was merged
+      upstream
+  * 0207-Enable-pulseaudio-droid.patch:
+    - Adding option to create voice virtual stream when voicecall is active
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Thu, 04 Sep 2014 01:07:26 -0300
+
+pulseaudio (1:4.0-0ubuntu19) utopic; urgency=medium
+
+  * 0210-module-device-restore-adding-property-to-skip.patch:
+    - Adding property to skip device store/restore per sink/source
+  * 0211-fix-volume-max-boot.patch:
+    - Fix initial volume for sink (LP: #598308)
+  * 0207-Enable-pulseaudio-droid.patch:
+    - Adding support to track voice call volume when switching to the
+      voicecall mode
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Wed, 20 Aug 2014 15:15:16 -0300
+
+pulseaudio (1:4.0-0ubuntu18) utopic; urgency=medium
+
+  * 0207-Enable-pulseaudio-droid.patch:
+    - Fixing default priority for sink/source ports
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Fri, 01 Aug 2014 01:18:38 -0300
+
+pulseaudio (1:4.0-0ubuntu17) utopic; urgency=medium
+
+  * 0207-Enable-pulseaudio-droid.patch:
+    - droid-sink: enabling transport property on sco.fakesink
+    - droid-source: setting up default audio source
+  * 0208-module-bluetooth-device-Allow-leaving-transport-runn.patch:
+    - module-bluetooth-device: Allow leaving transport running while sink and
+      source source are suspended.
+  * 0209-module-switch-on-connect-adding-parameter-to-allow-s.patch:
+    - module-switch-on-connect: adding parameter to allow skipping abstract
+      devices
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Mon, 21 Jul 2014 19:00:21 -0300
+
+pulseaudio (1:4.0-0ubuntu16) utopic; urgency=medium
+
+  * 0207-Enable-pulseaudio-droid.patch:
+    - Skipping SPEAKER_DRC_ENABLED_TAG as it's not yet supported (available on
+      hammerhead)
+    - Adding missing flags (AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD and
+      AUDIO_OUTPUT_FLAG_NON_BLOCKING)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Sat, 28 Jun 2014 01:16:55 -0300
+
+pulseaudio (1:4.0-0ubuntu15) utopic; urgency=medium
+
+  * 0024-daemon-conf.c-changing-default-rlimit_rttime-value-t.patch:
+    - Changing default rlimit_rttime value as rtkit's limit is now 200ms
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Fri, 27 Jun 2014 16:57:48 -0300
+
+pulseaudio (1:4.0-0ubuntu14) utopic; urgency=medium
+
+  * Removing 0201-ALSA-Add-extcon-Android-switch-jack-detection.patch,
+    0204-Add-module-to-talk-to-the-Android-audio-hal-to-set-u.patch and
+    Disable-tsched-for-Nexus-10.patch code migrated to the pulse droid module
+  * Removing 0206-enable-module-switch-on-connect-ubuntu-touch.patch, as touch
+    as its own script file now
+  * 0206-module-bluetooth-discover-adding-module-option-profi.patch:
+    - Adding module option 'profile' in module-bluetooth-discover
+  * 0207-Enable-pulseaudio-droid.patch:
+    - Adding pulseaudio-droid element (used by Ubuntu Touch)
+  * debian/control: adding pulseaudio-module-droid
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Mon, 23 Jun 2014 03:23:51 -0300
+
+pulseaudio (1:4.0-0ubuntu13) utopic; urgency=medium
+
+  * 0206-enable-module-switch-on-connect-ubuntu-touch.patch:
+    - Enable module switch-on-connect by default on Ubuntu Touch
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Mon, 16 Jun 2014 21:45:19 -0300
+
+pulseaudio (1:4.0-0ubuntu12) utopic; urgency=high
+
+  * No change rebuild against new dh_installinit, to call update-rc.d at
+    postinst.
+
+ -- Dimitri John Ledkov <xnox@ubuntu.com>  Wed, 28 May 2014 10:41:54 +0100
+
+pulseaudio (1:4.0-0ubuntu11) trusty; urgency=medium
+
+  * 0105-sink-source-Initialize-port-before-fixate-hook-fixes.patch:
+    Fix volume/mute not restored in some cases (LP: #1285179, LP: #1289515)
+  * 0106-module-switch-on-port-available-Don-t-switch-profile.patch:
+    Fix profile incorrectly switched on startup (LP: #1256511) 
+
+ -- David Henningsson <david.henningsson@canonical.com>  Fri, 04 Apr 2014 09:39:55 +0200
+
+pulseaudio (1:4.0-0ubuntu10) trusty; urgency=medium
+
+  * 0204-Add-module-to-talk-to-the-Android-audio-hal-to-set-u.patch:
+    - Setting audio mode before shutting down output stream (LP: #1283818)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Thu, 27 Feb 2014 22:37:56 -0300
+
+pulseaudio (1:4.0-0ubuntu9) trusty; urgency=medium
+
+  * 0205-suspend-on-idle-ensure-we-still-time-out-if-a-stream-remains-corked.patch:
+    - Properly suspending sink/source if the stream started corked and remains
+      corked (LP: #1284415)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Tue, 25 Feb 2014 16:37:26 -0300
+
+pulseaudio (1:4.0-0ubuntu8) trusty; urgency=medium
+
+  * 0201-ALSA-Add-extcon-Android-switch-jack-detection.patch:
+    - Only getting udev events from the switch subsystem (LP: #1284410)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Mon, 24 Feb 2014 23:43:50 -0300
+
+pulseaudio (1:4.0-0ubuntu7) trusty; urgency=low
+
+  * 0204-Add-module-to-talk-to-the-Android-audio-hal-to-set-u.patch:
+    - Refresh patch to use libhardware's pkg-config instead of looking for
+      audio.h
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Fri, 20 Dec 2013 04:08:09 -0200
+
+pulseaudio (1:4.0-0ubuntu6) saucy; urgency=low
+
+  * Three crash fixes from upstream:
+    0102-combine-Fix-crash-in-output-freeing.patch:
+    - Fix crash in module-combine-sink (LP: #1228759)
+    0103-resampler-Fix-peaks-resampler-s-channel-handling.patch:
+    - Fix crash in peak resampler (LP: #1212019)
+    0104-default-system.pa-Do-not-load-module-dbus-protocol.patch:
+    - module-dbus-protocol is still crashy, unfortunately (LP: #1213369)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 30 Sep 2013 15:11:42 +0200
+
+pulseaudio (1:4.0-0ubuntu5) saucy; urgency=low
+
+  [ David Henningsson ]
+  * Ubuntu phone: Suspend sinks/sources before tearing down voice calls
+    (LP: #1226298)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Wed, 25 Sep 2013 13:06:49 -0300
+
+pulseaudio (1:4.0-0ubuntu4) saucy; urgency=low
+
+  * debian/patches/Disable-tsched-for-Nexus-10.patch
+    Add a workaround patch for Nexus 10 and only apply it on armhf
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 12 Sep 2013 17:07:21 -0400
+
+pulseaudio (1:4.0-0ubuntu3) saucy; urgency=low
+
+  * Ubuntu Phone: Enable setting volume in voice calls
+    Fix speaker phone mode on Nexus 4
+
+ -- David Henningsson <david.henningsson@canonical.com>  Tue, 10 Sep 2013 12:32:10 -0400
+
+pulseaudio (1:4.0-0ubuntu2+build1) saucy; urgency=low
+
+  * No-change rebuild (updated android-platform-headers)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 02 Sep 2013 17:12:10 +0200
+
+pulseaudio (1:4.0-0ubuntu2) saucy; urgency=low
+
+  * patches/020*, control, pulseaudio.install.armhf:
+    Add patches for Ubuntu Touch, make us detect Android jacks,
+    and talk to the Audio HAL for voice calls
+
+ -- David Henningsson <david.henningsson@canonical.com>  Tue, 27 Aug 2013 10:53:46 +0200
+
+pulseaudio (1:4.0-0ubuntu1) saucy; urgency=low
+
+  [ Luke Yelavich ]
+  * New upstream test release
+  * Drop all patches originally taken from upstream
+  * 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch: Refreshed
+  * Update symbols files
+  * Update shlibs
+  * Add/update lintian overrides from Debian package
+
+  [ David Henningsson ]
+  * 0019-disable-dbus-protocol.patch: Dropped, bug fixed upstream
+  * 0007-handle-Master-Front.patch: Dropped. "Master Front" does not exist as
+    of Linux 3.9 
+  * Drop references to pulseaudio-module-udev, pulseaudio-rygel-media-server and
+    pulseaudio-module-hal. We didn't have them in 12.04 and we don't support
+    upgrades bypassing 12.04.
+  * Ship new module-remap-source module and bash completion 
+  * Add an build/run autopkgtest for libpulse-dev
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 26 Jul 2013 11:02:06 +1000
+
 pulseaudio (3.0-1) experimental; urgency=low
 
   [ Sjoerd Simons ]
@@ -1159,6 +2394,141 @@ pulseaudio (3.0-1) experimental; urgency
 
  -- Sjoerd Simons <sjoerd@debian.org>  Mon, 11 Feb 2013 19:33:15 +0100
 
+pulseaudio (1:3.0-0ubuntu9) saucy; urgency=low
+
+  * debian/patches/0112-*, 0113-*: Add better support for machines with
+    "Headphone Mic" and "Headset Mic" jacks, used in some newer hardware
+    (LP: #1169143)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Wed, 24 Jul 2013 09:43:55 +0200
+
+pulseaudio (1:3.0-0ubuntu8) saucy; urgency=low
+
+  * debian/patches/0023-fixing_snd_mixer_poll_descriptors_count_when_zero.patch:
+    - Avoid abort when poll descriptor is 0, such as when using it with the
+      audioflinger bridge, like done in ubuntu touch (LP: #1092377)
+
+ -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>  Mon, 10 Jun 2013 17:54:18 -0300
+
+pulseaudio (1:3.0-0ubuntu7) saucy; urgency=low
+
+  [ Martin Pitt ]
+  * Add 0111-logind-check.patch: Check for logind, not for systemd init. Patch
+    backported from upstream master.
+  * Switch to logind for session tracking:
+    - debian/control: Add systemd build dependencies for logind support. Move
+      dependency from consolekit to libpam-systemd.
+    - debian/pulseaudio.install: Install logind module instead of the
+      consolekit module.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 29 Apr 2013 15:13:12 +1000
+
+pulseaudio (1:3.0-0ubuntu6) raring; urgency=low
+
+  * 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch:
+    Fix patch not to cause 100% CPU (LP: #1170313)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 18 Apr 2013 13:24:16 +0200
+
+pulseaudio (1:3.0-0ubuntu5) raring; urgency=low
+
+  * 0022-inotify-wrapper-Quit-daemon-if-pid-file-is-removed.patch: 
+    Fix stale pulseaudio processes after logout (LP: #1167192)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Wed, 17 Apr 2013 16:13:04 +0200
+
+pulseaudio (1:3.0-0ubuntu4b2) raring; urgency=low
+
+  * Another no-change rebuild against libudev1 to pick up transitive
+    dependencies.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Thu, 14 Mar 2013 10:23:58 +0100
+
+pulseaudio (1:3.0-0ubuntu4b1) raring; urgency=low
+
+  * No-change rebuild against libudev1
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Wed, 13 Mar 2013 07:02:09 +0000
+
+pulseaudio (1:3.0-0ubuntu4) raring; urgency=low
+
+  [ Kaj Ailomaa ]
+  * 0108-module-jackdbus-detect-channel-config.patch
+    0109-module-jackdbus-detect-channel-config-fix.patch
+    Adds channel configuration to module-jackdbus-detect
+  * 0110-module-jackdbus-detect-channel-config-default.patch
+    Sets default channel config for module-jackdbus-detect to 2,
+    as jack is not well adapted for anything beyond mono or stereo
+    connections.
+
+ -- David Henningsson <david.henningsson@canonical.com>  Fri, 01 Mar 2013 15:13:31 +0100
+
+pulseaudio (1:3.0-0ubuntu3) raring; urgency=low
+
+  * 0106-reserve-Move-get_name_owner-to-the-public-rd_device-.patch,
+    0107-reserve-Fix-leaking-NameLost-signals-after-release-a.patch:
+    Fix sound suddenly stops working, seems particularly frequent with VLC
+    (LP: #1129990, LP: #1127872)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 21 Feb 2013 10:55:16 +0100
+
+pulseaudio (1:3.0-0ubuntu2) raring; urgency=low
+
+  * Update libpulse0 symbols
+  * Pulseaudio should have a hard dependency on the binary version of libpulse0
+    to guard against libpulsecommon ABI breakage.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 18 Feb 2013 09:43:39 +0000
+
+pulseaudio (1:3.0-0ubuntu1) raring; urgency=low
+
+  [ Luke Yelavich ]
+  * debian/control: Update Vcs-Bzr field for raring
+  * Bump upstream version and rules/shlib files to 3.0.
+
+  [ David Henningsson ]
+  * New upstream release (3.0)
+  * 0100-resampler-Fix-volume-on-downmix-to-mono.patch,
+    0101-alsa-mixer-Remove-analog-output-lfe-on-mono.patch,
+    0010-lp453966-handle-digmic-pt2.patch:
+    Dropped, applied upstream
+  * 0002-In-KDE-only-start-pulseaudio-from-the-KDE-specific-d.patch:
+    Dropped, Debian dropped it and we got it from there
+  * 0002-add-padsp-wrapper-check.patch:
+    Dropped, makes no sense now that OSS is disabled in the kernel
+  * 0008-delay-gnome-autostart.patch:
+    Dropped per Martin Pitt's recommendation (incompatible upstream change)
+  * 0101-alsa-mixer-Fix-the-analog-output-speaker-always-path.patch,
+    0102-Call-change_cb-only-when-there-s-an-actual-change.patch,
+    0103-Initialize-monitor-s-busy-status-to-false-if-we-own-.patch:
+    Added from upstream stable-3.x tree
+  * Other patches refreshed
+  * debian/control: PulseAudio binary package is no longer 
+    "Multi-Arch: foreign" (LP: #1078543)
+  * debian/control, pulseaudio-module-bluetooth.install:
+    Update for new bluetooth dependency (libsbc)
+  * debian/watch: Change to .xz by default (because Debian does)
+  * debian/pulseaudio.init: Don't claim to support reload (Debian BTS: #690736)
+  * debian/rules, debian/pulseaudio.manpages: Fix installation of default.pa
+    (Debian BTS: #690416)
+  * debian/rules: disable hal compat module
+  * debian/pulse-alsa.conf, debian/README.Debian,
+    debian/pulseaudio-esound-compat.links, debian/pulseaudio.init,
+    debian/pulseaudio.install: Sync with Debian.
+  * debian/manpages/esdcompat.1: Remove, already upstream.
+  * debian/control: Sync build-dependencies with debian, in particular,
+    - add fftw3 development library
+  * debian/control: Cosmetic changes (sync with Debian)
+  * debian/pulseaudio.postinst: Remove ancient upgrade stuff - we won't support
+    direct upgrades from 8.04 to 13.04+ anyway
+
+  [ Luke Yelavich ]
+  * 0104-alsa-ucm-Fallback-to-stereo-duplex.patch: Added from upstrea git
+    stable tree to fix ucm related issues.
+  * Disable use of UCM in PulseAudio for now.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 14 Feb 2013 12:05:20 +1100
+
 pulseaudio (2.1-2) experimental; urgency=low
 
   * debian/control: Use linux-any where applicable instead of specifying
@@ -1180,6 +2550,43 @@ pulseaudio (2.1-1) experimental; urgency
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 21 Jul 2012 17:38:52 +0200
 
+pulseaudio (1:2.1-0ubuntu4) quantal-proposed; urgency=low
+
+  * 0101-alsa-mixer-Remove-analog-output-lfe-on-mono.patch:
+    Fix muted audio on startup in Virtualbox VM (LP: #1016969) 
+  * 0020-stream-Return-error-in-case-a-client-peeks-to-early.patch:
+    Fix clients crashing when asking for data, but there is no data
+    to hand out (LP: #1058200) 
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 04 Oct 2012 14:43:27 +0200
+
+pulseaudio (1:2.1-0ubuntu3) quantal; urgency=low
+
+  [ David Henningsson ]
+  * 0100-resampler-Fix-volume-on-downmix-to-mono.patch:
+    Fix clipped audio on downmix to mono (LP: #416190)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 11 Sep 2012 09:24:29 +1000
+
+pulseaudio (1:2.1-0ubuntu2) quantal; urgency=low
+
+  * Merge changes that were accidentally squashed from 2.0-0ubuntu2.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 13 Aug 2012 15:14:32 +1000
+
+pulseaudio (1:2.1-0ubuntu1) quantal; urgency=low
+
+  [ David Henningsson ]
+  * Remove the old 01PulseAudio pm-utils script, since it
+    causes (LP: #665314) and is not recommended by upstream.
+
+  [ Luke Yelavich ]
+  * New upstream release.
+  * Dropped patches, applied upstream:
+    - 0621-Add-special-profiles-for-some-laptops-missing-speake.patch
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 13 Aug 2012 15:05:52 +1000
+
 pulseaudio (2.0-3) unstable; urgency=low
 
   [ Martin-Éric Racine ]
@@ -1222,6 +2629,44 @@ pulseaudio (2.0-1) unstable; urgency=low
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 13 May 2012 17:07:15 +0200
 
+pulseaudio (1:2.0-0ubuntu2) quantal; urgency=low
+
+  * deprecate pulseaudio.default.  Move it's helpful comments into the upstart
+    script.
+  * pulseaudio.upstart:
+    - replace mkdir/chmod/chown by install
+    - remove PULSEAUDIO_SYSTEM_START=0, and instead comment out the 'start on'
+      with a comment explaining how to re-enable
+    - remove started udev from start on - it's redundant with runlevel 2, and
+      would fail in the case of switching to runlevel 1 and back to 2.
+
+ -- Serge Hallyn <serge.hallyn@ubuntu.com>  Fri, 20 Jul 2012 12:30:47 -0500
+
+pulseaudio (1:2.0-0ubuntu1) quantal; urgency=low
+
+  [ Luke Yelavich ]
+  * New upstream release.
+  * Drop all patches which are now upstream, including jack detection.
+  * Refreshed patches:
+    - 0002-add-padsp-wrapper-check.patch
+    - 0005-dont-load-cork-music-on-phone.patch
+  * debian/pulseaudio.install: Point to module-role-cork.so
+  * debian/rules: pulse-1.1 -> pulse-2.0
+
+  [ Pali Rohár ]
+  * Convert System V pulseaudio init script to upstart
+
+  [ Luke Yelavich ]
+  * debian/libpulse0.install, debian/libpulsedsp.install:
+    - Point to new location of libpulsecommon.
+  * Ship new modules:
+    - switch-on-port-available.so
+    - virtual-surround-sink.so
+  * Ship new manpages.
+  * Switch to package version 3.0 quilt.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 08 Jun 2012 15:51:39 +1000
+
 pulseaudio (1.1-3.2) unstable; urgency=low
 
   * Non-maintainer upload.
@@ -1255,6 +2700,213 @@ pulseaudio (1.1-1) unstable; urgency=low
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 23 Oct 2011 11:08:01 +0200
 
+pulseaudio (1:1.1-0ubuntu16) quantal; urgency=low
+
+  [ Luke Yelavich ]
+  * debian/control: Update Vcs-Bzr field for quantal.
+
+  [ David Henningsson ]
+  * 0621-Add-special-profiles-for-some-laptops-missing-speake.patch:
+    Add missing speaker/internal mic ports for some laptops (LP #946232)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 28 May 2012 11:14:08 +0200
+
+pulseaudio (1:1.1-0ubuntu15) precise; urgency=low
+
+  * 0125-alsa-sink-source-Really-set-volumes-on-port-change.patch:
+    Fix volume not being correctly set on port change. With this fixed
+    we can also drop
+    0017-Hack-around-a-bug-in-the-core-causing-volumes-not-to.patch.
+  * 0022-allow-analog-input-path-for-no-volume.patch:
+    Allow inputs with no volume controls to still have ports. The lack of
+    ports caused a problem for the new sound settings UI (LP: #978109)
+  * 0126-alsa-sink-source-Make-sure-volumes-are-synchronised-.patch:
+    Fix volumes not synchronised in guest session (LP: #915035)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 12 Apr 2012 00:24:20 +0200
+
+pulseaudio (1:1.1-0ubuntu14) precise; urgency=low
+
+  * 012*.patch: Cherry-pick bugfix patches from upstream git
+  * 0620-alsa-mixer-Show-HDMI-ports-for-older-Nvidia-cards.patch (LP: #961286)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Fri, 30 Mar 2012 09:47:17 +0200
+
+pulseaudio (1:1.1-0ubuntu13) precise; urgency=low
+
+  * 0020-daemon-Initialize-dbus-to-use-thread-safe-mode-by-de.patch:
+    Make sure dbus is thread safe to avoid crashes in pa_make_realtime 
+    (LP: #937933)
+  * 0111-protocol-native-Protect-against-clients-trying-to-se.patch:
+    Don't crash if clients try to set a NULL port (LP: #951273)
+  * 0021-Fix-input-device-for-M-audio-fasttrack-pro.patch:
+    Probe two different input devices (LP: #569932)
+  * 0112-module-loopback-Never-call-adjust_rates-after-teardo.patch:
+    Don't crash on shutdown in module-loopback (LP: #946400)
+  * 0619-module-switch-on-port-available-Do-not-switch-profil.patch:
+    Prevent switching to HDMI profiles from analog profiles, as a result
+    of discussion on the pulseaudio-discuss and ubuntu-audio-dev mailinglist.
+
+ -- David Henningsson <david.henningsson@canonical.com>  Wed, 21 Mar 2012 10:47:33 +0100
+
+pulseaudio (1:1.1-0ubuntu12) precise; urgency=low
+
+  [ Luke Yelavich ]
+  * debian/control: Demote pulseaudio-esound-compat to suggests (LP: #930703)
+
+  [ David Henningsson ]
+  * 0110-flist-Avoid-the-ABA-problem.patch:
+    Fix occasional crashes in pa_memblock_free, pa_memblock_ref and drop_block
+    (LP: #924416)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Fri, 09 Mar 2012 00:08:42 +0100
+
+pulseaudio (1:1.1-0ubuntu11) precise; urgency=low
+
+  * Cherry-pick a few crash-related patches from upstream git
+  * 0616-alsa-mixer-Make-speaker-get-available-no-when-headph.patch:
+    Don't remove paths if the state(un)plugged of the jack differs (LP: 933825)  
+
+ -- David Henningsson <david.henningsson@canonical.com>  Wed, 29 Feb 2012 11:03:32 +0100
+
+pulseaudio (1:1.1-0ubuntu10) precise; urgency=low
+
+  * debian/pulse-alsa.conf: Update syntax, as this file was throwing
+    errors when apps used the alsa pulse plugin.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 23 Feb 2012 14:58:36 +1100
+
+pulseaudio (1:1.1-0ubuntu9) precise; urgency=low
+
+  * debian/pulseaudio.init: Don't tell the user pulseaudio daemon isn't
+    starting when in per-user mode.  This is the most common case in Ubuntu
+    and causing needless distracting text on the screen. (LP: #656426)
+
+ -- Mario Limonciello <Mario_Limonciello@Dell.com>  Fri, 17 Feb 2012 16:32:52 -0600
+
+pulseaudio (1:1.1-0ubuntu8) precise; urgency=low
+
+  [ David Henningsson ]
+  * Make sure we switch away from unavailable ports at 
+    startup (LP: #928914)
+  * 0020-Fix-Darth-Vader-panning-bug.patch: 
+    Fix distorted sound when panned hard left (or right). (LP: #928757)
+  * 0618-alsa-mixer-Don-t-use-dangling-pointers-as-port-hashm.patch:
+    Fix inability to set port when options were used (LP: #932804)
+  * Minimize margins for deferred volumes, as a workaround for volume 
+    changes being dropped on port change.
+  * 0610-Jack-detection-kcontrol-implementation.patch:
+    Fix a bug in the headphone path
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 17 Feb 2012 07:28:23 +1100
+
+pulseaudio (1:1.1-0ubuntu7) precise; urgency=low
+
+  * Move the pulse.conf ALSA config file to the correct location, alsa.conf.d
+    not conf.d, thanks to Pete Graner for teh heads up.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 09 Feb 2012 08:22:04 +1100
+
+pulseaudio (1:1.1-0ubuntu6) precise; urgency=low
+
+  [ David Henningsson ]
+  * 0103-alsa-mixer-Allow-speaker-port-to-control-Front-Speak.patch:
+    - Control "Front Speaker" and a few more. From upstream git. (LP: #551441)
+  * 0105-loopback-Fix-crashes.patch:
+    - Fix some crashes on shutting down the loopback module, from upstream git.
+  * 0104-alsa-Improve-well-known-descriptions-for-ports.patch:
+    - Replace with upstream version.
+  * 0018-module-tunnel-source-fixup-create_record_stream.patch:
+    - Fix protocol error in module-tunnel-source (LP: #923661)
+  * Fixup HDMI patch to make sure it does not affect M-audio fasttrack Pro
+    (LP: #926911)
+  * Add two more jack detection patches to make it work better with the 
+    upcoming UI changes
+
+  [ Martin-Éric Racine ]
+  * Use --disallow-exit when running in system mode, as recommended
+    by PulseAudio log file (LP: #922848)  
+
+  [ Luke Yelavich ]
+  * Move the main pulse ALSA configuration file, pulse.conf to
+    /usr/share/alsa/conf.d, available in ALSA 1.0.25.
+  * Disable the dbus-protocol by default, as there have been recent reports
+    of crashes and race conditions, and upstream no longer finds the code
+    trustworthy.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 08 Feb 2012 15:58:41 +1100
+
+pulseaudio (1:1.1-0ubuntu5) precise; urgency=low
+ 
+  * Redo jack detection patches, so that they use the new jack detection
+    interface and the upstream code whenever possible.
+  * New patch better-well-known-descriptions.patch:
+    - Simplify port names. This patch is to be committed upstream shortly
+  * New patches from upstream git:
+    - 0101-alsa-Ignore-the-virtual-thinkpad-acpi-card.patch:
+      Ignore the dummy thinkpad-acpi soundcard (as it cannot playback or
+      record sound anyway)
+    - 0102-alsa-mixer-When-selecting-an-input-turn-off-boosts-o.patch:
+      alsa-mixer: When selecting an input, turn off boosts of
+      other inputs
+
+ -- David Henningsson <david.henningsson@canonical.com>  Fri, 27 Jan 2012 13:56:46 +0100
+
+pulseaudio (1:1.1-0ubuntu4) precise; urgency=low
+
+  [ Daniel T Chen ]
+  * Don't load module-raop-discover by default. (LP: #782860)
+
+  [ Gabor Kelemen ]
+  * Run dh_translations to generate translation template, add it as build-dep.
+    (LP: #876866)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 14 Dec 2011 10:50:16 +1100
+
+pulseaudio (1:1.1-0ubuntu3) precise; urgency=low
+
+  * Allow pulseaudio-module-bluetooth to build on armhf.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Mon, 05 Dec 2011 12:57:06 -0700
+
+pulseaudio (1:1.1-0ubuntu2) precise; urgency=low
+
+  * No-change rebuild to drop spurious libsfgcc1 dependency on armhf.
+
+ -- Adam Conrad <adconrad@ubuntu.com>  Fri, 02 Dec 2011 17:31:22 -0700
+
+pulseaudio (1:1.1-0ubuntu1) precise; urgency=low
+
+  * New upstream release
+  * debian/watch: Update to new location
+  * Dropped patches, as these were from upstream:
+    - 0100-extended-Fix-doxygen-comment-style-typos.patch
+    - 0101-sink-source-Avoid-unnecessary-call-to-pa_rtclock_now.patch
+    - 0102-Always-return-a-three-part-version-number-in-API-cal.patch
+    - 0103-module-jackdbus-detect-Avoid-double-free-of-modargs.patch
+    - 0104-source-output-Do-not-use-unset-channel-map-in-pa_sou.patch
+    - 0105-Fix-deferred-volume-not-being-applied-if-sink-is-clo.patch
+    - 0106-sink-Move-updating-the-requested-latency-after-the-r.patch
+    - 0107-n ull-sink-Set-latency-range-at-the-time-of-initializ.patch
+    - 0108-Make-pulse-build-with-clang-again.patch
+    - 0109-alsa-Give-compressed-formats-preference-over-PCM.patch
+    - 0110-alsa-Better-error-handling-in-mixer-rtpoll-callback.patch
+    - 0111-echo-cancel-Fail-if-loaded-between-a-sink-and-its-mo.patch
+    - 0112-doc-Add-some-more-doxygen-tags-to-existing-comments.patch
+    - 0113-alsa-Make-mixer-error-handling-more-robust-still.patch
+    - 0114-echo-cancel-Don-t-crash-if-adjust_time-0.patch
+    - 0115-echo-cancel-Close-debug-files-on-module-unload.patch
+    - 0116-tests-Fix-calculation-of-memblock-size-in-resampler-.patch
+    - 0117-filter-apply-Move-sink-source-unlink-callbacks-befor.patch
+    - 0118-build-sys-Drop-libsamplerate-from-pulsecommon-deps.patch
+    - 0119-build-sys-Provide-a-simple-CMake-Config-setup-simila.patch
+  * Put libpulsedsp.so into its own package, so it can be built for
+    multi-arch
+  * debian/rules: Update for 1.1
+  * Update shlib files
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 27 Oct 2011 12:36:17 +1100
+
 pulseaudio (1.0-4) unstable; urgency=low
 
   * debian/control: Don't depend on libasound2-plugins on kfreebsd
@@ -1284,6 +2936,157 @@ pulseaudio (1.0-1) unstable; urgency=low
 
  -- Sjoerd Simons <sjoerd@debian.org>  Wed, 28 Sep 2011 00:52:27 +0100
 
+pulseaudio (1:1.0-0ubuntu4) precise; urgency=low
+
+  [ David Henningsson ]
+  * Added patches:
+    0103-module-jackdbus-detect-Avoid-double-free-of-modargs.patch:
+      (LP: #867444)
+    0104-source-output-Do-not-use-unset-channel-map-in-pa_sou.patch: 
+      (LP: #864071)
+    0105-Fix-deferred-volume-not-being-applied-if-sink-is-clo.patch,
+    0017-Hack-around-a-bug-in-the-core-causing-volumes-not-to.patch:
+      These two patches affect users not having their volume correctly
+      set on port change (LP: #877954)
+
+  [ Luke Yelavich ]
+  * debian/control: Update Vcs-Bzr field
+  * 0102-Always-return-a-three-part-version-number-in-API-cal.patch: Refresh
+    the patch from upstrea git, to refer to the correct commit hash, and
+    update the description
+  * Pull some bug fixes from the stable-1.x upstream git branch:
+    - 411af6b (sink: Move updating the requested latency after the rewind
+               request when finishing a stream move.)
+    - 87f70c6 (null-sink: Set latency range at the time of initialization of
+               module.)
+    - d71a291 (Make pulse build with clang again)
+    - 4e5943b (alsa: Give compressed formats preference over PCM)
+    - 867170a (alsa: Better error handling in mixer rtpoll callback)
+    - c055c55 (echo-cancel: Fail if loaded between a sink and its monitor)
+    - 8754e0c (doc: Add some more doxygen tags to existing comments)
+    - 2c30c07 (alsa: Make mixer error handling more robust still)
+    - 8a5e6e8 (echo-cancel: Don't crash if adjust_time = 0)
+    - 7b13a79 (echo-cancel: Close debug files on module unload)
+    - 6bf0489 (tests: Fix calculation of memblock size in resampler-test)
+    - 93f55a4 (filter-apply: Move sink/source unlink callbacks before m-s-r)
+    - b1dabfb (build-sys: Drop libsamplerate from pulsecommon deps)
+    - 743a4d0 (build-sys: Provide a simple CMake Config setup (similar to
+               pkgconfig))
+  * Add liborc-0.4-dev as a build dependency to add orc support
+  * debian/libpulse-dev.install: Ship cmake files
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 20 Oct 2011 11:36:43 +1100
+
+pulseaudio (1:1.0-0ubuntu3) oneiric; urgency=low
+
+  * debian/patches/0102-Always-return-a-three-part-version-number-in-API
+    -cal.patch: Update to fix skype regression as well (LP: #865820)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 06 Oct 2011 10:39:49 +0200
+
+pulseaudio (1:1.0-0ubuntu2) oneiric; urgency=low
+
+  [ Matthias Klose ]
+  * Drop build dependency on libatomic-ops-dev. Not needed on !ia64.
+
+  [ Scott Kitterman ]
+  * Add debian/patches/0102-Always-return-a-three-part-version-number-in-API
+    -cal.patch to fix regression in pulseaudio version detection by
+    applications depending on the three part version number previously used by
+    pulseaudio (including phonon)
+      - Cherrypicked from upstream
+
+ -- Scott Kitterman <scott@kitterman.com>  Tue, 04 Oct 2011 22:06:39 -0500
+
+pulseaudio (1:1.0-0ubuntu1) oneiric; urgency=low
+
+  [ David Henningsson ]
+  * Fix "Parse failure" error with remote sources/sinks,
+    thanks to Martin-Eric Racine for reporting/testing! (LP: #852902)
+  * Fix crash when dbus module does not load (LP: #855729)
+  * Add more bug fixes from upstream git
+
+  [ Daniel T Chen ]
+  * debian/copyright: Update all shipped sources
+  * Various xcb_*() bugs already fixed in Sep 2010 (LP: #642030,
+    LP: #646583, LP: #646616, LP: #648104)
+  * Passthrough is supported in 1.0 (LP: #448024)
+  * PulseAudio + alsa-plugins route through PulseAudio by default
+    (LP: #378382)
+
+  [ Luke Yelavich ]
+  * New upstream bugfix release
+    - vala: Add has_type_id=false to all enums, structs and classes
+    - module-switch-on-connect: Don't switch unlinked sink input and source
+      outputs
+    - alsa-mixer: Set "Front" control to 0 dB on headphone path
+    - module-equalizer-sink: Use %z for printf of size_t variables
+    - module-equalizer-sink: Use = in initialising variables
+    - bluetooth/sbc: Use __asm__ keyword
+    - module-equalizer-sink: Use correct limit in loop
+    - Squash the last gcc warnings
+    - Make gcc --std=c99 happy
+    - device-restore: Simplify the migration of data to per-port keys.
+    - stream-restore: Add in some variable sets that were missing from 9ffa93.
+    - stream-restore: Add proper data validity checks to the legacy database
+      entry read.
+    - formats: The format code should be in libpulse, not libpulsecommon
+    - formats: Export more functions needed for a clean build.
+    - device-restore: Fix use-after-free error.
+    - raop: Use the port supplied by avahi when connecting to RAOP devices.
+    - loopback: New modargs: sink_input_properties and
+      source_output_properties.
+    - bluetooth: Bump DBus version to 1.3.0 and drop conditional code.
+    - alsa: Tidy up argument descriptions
+    - module-suspend-on-idle: Move vacuum code to core
+    - alsa-mixer: Add support for the Microsoft Kinect Sensor device
+    - modargs: Ensure modargs can be accessed in their raw form.
+    - raop: Properly deal with the name coming from the device.
+    - build-sys: Oops forgot to add the Kinect profile to the build system.
+    - volume: Rename 'sync volume' to 'deferred volume'.
+    - raop: Don't crash if fd is not open when trying to close it
+    - doc: Update README with fresh links.
+    - doc: Add info about running pulseaudio from the build dir
+    - stream: Relax assert for extended API
+    - def: Hide server-side sink/source flags
+    - volume: Handle varying channel count for shared volumes
+    - virtual: Make volume sharing on by default
+    - equalizer: Use volume sharing by default
+    - echo-cancel: Use volume sharing by default
+    - sink,source: Avoid crash by not updating volume on shutdown
+    - conf: Make sure module-dbus-protocol is loaded after
+      module-default-device-restore
+    - build-sys: bump soname
+    - sink,source: Handle missing in the shared volume case
+    - dbus: Don't crash if the module does not load
+    - Fix crash in threaded message queues
+    - build-sys: Switch to the tar-ustar format (as per a lot of GNOME stuff
+      for 3.2) and distribute .xz files.
+    - build-sys: bump soname
+  * Dropped patches, all applied upstream:
+    - 0017-Avoid-crash-by-not-updating-volume-on-shutdown.patch
+    - 0018-RAOP-Don-t-crash-if-fd-is-not-open-when-trying-to-cl.patch
+    - 0019-Make-sure-module-dbus-protocol-is-loaded-after-modul.patch
+    - 0100-vala-Add-has_type_id-false-to-all-enums-structs-and-.patch
+    - 0101-module-switch-on-connect-Don-t-switch-unlinked-sink-.patch
+    - 0102-alsa-mixer-Set-Front-control-to-0-dB-on-headphone-pa.patch
+    - 0103-module-equalizer-sink-Use-z-for-printf-of-size_t-var.patch
+    - 0104-module-equalizer-sink-Use-in-initialising-variables.patch
+    - 0105-bluetooth-sbc-Use-__asm__-keyword.patch
+    - 0106-module-equalizer-sink-Use-correct-limit-in-loop.patch
+    - 0107-Squash-the-last-gcc-warnings.patch
+    - 0108-Make-gcc-std-c99-happy.patch
+    - 0109-device-restore-Simplify-the-migration-of-data-to-per.patch
+    - 0110-stream-restore-Add-in-some-variable-sets-that-were-m.patch
+    - 0111-stream-restore-Add-proper-data-validity-checks-to-th.patch
+  * Pull some post-1.0 fixes from upstream git master
+    - 6878140 (extended: Fix doxygen comment style typos)
+    - 6a9272f (sink,source: Avoid unnecessary call to pa_rtclock_now())
+  * debian/rules: Modules are now in a 1.0 directory
+  * Update symbols
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 29 Sep 2011 10:01:56 +1000
+
 pulseaudio (0.99.4-1) experimental; urgency=low
 
   * New upstream release
@@ -1291,6 +3094,122 @@ pulseaudio (0.99.4-1) experimental; urge
 
  -- Sjoerd Simons <sjoerd@debian.org>  Fri, 16 Sep 2011 21:23:47 +0100
 
+pulseaudio (1:0.99.3-0ubuntu5) oneiric; urgency=low
+
+  [ David Henningsson ]
+  * 0017-Avoid-crash-by-not-updating-volume-on-shutdown.patch:
+    Fix typo in patch
+
+  [ Luke Yelavich ]
+  * Patch from David Henningssen to make sure module-dbus-protocol is loaded
+    after module-device-restore (LP: #843780)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 15 Sep 2011 09:59:20 +1000
+
+pulseaudio (1:0.99.3-0ubuntu4) oneiric; urgency=low
+
+  * Fix crash in jack detection patches (LP: #845468)
+  * Fix crash when reading volume when sink/source is unlinked (LP: #841968)
+  * Fix crash in RAOP (LP: #845286)
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 12 Sep 2011 10:29:00 +0200
+
+pulseaudio (1:0.99.3-0ubuntu3) oneiric; urgency=low
+
+  * Jack detection support, second version, now with HDMI support
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 05 Sep 2011 16:41:12 +0200
+
+pulseaudio (1:0.99.3-0ubuntu2) oneiric; urgency=low
+
+  * Dropped patches (applied upstream):
+    - 0004-mute-iec958-optical-raw-for-audigyX.patch
+    - 0011-lp451635-handle-dove-x0-line-hp-swap.patch
+    - 0012-JACK-Load-module-jackdbus-detect-in-default.pa.patch
+
+ -- David Henningsson <david.henningsson@canonical.com>  Mon, 05 Sep 2011 11:55:59 +0200
+
+pulseaudio (1:0.99.3-0ubuntu1) oneiric; urgency=low
+
+  [ David Henningsson ]
+  * 0018-alsa-mixer-Set-Front-control-to-0-dB-on-headphone-pa.patch:
+    Set Front to 0 dB for Headphones (LP: #836921)
+
+  [ Luke Yelavich ]
+  * New upstream bugfix release
+    - source: Remove the PA_SOURCE_PASSTHROUGH flag
+    - alsa: Don't always suspend/unsuspend on sink-input removal
+    - formats: Use correct API to check for passthrough streams
+    - alsa: Open iec958 device with NONAUDIO bit set in passthrough mode
+    - formats: Fix bad passsthrough check
+    - alsa: Fix bad function name
+    - daemon: Fix compiler warning about missing function prototype
+    - passthrough: We must not plug in a resampler on stream move
+    - sink-input: Ensure no volumes are applied for passthrough streams
+    - source-output: Ensure no volumes are applied for passthrough streams
+    - Revert "device-restore: Make bools not be bit fields"
+    - sample-util: Fix off-by-one in error check
+    - sink: Add PA_SINK_SET_FORMATS macro
+    - build-sys: Fix some LDFLAGS vs. LDADD usage
+    - echo-cancel: Add multiple include protection for header
+    - echo-cancel: Use pa_streq instead of strcmp
+    - echo-cancel: Move speex preprocessing out of the main module
+    - passthrough: Fix what volume we set sinks/sources to
+    - passthrough: Fix setting volume to unamplified again
+    - echo-cancel: Make save_aec modarg a bool instead of an int
+    - echo-cancel: Don't allow streams to attach while unloading
+    - echo-cancel: Get rid of annoying compiler warnings
+    - equalizer: Comment out unused function
+    - def: Add a new enum to allow differntiation between sinks and sources.
+    - dbus: Use pa_device_type_t rather than an internal equivalent
+    - device-restore: Change the API to include type information (sink
+      vs. source)
+    - device-restore: Split device restore database into two parts.
+    - device-restore: Restore volumes on port change.
+    - build-sys: bump soname
+    - alsa-mixer: Mute IEC958 optical raw for several Audigy models
+    - alsa-mixer: Add "Line HP Swap" element
+    - JACK: Load module-jackdbus-detect in default.pa
+    - Remove offensive part of error message
+    - switch-on-connect: Don't switch to a monitor source
+    - Fix spelling sucess -> success
+    - Set better priorities on input paths
+    - introspect: fix typo in default sink/source docs
+    - pacat: make pacat respond to cork/uncork events
+    - Spelling fixes in public headers
+    - More spelling fixes
+    - gitignore: Add Orc autogenerated files
+    - echo-cancel: Use stream index in debug message
+    - Remove extra ; s where they are not allowed in strict C99
+    - sndfile-util: Check return value of sf_command for errors
+  * Pull some further fixes from upstream git master:
+    - fb107fc (vala: Add has_type_id=false to all enums, structs and classes)
+    - c7bba24 (module-switch-on-connect: Don't switch unlinked sink input and
+               source outputs)
+    - 9636991 (alsa-mixer: Set "Front" control to 0 dB on headphone path)
+    - fc3ddfb (module-equalizer-sink: Use %z for printf of size_t variables)
+    - 918f168 (module-equalizer-sink: Use = in initialising variables)
+    - 3d04a05 (bluetooth/sbc: Use __asm__ keyword)
+    - 647048e (module-equalizer-sink: Use correct limit in loop)
+    - dfd706d (Squash the last gcc warnings)
+    - 9133c6c (Make gcc --std=c99 happy)
+    - 47c9d8c (device-restore: Simplify the migration of data to per-port keys.)
+    - e7b65d3 (stream-restore: Add in some variable sets that were missing
+               from 9ffa93.)
+    - 2b96fdf (stream-restore: Add proper data validity checks to the legacy
+               database entry read.)
+  * Dropped patches, applied upstream:
+    - 0017-Make-dbus-error-more-polite.patch
+    - 0018-alsa-mixer-Set-Front-control-to-0-dB-on-headphone-pa.patch
+    - 0400-introspect-fix-typo-in-default-sink-source-docs.patch
+    - 0401-source-Remove-the-PA_SOURCE_PASSTHROUGH-flag.patch
+    - 0402-alsa-Don-t-always-suspend-unsuspend-on-sink-input-re.patch
+    - 0403-formats-Use-correct-API-to-check-for-passthrough-str.patch
+  * 0604-ALSA-part-of-jack-detection-and-a-small-policy-modul.patch: Refreshed
+  * Update symbols files
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 05 Sep 2011 14:37:01 +1000
+
 pulseaudio (0.99.2-2) experimental; urgency=low
 
   * Fix build on kfreebsd architectures (Closes: 637785)
@@ -1310,6 +3229,30 @@ pulseaudio (0.99.2-1) experimental; urge
 
  -- Sjoerd Simons <sjoerd@debian.org>  Tue, 23 Aug 2011 20:51:25 +0200
 
+pulseaudio (1:0.99.2-0ubuntu2) oneiric; urgency=low
+
+  * Build-depend on libxcb1-dev (>= 1.6) rather than libxcb-atom1-dev, in
+    line with the packaging in Debian experimental.
+  * Build-depend on libtdb-dev rather than tdb-dev.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 18 Aug 2011 16:10:53 +0100
+
+pulseaudio (1:0.99.2-0ubuntu1) oneiric; urgency=low
+
+  * New upstream bugfix release
+  * 0005-dont-load-cork-music-on-phone.patch: Refreshed
+  * Dropped patches, applied upstream
+    - 0400-Fix-crash-in-path-subset-elimination.patch
+    - 0402-source-output-Fix-resampling.patch
+    - 0403-stream-restore-Save-restore-source-output-volume-mut.patch
+  * Pull some post 0.99.2 fixes from upstream git master:
+    - 7ed177d (introspect: fix typo in default sink/source docs)
+    - 2677911 (source: Remove the PA_SOURCE_PASSTHROUGH flag)
+    - dde09c7 (alsa: Don't always suspend/unsuspend on sink-input removal)
+    - adbdb62 (formats: Use correct API to check for passthrough streams)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 18 Aug 2011 09:17:09 +1000
+
 pulseaudio (0.99.1-1) experimental; urgency=low
 
   * New upstream test release
@@ -1348,6 +3291,68 @@ pulseaudio (0.99.1-1) experimental; urge
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 13 Aug 2011 14:21:02 +0200
 
+pulseaudio (1:0.99.1-0ubuntu3) oneiric; urgency=low
+
+  * debian/libpulse-glib-mainloop0.symbols: Fix a typo in the package name
+    which was made at the time of symbol generation
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 16 Aug 2011 15:20:47 +1000
+
+pulseaudio (1:0.99.1-0ubuntu2) oneiric; urgency=low
+
+  * Build for multiarch:
+    - libpulse{,-mainloop-glib}0{,-dbg} and libpulse-dev are Multi-Arch: same.
+    - pulseaudio itself should be Multi-Arch: foreign, since it's a daemon.
+    - drop dh-buildinfo build-dependency, incompatible with multiarch and not
+      relevant in Ubuntu where we have build logs for all builds.
+    - LP: #825342.
+
+ -- Steve Langasek <steve.langasek@ubuntu.com>  Sat, 13 Aug 2011 02:22:42 +0000
+
+pulseaudio (1:0.99.1-0ubuntu1) oneiric; urgency=low
+
+  [ Daniel T Chen ]
+  * 0017-Make-dbus-error-more-polite.patch: Remove language that doesn't
+    add anything to the error message (LP: #444400).
+
+  [ David Henningsson ]
+  * New upstream release, remaining patches:
+  * Add build dependency on libjson0-dev
+  * Dropped patches (implemented upstream):
+    0001-Work-around-some-platforms-not-having-O_CLOEXEC.patch
+    0009-lp533877-handle-digmic.patch
+    0015-alsa-mixer-Add-workaround-for-some-USB-headsets.patch
+    0200-gold.patch
+    0201-alsa-mixer-Add-a-few-well-known-descriptions.patch
+    0202-alsa-mixer-add-required-any-and-required-for-enum-op.patch
+    0203-alsa-mixer-always-round-towards-0-dB.patch
+    0204-alsa-mixer-Add-new-paths-for-Internal-Mic-Front-Mic-.patch
+    0205-alsa-mixer-Fixup-Mic-Line-analog-input-paths-to-work.patch
+    0206-alsa-mixer-Make-sure-capture-source-and-input-source.patch
+    0207-PulseAudio-added-IT-block-to-fix-thumb-conditional-i.patch
+    0208-alsa-sink-Fix-incorrect-work_done-value-to-prevent-expensive-update...
+    _smoother-calls.patch
+    0209-sndfile-pacat-Use-file-extension-and-fix-format-from-string.patch
+  * Refreshed patches:
+    0005-dont-load-cork-music-on-phone.patch
+    0012-JACK-Load-module-jackdbus-detect-in-default.pa.patch
+    0013-Load-RAOP-Zeroconf-by-default.patch
+    0014-alsa-mixer-Add-separate-profile-for-Nvidia.patch
+    0017-Make-dbus-error-more-polite.patch
+  * Upstream has removed libpulsebrowse, replace with dummy packages for the
+    time being.
+  * Updated shlibs files and debian/rules with new version number
+  * Add new modules to the pulseaudio package
+  * Initial pulseaudio support for jack detection
+
+  [ Luke Yelavich ]
+  * debian/control: Remove the libpulse-browse0 package, and add set
+    pulseaudio to replace that package until after the next LTS
+  * Add symbols files for libpulse0 and libpulse-mainloop-glib0 and adjust
+    other shlibs files as necessary
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 11 Aug 2011 14:30:44 +1000
+
 pulseaudio (0.9.23-1) unstable; urgency=low
 
   [ Daniel T Chen ]
@@ -1386,11 +3391,276 @@ pulseaudio (0.9.23-1) unstable; urgency=
     debian/rules
   * Switch to 3.0 (quilt) format
   * debian/control: Use dh-autoreconf
-  * debian/patches/+0003-Explicitely-link-pax11publish-to-libdbus.patch:
+  * debian/patches/    - 0003-Explicitely-link-pax11publish-to-libdbus.patch:
     + Added. Fix build with binutils-gold (Closes: #556124)
 
  -- Sjoerd Simons <sjoerd@debian.org>  Mon, 25 Jul 2011 23:05:29 +0100
 
+pulseaudio (1:0.9.23-0ubuntu2) oneiric; urgency=low
+
+  [ Daniel T Chen ]
+  * Add the following patches backported from upstream git:
+    - aa7bc32 (parecord: Automatically detect file format from extension)
+      [series patch 0208]
+    - 226ddb1 (alsa-sink: fix mmap_write() work_done) [series patch 0209]
+  * Update debian/copyright to cover echo-cancel files.
+
+  [ Michael Terry ]
+  * 0016-nodisplay-autostart.patch:
+    - Don't show in "Startup Applications" (LP: #803917)
+
+ -- Michael Terry <mterry@ubuntu.com>  Fri, 01 Jul 2011 12:56:15 +0100
+
+pulseaudio (1:0.9.23-0ubuntu1) oneiric; urgency=low
+
+  * New upstream release, the following commits from the stable-queue branch
+    are included in this release:
+    - d4c9ad1 (streams: Fix the actual resampler method shown in debug
+               messages.)
+    - cc91a8f (module-combine-sink: Initialize smoother with offset
+               pa_rtclock_now())
+    - 8a437ee (module-combine-sink: Initialize smoother in paused state)
+    - b54a43a (module-combine-sink: Check running flag before rendering in null
+               mode
+    - b3e4152 (pulsecore: Add a couple pa_asserts() on pa_tagstruct* calls.)
+    - 22c0dcb (device-manager: Free a hook slot to prevent segv on unload)
+    - c3bfcc9 (SSE/MMX: Fix problem with highpitched noise on i386)
+    - 9ee4229 (build-sys: Add echo-cancel dummy Makefile)
+    - f558189 (build-sys: bump soname)
+  * Bumped shlibs
+  * debian/rules: Exclude 0.9.23 modules from shlibs
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 24 Jun 2011 10:18:17 +1000
+
+pulseaudio (1:0.9.22+stable-queue-69-gf8e8-0ubuntu1) oneiric; urgency=low
+
+  * Merge from unreleased Debian git, remaining changes:
+    - epoch (my stupid fault :S)
+    - use speex-float-1 and change buffer and fragment size, depending on
+      architecture
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - add status check for system wide pulseaudio instance
+    - create /var/run/pulse, and make restart more robust
+    - indicate that the system pulseaudio instance is being started from the
+      init script
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - Generate a PO template on build
+    - the esd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - add libudev-dev as a build-dependency
+    - Fix initialization of devices with modem subdevices
+    - Disable cork-music-on-phone
+    - disable flat volume
+    - Mute IEC958 Optical Raw by default
+    - use tdd instead of gdbm
+    - Add conflicts/replaces for pulseaudio-module-udev and
+      pulseaudio-module-rygel-media-server
+    - Add replaces for pulseaudio-module-hal to the pulseaudio package to handle
+      upgrades from hardy
+    - Load module-x11-bell in the start-pulseaudio-x11 script
+    - added IT block to fix thumb conditional instruction build error messages
+    - recommend instead of suggest rtkit
+    - Ship the jackdbus-detect module
+    - Ship extra quirks to mixer profiles for various x86 and ARM hardware, as
+      well as USB hardware
+  * New snapshot based on upstream git branch stable-queue:
+    - 4f67775 (http: support HTTP HEAD)
+    - 3bb6546 (vala: More vala fixes)
+    - 7fd0771 (x11: Fix build errors with newest xcb-util.)
+    - b72fc9b (x11: More XCB fixes.)
+    - f8e8a03 (rtkit: use private bus connection in order to avoid threading
+               issues when invoking pa_make_realtime())
+    - c524b4c (memblockq: implement new call pa_memblockq_peek_fixed_size())
+    - 1a8cf00 (make echo-cancel module that exposes a new sink and source)
+    - 9fa71e7 (echo-cancel: take into account snapshot delay)
+    - 7b972f5 (echo-cancel: use the phone media role)
+    - de6cdf9 (echo-cancel: tweak the resync code a little)
+    - 1c26694 (echo-cancel: improve debug)
+    - b30bf12 (echo-cancel: keep frame_size a power of 2)
+    - 6d8a907 (echo-cancel: Move the module into it's own directory)
+    - 57c5983 (echo-cancel: Split out speex code from the core module)
+    - 668f4e4 (echo-cancel: Pass arguments to the specific canceller module)
+    - c975dfa (echo-cancel: Let AEC module determine source/sink spec)
+    - 47e4dd1 (echo-cancel: Add alternative echo-cancellation implementation)
+    - 4a9fa8c (echo-cancel: Allow selection of AEC method using modargs)
+    - b6b8a7b (echo-cancel: Make blocksize a module-wide parameter)
+    - 2923c5e (echo-cancel: Mark immutable parameters as const in vfunc)
+    - 9f79c0e (echo-cancel: rework alignment code)
+    - 56a4684 (echo-cancel: improve accuracy)
+    - e936447 (echo-cancel: pause timer when echo canceling is off)
+    - d39043c (echo-cancel: Fix make distcheck)
+    - d8fab84 (echo-cancel: Fix out-of-tree build)
+    - 1212a6f (echo-cancel: Ensure correct handling of endianness)
+    - d866ade (echo-cancel: Use S16NE for adrian module)
+    - f93b5e1 (echo-cancel: Fix source may_move_to function)
+    - 6664650 (i18n: Update POTFILES.*)
+  * debian/libpulse-dev.install: Ship vala bindings
+  * Dropped patches, either they were previously backported, or are now
+    upstream:
+    - 0005-load-sample-dir-lazy.patch
+    - 0090-disable-flat-volumes.patch
+    - 0211-module-loopback-Add-adjust_time-to-valid-args.patch
+    - 0212-Limit-rate-adjustments-to-small-inaudible-jumps.patch
+    - 0213-module-rtp-recv-Use-new-algorithm-for-adjusting-samp.patch
+    - 0214-module-rtp-recv-Average-the-estimated-real-sample-ra.patch
+    - 0215-module-rtp-recv-Remove-smoother-from-write-index.patch
+    - 0216-conf-Make-system.pa-use-udev-detect-and-not-hal-dete.patch
+    - 0217-volume-Add-a-PA_VOLUME_UI_MAX-define-for-the-recomme.patch
+    - 0218-vala-Some-bugfixes-for-the-vala-bindings.patch
+    - 0219-vala-delegate-FreeCb-does-not-have-a-target.patch
+    - 0220-vala-move-GLibMainLoop-class-into-separate-file-to-f.patch
+    - 0221-vala-Fix-path-error-in-the-last-commit.patch
+    - 0222-build-sys-Link-binaries-linking-libpulse-to-libpulse.patch
+    - 0223-build-sys-Link-binaries-linking-libpulsecommon-to-li.patch
+    - 0224-build-sys-Link-lirc-libraries-in-right-order.patch
+    - 0225-module-jack-sink-source-protect-against-null-return-.patch
+    - 0226-vala-ChannelMap-has-no-destroy-function.patch
+  * debian/patches/series: Renamed and re-ordered some patches, and clearly
+    identified distro specific patches and upstream/upstreamable patches
+  * 0209-alsa-mixer-Fix-makefile-in.patch: Drop, as we use dh-autoreconf,
+    which takes care of this for us
+  * debian/pulseaudio.install: Add the echo-cancel module
+  * 0003-Mention-speex-and-libsamplerate-in-pulse-daemon.conf.patch: Drop,
+    upstream
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 27 May 2011 14:05:01 +1000
+
+pulseaudio (1:0.9.22+stable-queue-24-g67d18-0ubuntu4) oneiric; urgency=low
+
+  [ David Henningsson ]
+  * Fix missing Internal/Front/Rear mics on Nvidia chipsets (LP: #771739)
+
+  [ Luke Yelavich ]
+  * debian/control: Update Vcs-Bzr field
+
+ -- David Henningsson <david.henningsson@canonical.com>  Thu, 28 Apr 2011 10:31:42 +0200
+
+pulseaudio (1:0.9.22+stable-queue-24-g67d18-0ubuntu3) natty; urgency=low
+
+  [ David Henningsson ]
+  * Add separate profile for Nvidia to make it easier to select the right 
+    codec out of four (LP: #716371)
+  * Add workaround to make it possible to control the volume of some
+    USB headsets (LP: #749856, LP: #671560)
+
+  [ Luke Yelavich ]
+  * debian/control: Demote pulseaudio-module-raop to suggests, as it is
+    causing various issues, including crashers, (LP: #742281, #743073)
+    and re-opens (LP #688272)
+  * Pull some bugfixes from the stable-queue branch:
+    - 4fa7495 (vala: Some bugfixes for the vala bindings)
+    - ea0a2a6 (vala: delegate FreeCb does not have a target.)
+    - 64985aa (vala: move GLibMainLoop class into separate file to fix linker
+               errors)
+    - 9f52c10 (vala: Fix path error in the last commit.)
+    - 1ade8df (build-sys: Link binaries linking libpulse to libpulsecommon too)
+    - c25207f (build-sys: Link binaries linking libpulsecommon to libpulse too)
+    - 4be49ae (build-sys: Link lirc libraries in right order)
+    - fd5b282 (module-jack-sink/source: protect against null return in
+               jack_get_ports) (LP: #733424)
+    - 93e7a19 (vala: ChannelMap has no destroy function.)
+  * debian/patches/0097-explicitly-link-libraries.patch: Dropped, applied
+    upstream
+  * debian/control, debian/rules: Add dh-autoreconf
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 11 Apr 2011 16:58:14 +1000
+
+pulseaudio (1:0.9.22+stable-queue-24-g67d18-0ubuntu2) natty; urgency=low
+
+  * Update to latest stable queue patches:
+    - 09770e5 (module-loopback: Add adjust_time to valid args
+    - 90c5520 (Limit rate adjustments to small, inaudible jumps
+    - 4620039 (module-rtp-recv: Use new algorithm for adjusting sample rate
+    - 2bfc032 (module-rtp-recv: Average the estimated real sample rate
+    - 2ee4ec5 (module-rtp-recv: Remove smoother from write index (LP: #569378)
+    - a8cd9d2 (conf: Make system.pa use udev-detect and not hal-detect.
+    - b872254 (volume: Add a PA_VOLUME_UI_MAX define for the recommended max
+               volume to show in UIs)
+  * 0210-PulseAudio-added-IT-block-to-fix-thumb-conditional-i.patch:
+    - added IT block to fix thumb conditional instruction build error messages
+  * debian/rules: Remove CFLAGS that are specific to arm, the above patch
+    makes those redundant (LP: #721498)
+  * debian/control: Add a dependency on pulseaudio-module-raop
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 10 Mar 2011 07:15:02 +1100
+
+pulseaudio (1:0.9.22+stable-queue-24-g67d18-0ubuntu1) natty; urgency=low
+
+  [ David Henningsson ]
+  * debian/patches/020x patches - add PulseAudio input mixer rewrite.
+    This will cause several HDA chips to have better named and controlled
+    sliders on the input side. 
+
+  [ Luke Yelavich ]
+  * New upstream snapshot based on stable queue:
+    - 67d1888 (client: Don't update smoother while corked)
+    - 6b280e9 (Fighting rewinds: Reduce calls to handle_seek)
+    - 3aeb047 (Fighting rewinds: Seek and write data in the same message)
+    - 1e1b299 (Core: Fix incorrect check of return value)
+    - 4080725 (tunnel: Fix automatic names when source/sink_name argument is
+              missing.)
+    - ec5a785 (ratelimit: fix log levels of log suppression messages)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 18 Feb 2011 13:50:30 +1100
+
+pulseaudio (1:0.9.22+stable-queue-18-geb966-0ubuntu2) natty; urgency=low
+
+  * Fix FTBFS with ld.gold.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 19 Jan 2011 06:57:29 +0100
+
+pulseaudio (1:0.9.22+stable-queue-18-geb966-0ubuntu1) natty; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/control: pulseaudio-module-zeroconf Depends on avahi-daemon
+    (LP: #689093)
+  * debian/patches/0101-update-stable-queue.patch: Apply 84c8b23c to
+    resolve incorrect header being used for libsndfile seen with pacat
+    --file-format (LP: #660504)
+  * debian/patches/0104-Load-RAOP-Zeroconf-by-default.patch: Follow
+    recommendation by Martin-Éric Racine to conditionally load support
+    by default for streaming to an Apple Airport Express (LP: #688272)
+  * debian/pulseaudio-utils.links: Also add pamon(1) and parecord(1)
+    (Closes: #599696)
+
+  [ David Henningsson ]
+  * debian/pulse-alsa.conf: Add name hint for default pcm device,
+    indicating that PulseAudio is active.
+
+  [ Luke Yelavich ]
+  * New upstream snapshot based on the stable queue branch:
+    - eb966f7 (build-sys: Make --disable-dbus actually work.)
+    - 8f8d247 (build-sys: Mention dbus support in the summary)
+    - b3ff4f4 (build-sys: Put in specific warnings when there is no udev or
+              DBUS support)
+    - 862bbee (console-kit: Console Kit support is dependent on DBUS and is
+              thus optional.)
+    - 7cb1401 (padsp: wrap __open_2 and __open64_2)
+    - 6f870f5 (fix bug about get source-output status)
+    - 4269b05 (Fix typos)
+    - 1c83b03 (Further clarify src- and speex- references in pulse-daemon.conf)
+    - 84c8b23 (Fix return value of pa_sndfile_format_from_string)
+    - d963b86 (core: Fix variable "has_whined" value bug)
+    - 52e3268 (trivial: Mention speex as a resampler reference in
+              pulse-daemon.conf)
+    - 3e6af07 (module-loopback: Prevent an infinite loop when rate adjusting
+              is disabled
+  * 0101-update-stable-queue.patch and
+    #0102-autoreconf.patch:
+    - Disable for now, since latest stable queue are roled into the snapshot
+      tarball
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 14 Jan 2011 10:03:49 -0600
+
 pulseaudio (0.9.22-1) experimental; urgency=low
 
   * New upstream release
@@ -1406,6 +3676,452 @@ pulseaudio (0.9.22-1) experimental; urge
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 05 Dec 2010 12:01:37 +0000
 
+pulseaudio (1:0.9.22-0ubuntu3) natty; urgency=low
+
+  * debian/pulseaudio-module-jack.install: Ship the jackdbus-detect module
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 08 Dec 2010 17:57:18 +1100
+
+pulseaudio (1:0.9.22-0ubuntu2) natty; urgency=low
+
+  * 0101-update-stable-queue.patch, update to latest stable queue:
+    - 205cad6 (jack: Add module-jackdbus-detect
+    - e9deb97 (build-sys: Include the .version file in the distribution
+               tarball)
+    - a1f1255 (build-sys: Fix make distcheck failure due to udev rules
+               fixed install path)
+    - 675cc0a (build-sys: Replace dummy Makefiles with proper Makefile.am's)
+    - bd769fa (rescue-streams: Fix segfault in some conditions)
+    - f6574c8 (volume: Add explicit checks for ARMv6 instructions)
+  * 0102-autoreconf.patch: Re-generate autotools pieces for the above update
+  * 0103-JACK-Load-module-jackdbus-detect-in-default.pa.patch: Enable jackdbus
+    module by default for now, hopefully longer term there will be a better
+    way to turn this module on/off
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 08 Dec 2010 16:58:27 +1100
+
+pulseaudio (1:0.9.22-0ubuntu1) natty; urgency=low
+
+  * New upstream release, based on the stable-queue branch
+  * Drop following patches, as applied upstream:
+    - 0101-alsa-mixer-add-profile-for-Native-Instruments-Koreco.patch
+    - 0102-intended-roles-Mark-devices-with-a-form-factor-of-he.patch
+  * debian/rules:
+    - Disable --as-needed due to a circular dependency for libpulsecommon
+    - Adjust filenames/paths for 0.9.22
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 26 Nov 2010 13:44:10 +1100
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-98-ga8d7-0ubuntu3) natty; urgency=low
+
+  * 0101-alsa-mixer-add-profile-for-Native-Instruments-Koreco.patch: Also
+    adjust src/Makefile.in, so that the new profile actually gets shipped
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 05 Nov 2010 14:27:34 -0400
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-98-ga8d7-0ubuntu2) natty; urgency=low
+
+  * debian/control: Update Vcs-Bzr field
+  * Pull latest fixes from stable queue:
+    - 8a30d4c (alsa-mixer: add profile for Native Instruments Korecontroller)
+    - 848dd37 (intended-roles: Mark devices with a form factor of 'headset' as
+               being appropriate for 'phone' streams)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 05 Nov 2010 10:40:47 -0400
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-98-ga8d7-0ubuntu1) natty; urgency=low
+
+  * New upstream snapshot, based on the stable-queue branch
+  * debian/patches: Drop the following patches as they are applied upstream,
+    or were created to regenerate autotools files/package version
+    - 0090-use-volume-ignore-for-analog-output.patch
+    - 0093-backport-fixes-stable-queue-head.patch
+    - 0094-add-missing-mixer-paths-and-rerun-automake.patch
+    - 0095-cve-2009-1299.patch
+    - 0097-regenerate-configure.patch
+    - 0098-tarball-version.patch
+    - 0192-stream-restore-Clear-the-save_sink-save_source-flags.patch
+    - 0193-augment-properties-Search-for-.desktop-files-in-subf.patch
+    - 0194-device-manager-Ensure-that-sinks-sources-populate-th.patch
+    - 0195-SSE-MMX-ARM-Fix-high-frequency-noise-with-unusual-nu.patch
+  * debian/control: Update Vcs-Bzr link
+  * 0097-explicitly-link-libraries.patch: Patch to explicitly link pulseaudio
+    tests binaries against pulseaudio libraries, due to gcc 4.5 and new
+    binutils in natty enforcing explicit linking
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 29 Oct 2010 12:39:27 -0400
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu21.1) maverick-proposed; urgency=low
+
+  * 0195-SSE-MMX-ARM-Fix-high-frequency-noise-with-unusual-nu.patch:
+    - Pull fix from the upstream stable-queue branch a8d76e9 to Fix a high
+      frequency noise with an nunusual number of channels, when either SSE,
+      MMX, or ARM optimized volume scaling code is used. (LP: #445849)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 14 Oct 2010 16:38:46 +1100
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu21) maverick; urgency=low
+
+  * Add 0192-stream-restore-Clear-the-save_sink-save_source-flags.patch
+    Clear the save_sink/save_source flags on apply_entry.
+  * Add 0193-augment-properties-Search-for-.desktop-files-in-subf.patch
+    Search for .desktop files in subfolders too.
+  * Add 0194-device-manager-Ensure-that-sinks-sources-populate-th.patch
+    Ensure that sinks/sources populate the device manager lists in order
+    of their priority.
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Sun, 03 Oct 2010 20:38:24 +0100
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu20) maverick; urgency=low
+
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + 2c564f2 (xcb: Ensure the XCB connection is valid before using it.)
+    + 5c0bc09 (xcb: xcb_get_setup() can return 0, so make sure we check it before using)
+    + 165cb87 (x11: Use the default screen for X11 properties.)
+    (LP: #640127)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sat, 18 Sep 2010 08:46:31 -0400
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu19) maverick; urgency=low
+
+  * Removed packaging for a patch that was being tested locally, as the
+    patch is not going into maverick. Fixes FTBFS
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 15 Sep 2010 14:38:38 +1000
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu18) maverick; urgency=low
+
+  [ Emmet Hikory ]
+  * Drop 0001-change-resample-and-buffering.patch
+  * debian/rules: Add arch-specific build-time configuration patching system
+    - set resample-method to speex-fixed-1 and fragments to 2 for armel
+    - set resample-method to speex-float-1 and fragments to 8 for other arches
+    - Closes LP: #623242
+
+  [ Luke Yelavich ]
+  * debian/rules:
+    - Back up src/daemon/daemon.conf.in, restoring on package clean, allowing
+      the package to be built more than once, and keeping the diff sane
+    - Disable flat volumes via regular expression instead of a patch, to
+      prevent the mess that goes with touching a file multiple times, and
+      with multiple methods
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + 6c8660a (alsa: Fix assertion on mmap_write (triggered via a52 plugin))
+    + aaae99d (alsa: disable rewinds when using ALSA plugins)
+    + 4a1072e (udev: fix hex decoding)
+    + 2b88634 (x11: Partially convert to XCB.)
+    + 9375019 (alsa: resume smoother after unsuspend)
+    + 4fb02d8 (alsa: increase the smoother window)
+    + e2ef3a1 (alsa: don't make use of tsched related variables when tsched is
+               disabled)
+    + 514fd1e (add rewind-safeguard parameter)
+    + 8748ebd (alsa-sink: Get rid of a compiler warning regarding
+               rewind_safeguard type.)
+    + a65825f (alsa: Set the rewind safeguard proportionally to sample spec)
+    + 3d9b710 (smoother: avoid losing precision)
+    + 1503b8c (alsa-source: refactor smoother and device start)
+    + 74c117f (alsa-time-test: make test usable for capture too)
+    + 1c29f55 (alsa: work around slightly broken _delay implementations)
+    + 1ff360c (alsa: make defines for smoother configuration)
+    + 28f4aeb (alsa-mixer: add profile for Traktor Kontrol S4)
+    + eef247b (alsa: Only set the 'first' flag to false when we actually call
+               snd_pcm_start())
+  * debian/control: Add libxcb-atom1-dev and libx11-xcb-dev to build depends
+  * debian/patches/0090-disable-flat-volumes.patch: Drop, as per above
+  * debian/patches/0097-regenerate-configure.patch: Refreshed
+  * debian/patches/0098-tarball-version.patch: Ensure the version string for
+    pulseaudio internally stays the same, in case the build process wants
+    to regenerate autotools files
+  * debian/patches/0094-add-missing-mixer-paths-and-rerun-automake.patch:
+    - Remove the patch to Makefile.in, easier to do it all at once in a
+      single patch later in the series
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 15 Sep 2010 13:57:55 +1000
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu17) maverick; urgency=low
+
+  * No-change rebuild to pick up new j-a-c-k shlibs
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 21 Jul 2010 11:29:18 +0200
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu16) maverick; urgency=low
+
+  * Include /usr/bin/start-pulseaudio-kde and its autostart file now that KDE
+    will be using PulseAudio by default in Maverick (LP: #563250)
+  * Also update 0057-load-module-x11-bell.patch to give its improvements to
+    /usr/bin/start-pulseaudio-kde as well
+
+ -- Jonathan Thomas <echidnaman@kubuntu.org>  Mon, 07 Jun 2010 18:32:53 -0400
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu15) maverick; urgency=low
+
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + bc7314f (name all threads for /proc/$PID/task/$TID/comm)
+    + d519ca4 (prevent crash on jack server shutdown) (LP: #538815)
+    + 65f89dc (fix bracketing in pa_rtp_recv())
+  * debian/01PulseAudio: modify the ConsoleKit active seat checks in the
+    pm-utils hook so that:
+    - pre-suspend: all users' sink & source states are stored, then only
+      the active seat's sinks and sources are muted
+    - post-resume: all users' sink & source pre-suspend states are
+      restored
+    This resolves the issue where users' post-resume sink & source
+    states don't correspond with their pre-suspend ones.
+    (LP: #569395)
+  * debian/01PulseAudio: fix broken quoting and misuse of su -l. Merged
+    from lp:~hyperair/pulseaudio/fix-01Pulseaudio-quoting. Thanks,
+    Chow Loong Jin! (LP: #572391)
+  * debian/control: Update bzr branch for maverick.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sat, 08 May 2010 11:08:56 -0400
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu14) lucid; urgency=low
+
+  * 0096-lp451635-handle-dove-x0-line-hp-swap.patch: Make the connector
+    work as intended: if 'Analog Output' is selected in the dropdown,
+    then 'Line HP Swap' is muted; if 'Analog Headphones' is selected,
+    then 'Line HP Swap' is unmuted. This better fits existing speaker
+    semantics and actually works. Many thanks to Tobin Davis for
+    helping chase this one. Really closes (LP: #451635)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 26 Mar 2010 15:18:35 -0700
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu13) lucid; urgency=low
+
+  [ Daniel T Chen ]
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + a7c1778 (don't pick monitor sources automatically for role-based
+               device selection).
+    + e8b83fa (handle asyncns failure when IPv6 is not supported in the
+               kernel).
+  * 0096-lp453966-handle-digmic-pt2.patch: Raise the priority of the
+    'Digital Mic 1' digital input source for newer Dell laptops.
+    (LP: #453966)
+  * 0096-lp451635-handle-dove-x0-line-hp-swap.patch: Add 'Line HP Swap'
+    to the Headphone profile. (LP: #451635)
+  * debian/control: Update Vcs-Bzr to point to new branch that uses pack
+    repo format 2a.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 25 Mar 2010 21:58:46 -0700
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu12) lucid; urgency=low
+
+  * debian/pulseaudio.init: Remove udev from Required-* LSB headers
+    (LP: #432301)
+  * debian/patches/:
+    + 0095-cve-2009-1299.patch: Fix insecure temporary file creation;
+      pulled from upstream stable-queue d3efa43; CVE-2009-1299.
+      (LP: #509008)
+    + 0096-lp533877-handle-digmic.patch: Prefer the built-in digital
+      mic on newer Dells, e.g., XPS 1330. (stable-queue 29845be)
+      (LP: #533877)
+    + 0097-regenerate-configure.patch: Apply changes from stable-queue
+      f9b31fe (gobject linking) and d3efa43 above.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 10 Mar 2010 18:53:51 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu11) lucid; urgency=low
+
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + 522c44 (strip spaces from ALSA card/pcm names)
+    + 195069 (use pa_strip())
+    + dd682d (reset max_rewind/max_request in sink while suspending)
+    + 30f28e (fix wrong counters by using pa_memblockq_pop_missing() for
+      all request handling)
+    + 0d1154 (rework how stream volumes affect sink volumes)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 22 Feb 2010 00:22:50 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu10) lucid; urgency=low
+
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + dfe27f (don't complain about missing SHM segments)
+    + 5ce18c (fix definition of INVALID_INDEX for vala)
+    + 6bbdd2 (fix definition of the GLib mainloop adapter for vala)
+    + 3f44bf (Use "Subwoofer" in channelmap)
+    + 117c99 (fix wrapping of port setting calls for vala)
+    + ddabaa (explicitly mention 'test' role in proplist)
+    + 8adf53 (increase verboseness when not restoring sink)
+    + 180589 (use sample name for unmodified fallback)
+    + f9b957 (don't queue cached sample when sink is suspended)
+    + b2e9fb (pass buffer_attr to recording streams)
+    + a469d4 (make devices resume for corked state to fix latency
+      miscalculation) (LP: #511558)
+    + 4a3210 (improve buffer_attrs logging)
+  * 0094-add-missing-mixer-paths-and-rerun-automake.patch has been
+    merged upstream (047e16f in the stable-queue branch), but we'll continue to
+    carry it until the next stable tarball is rolled.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 21 Feb 2010 22:37:37 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu9) lucid; urgency=low
+
+  * 0094-add-missing-mixer-paths-and-rerun-automake.patch: Fix missing paths
+    elements that broke volume control.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 18 Feb 2010 23:56:42 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu8) lucid; urgency=low
+
+  * Back out 307bd1 until we can roll a new tarball. Applying it to the
+    current source package requires all sorts of nasty hacks.
+    (LP: #523716)
+  * Drop 0094-autoconf.patch, as it's no longer needed
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 18 Feb 2010 07:32:58 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu7) lucid; urgency=low
+
+  * debian/control: Since JACK has been approved for promotion back into
+    main, add its packages
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + 19fa81 (always fulfill write requests from the server)
+    + 96ec29 (store away fd type for pacmd)
+    + 6e064d (don't enter busy loop when reading from stdin very early)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 17 Feb 2010 22:33:34 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu6) lucid; urgency=low
+
+  [ Daniel T Chen ]
+  * pulseaudio.default: More clearly describe the conditions for
+    autospawn to function correctly given the recent login-speedup work.
+    (As a side effect, it now also lists what one needs to do to disable
+    PA.)
+  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
+    changesets from the stable-queue branch:
+    + a631be (PA_SINK_INPUT_IS_LINKED typo fix)
+    + e8cb96 ('Desktop Speaker' handling)
+    + 7d6bab ('Shared Mic/Line in', 'Analog Source' handling)
+    + 0c836a ('Internal Mic' handling)
+    + 307bd1 (default output port names)
+    + f9b31f (gobject explicit linking)
+    + ff2474 (padsp handling of /dev/audio)
+    + 96592c (dbus timeout callback timer fix)
+    + 5e2af2 (logging of eventfd read failures)
+  * 0094-autoconf.patch: Rerun autoconf given explicit gobject link
+    addition; readd version string.
+
+  [ Martin Pitt ]
+  * 0092-delay-gnome-autostart.patch: Push it out a little further; the X11
+    bell is not crucial at desktop startup, and it keeps other programs from
+    doing more urgent initialization.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 08 Feb 2010 12:42:02 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu5) lucid; urgency=low
+
+  * Add bzr-builddeb configuration (merge mode).
+  * debian/control: Prefix the Debian git Vcs-* fields with XS-Debian-*, so
+    that debcheckout on Ubuntu will actually work.
+  * Add 0092-delay-gnome-autostart.patch: Delay applet startup by two seconds,
+    so that pulseaudio has started up enough to avoid starting it a second
+    time through autospawn.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Mon, 01 Feb 2010 18:12:13 -0800
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu4) lucid; urgency=low
+
+  * debian/01PulseAudio: Break from state (re)store in the correct
+    place!
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 31 Jan 2010 13:44:57 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu3) lucid; urgency=low
+
+  * debian/01PulseAudio:
+    + Fix su(1) -c quoting (LP: #515038)
+    + Now that PA only stores mixer state for the active CK seat, and
+      because the active ConsoleKit seat is the only one we care about,
+      we don't need to save all PA users' mixer states.  Thus, we can
+      stop (re)storing state as soon as we've finished processing the
+      active ConsoleKit seat, thereby further optimizing the suspend/
+      resume speed.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 31 Jan 2010 13:16:46 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu2) lucid; urgency=low
+
+  * debian/01PulseAudio: Use su(1) instead of sudo(8)
+    (LP: #489144, #498980).
+  * debian/patches/series: To trim the startup time, don't lazy-load
+    sounds by not applying 0005-load-sample-dir-lazy.patch.
+  * 0091-dont-load-cork-music-on-phone.patch: Refresh.
+  * 0057-load-module-x11-bell.patch: Don't explicitly load the daemon
+    since it will autospawn if necessary, and if the system or user
+    configuration has autospawn disabled it breaks that semantics
+    (LP: #513120).
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 29 Jan 2010 14:37:52 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu1) lucid; urgency=low
+
+  * New snapshot of stable-queue branch as requested by upstream
+  * debian/patches/0099-back-out-8d3566.patch: Drop. Seeking is fixed
+    in the latest snapshot.
+  * debian/pulseaudio.default: Update instructions for using system
+    mode.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 17 Jan 2010 22:51:57 -0500
+
+pulseaudio (1:0.9.22~0.9.21+stable-queue-24-gfa64-0ubuntu1) lucid; urgency=low
+
+  * Reroll actual stable-queue tarball (arrrg!)
+  * debian/01PulseAudio: Rework pacmd bits (LP: #507941)
+  * debian/patches/:
+    + add:  0099-back-out-8d3566.patch (upstream says this commit causes
+            regressions)
+    - drop: 0099-change-configure-git-version-tag.patch (no longer
+            relevant)
+    + refresh: 0001-change-resample-and-buffering.patch
+               0054-mute-iec958-optical-raw-for-audigyX.patch
+               0090-disable-flat-volumes.patch
+               0091-dont-load-cork-music-on-phone.patch
+               0057-load-module-x11-bell.patch
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 15 Jan 2010 19:06:15 -0500
+
+pulseaudio (1:0.9.22~0.9.21+341-g62bf-0ubuntu1) lucid; urgency=low
+
+  * New snapshot based on stable-queue git branch (testing requested
+    specifically by upstream)
+    - LP: #164745, #173212, #201391, #204536, #207796, #210016, #221038,
+    - LP: #226342, #230408, #236423, #237443, #250059, #269585, #274304,
+    - LP: #274577, #275474, #277532, #277566, #277932, #278025, #280534,
+    - LP: #283049, #286816, #287036, #292732, #298011, #298301, #300290,
+    - LP: #302038, #311497, #311853, #324062, #339448, #344057, #348979,
+    - LP: #350829, #356206, #367379, #367544, #369822, #371897, #374846,
+    - LP: #375570, #381801, #399515, #402950, #403786, #408169, #409322,
+    - LP: #409723, #410326, #410446, #417695, #417976, #419271, #421072,
+    - LP: #422774, #423979, #424655, #425028, #427016, #431072, #432660,
+    - LP: #437640, #437996, #442191, #443306, #443389, #446719, #449762,
+    - LP: #455417, #461532, #464652, #483191, #497537, #503780
+  * debian/patches/:
+    + add: 0099-change-configure-git-version-tag.patch: Match released
+           upstream 0.9.21 for shlibs and LIBPULSE_VERSION_INFO
+    - drop: 0004-set-tsched0.patch (no longer relevant)
+            0050-revert-pacmd-poll-argv.patch (no longer relevant)
+            0056-dont-bail-on-sound-class-modem.patch (merged)
+            0056-ignore-sound-class-modem.patch (merged)
+            0058-Backport-4c793.patch (merged)
+            0059-Backport-978d3.patch (merged)
+            0060-fix-implicit-func-decl-cpu-arm.patch (merged)
+            0061-Backport-c5fdb.patch (merged)
+            0070-dont-bail-on-sound-class-modem-devs.patch (merged)
+    + refresh: 0001-change-resample-and-buffering.patch
+               0090-disable-flat-volumes.patch
+               0091-dont-load-cork-music-on-phone.patch
+               0057-load-module-x11-bell.patch
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 14 Jan 2010 20:33:05 -0500
+
 pulseaudio (0.9.21-3) unstable; urgency=low
 
   * debian/rules: Compile with -g0 on mips{,el} to work around #519006 in
@@ -1461,6 +4177,91 @@ pulseaudio (0.9.21-1) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Mon, 23 Nov 2009 23:51:16 +0000
 
+pulseaudio (1:0.9.21-0ubuntu6) lucid; urgency=low
+
+  * Backport fix from master HEAD:
+    + 0061-Backport-c5fdb.patch (LP: #502992)
+  * The following patches have been merged upstream, but we'll continue
+    to apply them here until the next upstream snapshot:
+    . 0056-ignore-sound-class-modem.patch
+    . 0060-fix-implicit-func-decl-cpu-arm.patch
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 05 Jan 2010 18:34:40 -0500
+
+pulseaudio (1:0.9.21-0ubuntu5) lucid; urgency=low
+
+  * Refresh 0060-fix-implicit-func-decl-cpu-arm.patch with more FTBFS-
+    on-armel fixes (all submitted upstream).
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 17 Dec 2009 00:01:49 -0500
+
+pulseaudio (1:0.9.21-0ubuntu4) lucid; urgency=low
+
+  * 0060-fix-implicit-func-decl-cpu-arm.patch: Fix FTBFS on armel.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 16 Dec 2009 22:45:25 -0500
+
+pulseaudio (1:0.9.21-0ubuntu3) lucid; urgency=low
+
+  * 0070-dont-bail-on-sound-class-modem-devs.patch: Fix parameter
+    in function call. Thanks to Whoopie for spotting.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 16 Dec 2009 20:13:43 -0500
+
+pulseaudio (1:0.9.21-0ubuntu2) lucid; urgency=low
+
+  * Fix LP: #394500, #450222:
+    + 0070-dont-bail-on-sound-class-modem-devs.patch:
+      + Add pa_udev_get_sysattr() helper function so that we can
+        retrieve pcm_class.
+      + Add short-circuit in is_card_busy(). Currently there is an
+        incorrect break out of the loop when an HDA modem is driven by
+        slmodemd/hsfmodem. An HDA modem resides in device 6 and will
+        not contain "closed\n" for
+        /proc/asound/card.../pcm.../sub.../status.
+  * 0058-Backport-4c793.patch: Use pa_stream pointers to hashmaps
+    instead of dynarrays.
+  * 0059-Backport-978d3.patch: Mark shared variables as volatile
+    to supress compiler optimizations.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 06 Dec 2009 19:40:04 -0500
+
+pulseaudio (1:0.9.21-0ubuntu1) lucid; urgency=low
+
+  [ Daniel T Chen ]
+  * New upstream bugfix release
+  * debian/control: pulseaudio-module-raop must Depends
+    pulseaudio-module-zeroconf (LP: #484870). Thanks, Dominic Evans!
+  * Bump for 0.9.21:
+    + debian/libpulse0.shlibs
+    + debian/pulseaudio.shlibs
+    + debian/rules
+  * debian/pulseaudio.install:
+    debian/copyright: Amend for addition of:
+    + module-device-manager.so
+  * debian/README.Debian: Update for Ubuntu 9.04+.
+  * 0002-Fix-makefiles-to-include-all-alsa-path-files-on-inst.patch:
+    Drop, fixed upstream.
+  * 0051-fix-sigfpe-mcalign.patch: Drop, needs fixing in alsa-kernel
+    and alsa-lib.
+
+  [ Chow Loong Jin ]
+  * debian/01PulseAudio: Add/modify functions to (re)store sink/source
+    state for (resume/)suspend (LP: #404986, #483900)
+
+  [ Luke Yelavich ]
+  * Remove wrapper scripts and accessibility special case, to help with the
+    desktop startup time. The accessibility case should be solved in
+    speech-dispatcher by the time lucid ships.
+    - debian/patches/0006-a11y-special-case-disable.patch: Removed
+    - debian/70pulseaudio: Removed
+    - debian/pulse-session: Removed
+    - debian/pulseaudio.install: Re-add the xdg autostart desktop file
+    - debian/pulseaudio.preinst: Instead of removing the xdg autostart desktop
+      file on upgrade, remove the 70pulseaudio X Session script on upgrade
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 25 Nov 2009 16:34:54 -0500
+
 pulseaudio (0.9.20-1) unstable; urgency=low
 
   * New upstream release
@@ -1469,6 +4270,123 @@ pulseaudio (0.9.20-1) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 14 Nov 2009 22:50:52 +0000
 
+pulseaudio (1:0.9.20-0ubuntu3) lucid; urgency=low
+
+  * drop the enforced switch to ARMv6 in debian rules (we build for cortex-a8
+    by default now).
+  * Make sure the arm specific assembler code builds properly with thumb
+    support by adding -Wa,-mimplicit-it=thumb instead until it is added to
+    the default compiler flags (fixes FTBFS).
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Wed, 25 Nov 2009 14:16:59 +0100
+
+pulseaudio (1:0.9.20-0ubuntu2) lucid; urgency=low
+
+  * Add 0002-Fix-makefiles-to-include-all-alsa-path-files-on-inst.patch
+    from Debian unstable (thanks, Sjoerd Simons!)
+  * Fix 0055-handle-Master-Front.patch to handle only front elements
+    based on comments from Lennart. The patch now does the right thing
+    despite linux still doing the wrong thing, but at least we handle
+    cases where linux will do the right thing.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 15 Nov 2009 13:45:49 -0500
+
+pulseaudio (1:0.9.20-0ubuntu1) lucid; urgency=low
+
+  * New upstream bugfix release
+    + Fix BT validation (LP: #437293)
+  * debian/control:
+    + pulseaudio Provides pulseaudio-module-hal, pulseaudio-module-udev,
+      and pulseaudio-module-rygel-media-server for upgrades (really
+      fixes LP #477382)
+  * debian/patches/:
+    - 0002-work-around-suspend-on-idle-source-sink-race.patch:
+    - 0052-revert-sse2-optimize.patch:
+    - 0055-backport-alsa-bt-position-fixes-b3592a1.patch:
+      Remove; applied upstream
+    + 0054-mute-iec958-optical-raw-for-audigyX.patch: Refresh
+    + 0055-handle-Master-Front.patch: For new VIA-based HDA, handle
+      this mixer control until we've fixed it in linux (LP: #478868)
+  * Bump for 0.9.20:
+    + debian/libpulse0.shlibs
+    + debian/pulseaudio.shlibs
+    + debian/rules
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 12 Nov 2009 19:19:21 -0500
+
+pulseaudio (1:0.9.19-2ubuntu2) lucid; urgency=low
+
+  * debian/control:
+    + Promote pulseaudio-utils to Depends for pulseaudio so that the
+      pm-utils script is present (LP: #478182)
+    - Drop obsolete Depends on pulseaudio-module-udev for pulseaudio
+      (LP: #477382)
+  * debian/01PulseAudio: Don't fail suspend/resume when system-wide
+    daemon is running (LP: #476505)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 06 Nov 2009 18:37:36 -0500
+
+pulseaudio (1:0.9.19-2ubuntu1) lucid; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't build against, and create jack package. Jack is not in main
+    - use speex-float-1 resampler to work better with lack of PREEMPT in
+      karmic's -generic kernel config, also change buffer size
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - add status check for system wide pulseaudio instance
+    - create /var/run/pulse, and make restart more robust
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus)
+    - indicate that the system pulseaudio instance is being started from the init
+      script
+    - Install more upstream man pages
+    - Link to pacat for parec man page
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - cache /usr/share/sounds/ubuntu/stereo/ wav files on pulseaudio load
+    - Generate a PO template on build
+    - add special case to disable pulseaudio loading if accessibility/speech
+      is being used
+    - the esd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - fix some typos in README.Debian
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - drop libasyncns-dev build dependency, its in universe
+    - add libudev-dev as a build-dependency
+    - Fix initialization of devices with modem subdevices
+    - Backport ALSA BlueTOoth position fixes from git HEAD
+    - Disable cork-music-on-phone
+    - Revert sse2 optimizations
+    - disable flat volume
+    - Handle div by zero attempts
+    - Mute IEC958 Optical Raw by default
+    - use tdd instead of gdbm
+  * debian/control:
+    - Dro packages, due to debian including the files in these packages in the
+      main pulseaudio package: pulseaudio-module-udev,
+      pulseaudio-module-udev-dbg, pulseaudio-module-rygel-media-server,
+      pulseaudio-module-rygel-media-server-dbg
+    - Add conflicts/replaces for pulseaudio-module-udev and
+      pulseaudio-module-rygel-media-server
+    - Add replaces for pulseaudio-module-hal to the pulseaudio package to handle
+      upgrades from hardy
+    - Remove rtkit from conflicts, and add it to recommends, as 2.6.32 has the
+      needed patches
+
+  [ Daniel T Chen ]
+  * 0057-load-module-x11-bell.patch: Load module-x11-bell in the
+    start-pulseaudio-x11 script (LP: #301174)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 06 Nov 2009 14:07:19 +1100
+
 pulseaudio (0.9.19-2) unstable; urgency=low
 
   * Built with normal old-style hal support on kfreebsd and the hurd
@@ -1495,6 +4413,65 @@ pulseaudio (0.9.19-1) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 03 Oct 2009 18:22:56 +0100
 
+pulseaudio (1:0.9.19-0ubuntu4) karmic; urgency=low
+
+  * Remove 0053-fix-sigsegv-module-bluetooth-device.patch, as it did
+    more harm than good (reopens LP #437293).
+  * debian/01PulseAudio: Fix bashisms, and make suspend/resume actually
+    work with sudo -H -u (LP: #432096, #450461).
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 20 Oct 2009 10:29:04 -0400
+
+pulseaudio (1:0.9.19-0ubuntu3) karmic; urgency=low
+
+  [ Tony Espy ]
+  * debian/control: Add a Conflicts for rtkit so we force removal, and
+    hence get more testing coverage between now and Karmic final (LP: #452458).
+
+  [ Daniel T Chen ]
+  * debian/patches/0056-ignore-sound-class-modem.patch:
+    + Apply patch from Whoopie to fix initialization of devices with
+      modem subdevices (LP: #394500, #450222)
+
+ -- Tony Espy <espy@ubuntu.com>  Thu, 15 Oct 2009 15:33:02 -0400
+
+pulseaudio (1:0.9.19-0ubuntu2) karmic; urgency=low
+
+  * debian/control: Drop rtkit from recommends, as the kernel patches have
+    not landed in karmic, so rtkit is currently useless.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 14 Oct 2009 12:02:50 +1100
+
+pulseaudio (1:0.9.19-0ubuntu1) karmic; urgency=low
+
+  * New upstream bugfix release
+  * debian/:
+    . {libpulse0,pulseaudio}.shlibs:
+    . shlibs{,_pulseaudio}.local:
+    . rules: Update for new release
+  * debian
+    + pulseaudio.dirs:
+    . patches/0006-a11y-special-case-disable.patch:
+    . pulse-session: Use a system-wide flag to assist in fixing
+      alsactl store race.
+  * debian/patches/:
+    - 0060-backport-c194d.patch: Drop, subsumed by new release
+    + 0053-fix-sigsegv-module-bluetooth-device.patch: Don't strcmp
+      uninitialized memory (LP: #437293)
+    + 0055-backport-alsa-bt-position-fixes-b3592a1.patch: Apply the
+      following changesets from origin/master HEAD for fixes:
+      40c1ca76c48147c7648e1f1a72cc2c747f3d0c9b,
+      7b682c969025845f75cbc74a9f830ad2dec8a415,
+      c96d2d1117a7e59b351358c8cdd79ef465ddbd49,
+      b3592a160f0d2a28605048a81c0261bf7c45acbb
+    + 0091-dont-load-cork-music-on-phone.patch: Disable for Karmic;
+      it's confusing users (LP: #437638)
+  * Previous uploads resolved Launchpad bug reports:
+    - LP: #434003 (crashed with SIGILL in pa_smoother_translate() )
+    - LP: #437638 (cpulimit.c: Received request to terminate)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 06 Oct 2009 18:40:38 -0400
+
 pulseaudio (0.9.18-1) unstable; urgency=low
 
   * New upstream release
@@ -1522,6 +4499,46 @@ pulseaudio (0.9.18-1) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 27 Sep 2009 23:46:37 +0200
 
+pulseaudio (1:0.9.18-0ubuntu3) karmic; urgency=low
+
+  * debian/patches/:
+    + 0052-revert-sse2-optimize.patch: Revert 3d5a57 causing audio
+      anomalies (LP: #428619)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 22 Sep 2009 22:19:42 -0400
+
+pulseaudio (1:0.9.18-0ubuntu2) karmic; urgency=low
+
+  * Remove epoch again, fixes FTBFs.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 21 Sep 2009 11:12:00 +1000
+
+pulseaudio (1:0.9.18-0ubuntu1) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * New upstream bugfix release
+  * debian/patches/:
+    - 0052-backport-56b6e18030.patch: Drop
+    - 0053-fix-output-element.patch: Drop, applied upstream
+    - 0090-use-volume-ignore-for-analog-output.patch: Stop applying
+      this patch. Too many people are confused as to why PCM isn't
+      being changed when they adjust PA's volume.
+    + 0060-backport-c194d.patch: Backport fixes from 0.9.18-stable
+      branch (to changeset c194db71b0ff853b4f46df26e135edf63b215451)
+    + 0090-disable-flat-volumes.patch: Many people seem uncomfortable
+      with PA's new default volume adjustment routine, so disable it
+      in favour of the existing behaviour known in previous Ubuntu
+      releases. The downside is that the user again has many knobs to
+      fiddle; the upside is that applications can no longer drop the
+      volume floor. This addresses LP: #403859, #433209.
+
+  [ Luke Yelavich ]
+  * debian/pulse-alsa.conf: Expose the pulse device to the ALSA name hint API.
+    Thanks to David Henningsson <launchpad.web@epost.diwic.se> for the patch.
+  * Add epoch to shlibs version definitions.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 21 Sep 2009 10:28:25 +1000
+
 pulseaudio (0.9.17-1) unstable; urgency=low
 
   * New upstream release
@@ -1530,6 +4547,30 @@ pulseaudio (0.9.17-1) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 12 Sep 2009 10:27:46 +0100
 
+pulseaudio (1:0.9.17-0ubuntu2) karmic; urgency=low
+
+  * debian/patches/:
+    + 0051-fix-sigfpe-mcalign.patch: Handle div by zero attempts
+      (LP: #412224)
+    + 0052-backport-56b6e18030.patch: Backport fixes from git HEAD
+      (56b6e18030b5a467946bd0a5803ec119efccdc8a)
+    + 0053-fix-output-element.patch: Fix misspelling of Surround
+    + 0054-mute-iec958-optical-raw-for-audigyX.patch: Mute
+      IEC958 Optical Raw by default (LP: #400629, #408370)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 17 Sep 2009 19:57:15 -0400
+
+pulseaudio (1:0.9.17-0ubuntu1) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * New upstream release
+
+  [ Luke Yelavich ]
+  * debian/rules: refer to the 0.9.17 directory
+  * bump shlibs
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 14 Sep 2009 10:01:24 +1000
+
 pulseaudio (0.9.16-1) unstable; urgency=low
 
   * New upstream release
@@ -1542,18 +4583,263 @@ pulseaudio (0.9.16-1) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Thu, 10 Sep 2009 21:53:15 +0100
 
+pulseaudio (1:0.9.16-0ubuntu1) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/patches/0090-use-volume-ignore-for-analog-output.patch:
+    + Realign volume control behaviour with existing Ubuntu releases,
+      i.e., disable volume = merge and use volume = ignore for
+      analog output
+
+  [ Luke Yelavich ]
+  * New upstream release
+  * debian/patches/0057-introspect-version-fixes.patch (LP: #426210),
+    debian/patches/0056-alsa-rework.patch,
+    debian/patches/0055-llvm-clang-analyzer-fixes.patch,
+    0054-volume-libpulse-backported-fixes.patch,
+    0053-add-input-sources.patch,
+    debian/patches/0052-disable-cpu-limit.patch: Dropped, all applied upstream
+  * debian/patches/0051-reduce-lib-linking.patch: Drop, since we are not going
+    to be doing bi-arch pulseaudio packages for karmic
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 11 Sep 2009 09:24:39 +1000
+
+pulseaudio (1:0.9.16~test7-14-g7ca81-0ubuntu2) karmic; urgency=low
+
+  * debian/control: Fix missing pulseaudio-module-rygel-media-server
+    Depends thanks to lintian
+  * debian/patches/0054-use-sse2-volume.patch:
+    - Remove, resolved differently upstream (see below)
+  * debian/patches/0054-volume-libpulse-backported-fixes.patch:
+    + Add fixes from git HEAD:
+      e6a666d8d5fffbc9847b51b35349b88d74970079 (PA_BYTES_SNPRINT_MAX)
+      5cf0c1e544a5fce97d514c793256b2e301277136 (rearrange functions)
+      508c462841fd087528649ed1ca3646363387bb5d:
+         b5ac3839e18524524fa3e0da7ec68dbce16e8203 (remap/vol only SSE2)
+         723499439f575f744f07c85a42b47d95cdc98de6 (init SSE2)
+      3bbc5e6a4d0211d8cedd2fe6698c2e2c07d1c4b9 (add PA_VOLUME_INVALID)
+      cc6c4fe91f916451bbea9073619c11a6b122b684 (check pa_volume_t args)
+      9755bfa58af0c27b478d5d8cc56013527a6f660b (drop expensive checks)
+      d000dd6f4b976894558613f69bdad2974cce7d1e (NULL chan map consist.)
+      41a0dc1e9987ae00b605fd88bf887becbdf097d5 (log invalid fade/bal)
+      08a4d57ce2f20173ea8a90e597a3ebcd28398242 (ok NULL proplist inv.)
+  * debian/patches/0055-llvm-clang-analyzer-fixes.patch:
+    + Add fixes from git HEAD:
+      f5046759cdd72daf5ba3b31c9dfc7b8d5be6bc9b..
+      7cc100d9e1d7093da44c8c83cbf61bb8c6000d9a
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 08 Sep 2009 18:21:00 -0400
+
+pulseaudio (1:0.9.16~test7-14-g7ca81-0ubuntu1) karmic; urgency=low
+
+  * New git snapshot of origin/master (0.9.16~test7-14-g7ca81)
+    fixes LP: #419658, #422451, #424127
+  * debian/pulseaudio.install: add module-loopback
+  * debian/control: remove liboil*-dev build-dependency thanks to
+    included ASM optimisations
+  * debian/copyright: update; we've added module-loopback
+  * debian/patches/0052-disable-cpu-limit.patch: Disable cpu limit as
+    per 812be327836c93492ad389333bcc037566141eb8
+  * debian/patches/0053-add-input-sources.patch: Add internal mic and
+    docking station as per 8cd635bc614834c13d0f1c586d472b4a52b98664
+  * debian/patches/0054-use-sse2-volume.patch: Only use if SSE2 is
+    available. This is a workaround for LP: #418448, thanks "knarf"!
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 06 Sep 2009 14:23:15 -0400
+
+pulseaudio (1:0.9.16~test6-3-g57e1-0ubuntu2) karmic; urgency=low
+
+  * add -march=armv6 to compiler flags on armel, recent upstream changes
+    make pulse fail building on anything below v6 (what a very bad idea !)
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Thu, 27 Aug 2009 16:25:15 +0200
+
+pulseaudio (1:0.9.16~test6-3-g57e1-0ubuntu1) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * New git snapshot of origin/master (0.9.16~test6-3-g57e1)
+  * debian/patches/:
+    + 0050-revert-pacmd-poll-argv.patch: Retain, still seeing
+      excessive cpu usage with resume
+    - 0051-leave-hp-enabled.patch: Drop, applied upstream
+    + 0051-reduce-lib-linking.patch: Refresh and rename previous
+      0052-reduce.. so that minimal changes are made
+
+  [ Luke Yelavich ]
+  * debian/control: Promote rtkit from suggests to recommends
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 25 Aug 2009 09:44:32 +1000
+
 pulseaudio (0.9.16~test5-1) experimental; urgency=low
 
   * New Upstream Version
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 22 Aug 2009 21:59:34 +0100
 
+pulseaudio (1:0.9.16~test5-0ubuntu2) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/patches/0051-leave-hp-enabled.patch: Leave
+    headphones enabled in the default analog mixer profiles
+
+  [ Luke Yelavich ]
+  * debian/patches/0052-reduce-lib-linking.patch: Reduce the number of
+    libraries that the libpulse libraries are linked against as much as
+    possible, to lessen the work needed to make bi-arch libpulse packages
+    in the future
+  * Remove pulseaudio.desktop once again, as the a11y special case is
+    not being honoured, and we have the Xsession.d script to start pulse
+    for us, to avoid any races with other apps wanting to play sounds on
+    session startup
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 21 Aug 2009 15:48:31 +1000
+
+pulseaudio (1:0.9.16~test5-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+  * debian/patches/0050-backport-git-post-test4.patch: drop
+  * debian/patches/0050-revert-pacmd-poll-argv.patch: revert pacmd
+    changesets due to excessive cpu usage (poll()) with resume:
+    - aae7054b1c442e62cc1154d15a4b7a569d60d8f4
+    - 5fcb8a3c0838a4ecdb00a0af09b6e1a358b114d0
+  * debian/01PulseAudio: Escape hash when passed to sudo -u
+    (LP: #414385). Thanks, Christoph Kurrat and Dana Goyette!
+  * debian/pulseaudio.init: Add NetworkManager to
+    Should-St{art,op} to fix sink/source publishing with Avahi
+    (LP: #413443). Thanks, Martin-Éric Racine!
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 19 Aug 2009 17:43:48 -0400
+
 pulseaudio (0.9.16~test4-1) experimental; urgency=low
 
   * New Upstream Version
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 09 Aug 2009 18:24:46 +0100
 
+pulseaudio (1:0.9.16~test4-0ubuntu6) karmic; urgency=low
+
+  * Correct changelog entry for 1:0.9.16~test4-0ubuntu5
+    (5fcb8a3c0838a4ecdb00a0af09b6e1a358b114d0 was _not_
+    applied)
+  * Resync proper 0050-backport-git-post-test4.patch
+    from the ~ubuntu-audio-dev PPA branch
+  * debian/control: Drop libgdbm-dev; use tdb-dev instead
+    since it's upstream's approach
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 13 Aug 2009 22:49:07 -0400
+
+pulseaudio (1:0.9.16~test4-0ubuntu5) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * 0050-backport-git-post-test4.patch: Add the following changesets
+    from git (can be dropped with -test5):
+    + 51b3899348bf29dd88b56691aeea9f57895dfd14
+    + 7d4916379bbf05384ad199004949cc220822aa5f
+    + 23a294c97e62e0bee9b17b1f8ad20a39e1ba15da
+    + d27e26dca0b492b1906b42b2d0f7decd38ed8ae3
+    + 462cdf44b7fe36768c836c90761f6b8153290517
+    + e8340345f6a102cd03b6676576bcd3879ead7aad
+    + 8998cba6839a46f11daec411c83a1b35723c5117
+    + facae1f27504983d7eff7c7c3ffa864f7e002272
+    + 9f53aa5546e7bf9246546c6dda5637d50679483c
+    + ef176ecb62a8f04bd14ca37e7c2a40469f0bb8ba
+    + 27b8cd783c2aedb23af8f88fc88632d5c4f387fd
+    + 5921324fd3c16e2b3d38d07b200febd90835f169
+    + 286ab2f19370c7a0041897435614b2c6aadc8e70
+    + 17d57415f5abad5b7c30301227054b4c899bc705
+
+  [ Luke Yelavich ]
+  * debian/pulseaudio.install: Also add previously dropped 70pulseaudio file
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 14 Aug 2009 10:29:16 +1000
+
+pulseaudio (1:0.9.16~test4-0ubuntu4) karmic; urgency=low
+
+  * debian/pulseaudio.install: ...and also re-add droped apport hook, and
+    alsa configuration files
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 07 Aug 2009 10:05:51 +0100
+
+pulseaudio (1:0.9.16~test4-0ubuntu3) karmic; urgency=low
+
+  * debian/pulseaudio.install: Also re-add pulse-session wrapper script
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 07 Aug 2009 09:41:15 +0100
+
+pulseaudio (1:0.9.16~test4-0ubuntu2) karmic; urgency=low
+
+  * debian/pulseaudio.install:
+    - Re-add the pm-utils script that was inadvertantly left out with the
+      previous Debian merge
+    - Add udev rules from upstream, needed for particular sound hardware
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 06 Aug 2009 18:49:12 +0100
+
+pulseaudio (1:0.9.16~test4-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+  * debian/patches/0008-clean-out-old-files.patch: Dropped, applied upstream
+  * debian/control: Fix pulseaudio-module-rygel-media-server debug package name
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 05 Aug 2009 12:02:18 +0100
+
+pulseaudio (1:0.9.16~test3-0ubuntu1) karmic; urgency=low
+
+  * New upstream release
+  * debian/pulseaudio.postinst:
+    - Do not create the pulse-rt group any more
+    - Do not make the pulseaudio binary suid root
+  * debian/pulseaudio.postrm: Do not try to remove the pulse-rt group
+  * debian/pulseaudio.preinst: Remove the pulse-rt group on upgrade
+  * debian/control:
+    - Suggest rtkit
+    - Renamed pulseaudio-module-hal and pulseaudio-module-hal-dbg to
+      pulseaudio-module-udev and pulseaudio-module-udev-dbg respectively
+    - pulseaudio-module-udev replaces pulseaudio-module-hal
+    - Bumped libudev-dev requirement to >= 143
+    - Added build dependencies libICE-dev, libxi-dev, x11proto-core-dev
+    - Add new package for the rygel-media-server module
+    - Tighten libasound2-dev and libsndfile1-dev dependencies
+  * debian/pulseaudio.init: Change all hal references to udev
+  * debian/patches/0008-clean-out-old-files.patch: Remove non-existant files
+    from POTFILES.in, patch sent upstream
+  * Merge from Debian unstable, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't build against, and create jack package. Jack is not in main
+    - use speex-float-1 resampler to work better with lack of PREEMPT in
+      karmic's -generic kernel config, also change buffer size
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - patch to fix source/sink and suspend-on-idle race
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - add status check for system wide pulseaudio instance
+    - create /var/run/pulse, and make restart more robust
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus)
+    - indicate that the system pulseaudio instance is being started from the init
+      script
+    - Install more upstream man pages
+    - Link to pacat for parec man page
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - cache /usr/share/sounds/ubuntu/stereo/ wav files on pulseaudio load
+    - Generate a PO template on build
+    - add special case to disable pulseaudio loading if accessibility/speech
+      is being used
+    - the esd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - fix some typos in README.Debian
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - drop libasyncns-dev build dependency, its in universe
+    - add libudev-dev as a build-dependency
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 04 Aug 2009 11:46:25 +0100
+
 pulseaudio (0.9.16~test2~20090726git59659e1db-1) experimental; urgency=low
 
   * New Upstream Version
@@ -1581,6 +4867,72 @@ pulseaudio (0.9.15-4.1) unstable; urgenc
 
  -- Nico Golde <nion@debian.org>  Fri, 24 Jul 2009 18:02:24 +0200
 
+pulseaudio (1:0.9.15-4ubuntu3) karmic; urgency=low
+
+  * debian/01PulseAudio: Mute sinks and sources prior to
+    suspend; unmute sinks and sources after resume (LP: #404986)
+  * debian/patches/series: Reenable glitch-free.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 27 Jul 2009 22:06:34 -0400
+
+pulseaudio (1:0.9.15-4ubuntu2) karmic; urgency=low
+
+  * SECURITY UPDATE: root escalation from BIND_NOW re-execution.
+    - 0040-do-not-exec-for-bindnow.patch: use -Wl,-z,now instead of
+      performing a racey re-exec.
+    - CVE-2009-1894
+
+ -- Kees Cook <kees@ubuntu.com>  Thu, 16 Jul 2009 10:03:46 -0700
+
+pulseaudio (1:0.9.15-4ubuntu1) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/patches/0001_change_resample_and_buffering.patch: Bump
+    default resampler to speex-float-1 due to remaining audio
+    anomalies when playing DVDs (LP: #376374)
+
+  [ Luke Yelavich ]
+  * Merge from Debian unstable, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't build against, and create jack package. Jack is not in main
+    - use speex-float-1 resampler to work better with lack of PREEMPT in
+      karmic's -generic kernel config, also change buffer size
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - patch to fix source/sink and suspend-on-idle race
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - add status check for system wide pulseaudio instance
+    - create /var/run/pulse, and make restart more robust
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus)
+    - indicate that the system pulseaudio instance is being started from the init
+      script
+    - Install more upstream man pages
+    - Link to pacat for parec man page
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - cache /usr/share/sounds/ubuntu/stereo/ wav files on pulseaudio load
+    - disable glitch free (use tsched=0)
+    - Generate a PO template on build
+    - add special case to disable pulseaud  * debian/patches/0090-fix-sw-mute-desync.patch: Dropped, as this is included
+    in the recently added patches in Debian.io loading if accessibility/speech
+      is being used
+    - the esd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - fix some typos in README.Debian
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - drop libasyncns-dev build dependency, its in universe
+    - add libudev-dev as a build-dependency
+  * debian/patches/0090-fix-sw-mute-desync.patch: Dropped, as this is included
+    in the recently added patches in Debian.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 22 Jun 2009 11:17:06 +1000
+
 pulseaudio (0.9.15-4) unstable; urgency=low
 
   * Synchronize our patches with Mandriva and Fedora (thanks to Colin Guthrie
@@ -1617,6 +4969,56 @@ pulseaudio (0.9.15-4) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 21 Jun 2009 15:40:33 +0100
 
+pulseaudio (1:0.9.15-3ubuntu1) karmic; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/patches/0001_change_resample_and_buffering.patch: Bump
+    default resampler to ffmpeg. We cannot peg the cpu, and we cannot
+    have audio anomalies, so this change _should_ be regression-free
+    but needs extensive testing (LP: #376374).
+  * debian/patches/0090_fix_sw_mute_desync.patch: Backport from
+    git HEAD to resolve sw vol becoming muted on logout
+    (LP: #315971, #352732)
+
+  [ Luke Yelavich ]
+  * Merge from Debian unstable, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't build against, and create jack package. Jack is not in main
+    - use ffmpeg resampler to work better with lack of PREEMPT in jaunty's
+      -generic kernel config, also change buffer size
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - patch to fix source/sink and suspend-on-idle race
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - add status check for system wide pulseaudio instance
+    - create /var/run/pulse, and make restart more robust
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus)
+    - indicate that the system pulseaudio instance is being started from the init
+      script
+    - Install more upstream man pages
+    - Link to pacat for parec man page
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - cache /usr/share/sounds/ubuntu/stereo/ wav files on pulseaudio load
+    - disable glitch free (use tsched=0)
+    - Generate a PO template on build
+    - add special case to disable pulseaudio loading if accessibility/speech
+      is being used
+    - the esd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - fix some typos in README.Debian
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - drop libasyncns-dev build dependency, its in universe
+    - add libudev-dev as a build-dependency
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 09 Jun 2009 10:47:05 +1000
+
 pulseaudio (0.9.15-3) unstable; urgency=low
 
   * Re-enable bluetooth support (Closes: #530514)
@@ -1634,6 +5036,51 @@ pulseaudio (0.9.15-3) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 07 Jun 2009 22:30:33 +0100
 
+pulseaudio (1:0.9.15-2ubuntu1) karmic; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't build against, and create jack package. Jack is not in main
+    - use linear resampler to work better with lack of PREEMPT in jaunty's
+      -generic kernel config, also change buffer size
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - patch to fix source/sink and suspend-on-idle race
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - create /var/run/pulse, and make restart more robust
+    - add status check for system wide pulseaudio instance
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus)
+    - indicate that the system pulseaudio instance is being started from the init
+      script
+    - Install more upstream man pages
+    - Link to pacat for parec man page
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - cache /usr/share/sounds/ubuntu/stereo/ wav files on pulseaudio load
+    - disable glitch free (use tsched=0)
+    - Generate a PO template on build
+    - add special case to disable pulseaudio loading if accessibility/speech
+      is being used
+    - the sd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - fix some typos in README.Debian
+    - demote paprefs to suggests
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - drop libasyncns-dev build dependency, its in universe
+    - add libudev-dev as a build-dependency
+    - Retain libbluetooth-dev build dependency
+  * debian/01Pulseaudio: Harvist users by UID, and not username, to ensure
+    that the script doesn't choak on characters not already considered as
+    used in a username (LP: #374694)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 26 May 2009 23:33:42 +0200
+
 pulseaudio (0.9.15-2) unstable; urgency=low
 
   * debian/control: Add strict dependencies from libpulse-dev to the various
@@ -1643,6 +5090,62 @@ pulseaudio (0.9.15-2) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Thu, 21 May 2009 00:54:38 +0100
 
+pulseaudio (1:0.9.15-1ubuntu3) karmic; urgency=low
+
+  * debian/control: libltdl7-dev -> libltdl-dev
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 11 May 2009 12:33:08 +1000
+
+pulseaudio (1:0.9.15-1ubuntu2) karmic; urgency=low
+
+  * debian/01PulseAudio: harvest users more robustly. Thanks,
+    Chow Loong Jin <hyperair@gmail.com>! (LP: #202089)
+  * debian/control: pulseaudio depends on pulseaudio-module-hal
+    to fix LP: #326532
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 09 Apr 2009 17:03:00 -0400
+
+pulseaudio (1:0.9.15-1ubuntu1) karmic; urgency=low
+
+  * Merge from unreleased Debian pulseaudio git, remaining changes:
+    - epoch (my stupid fault :S)
+    - Don't build against, and create jack package. Jack is not in main
+    - use linear resampler to work better with lack of PREEMPT in jaunty's
+      -generic kernel config, also change buffer size
+    - Add alsa configuration files to route alsa applications via pulseaudio
+    - Move libasound2-plugins from Recommends to Depends
+    - Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+      daemons
+    - patch to fix source/sink and suspend-on-idle race
+    - Make initscript more informative in the default case of per-user
+      sessions
+    - create /var/run/pulse, and make restart more robust
+    - add status check for system wide pulseaudio instance
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus)
+    - indicate that the system pulseaudio instance is being started from the init
+      script
+    - Install more upstream man pages
+    - Link to pacat for parec man page
+    - check whether pulseaudio is running before preloading the padsp library
+    - Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html
+    - cache /usr/share/sounds/ubuntu/stereo/ wav files on pulseaudio load
+    - disable glitch free (use tsched=0)
+    - Generate a PO template on build
+    - add special case to disable pulseaudio loading if accessibility/speech
+      is being used
+    - the sd wrapper script should not load pulseaudio if pulseaudio is being
+      used as a system service
+    - add a pulseaudio apport hook
+    - fix some typos in README.Debian
+    - demote paprefs to suggests
+    - drop padevchooser(Recommends) and pavucontrol (Suggests)
+    - drop libasyncns-dev build dependency, its in universe
+  * add libudev-dev as a build-dependency
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 05 May 2009 14:18:20 +1000
+
 pulseaudio (0.9.15-1) unstable; urgency=low
 
   * debian/control: Build-Depend on libcap-dev instead of libcap2-dev
@@ -1732,6 +5235,418 @@ pulseaudio (0.9.14-1) experimental; urge
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 01 Feb 2009 12:47:55 +0000
 
+pulseaudio (1:0.9.14-0ubuntu20) jaunty; urgency=low
+
+  * debian/01PulseAudio: use pactl instead of pacmd (LP: #202089)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 08 Apr 2009 18:54:30 -0400
+
+pulseaudio (1:0.9.14-0ubuntu19) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/pulseaudio.init:
+    - Fix inane stop() syntax (LP: #357201)
+  * Update backported (from git HEAD) fixes:
+    - 0091_workaround_alsa_horkage.patch
+  * Add new fixes:
+    - 0049_fix_sampling_rate_not_beyond_pa-rate-max.patch
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Thu, 09 Apr 2009 07:29:24 +1000
+
+pulseaudio (1:0.9.14-0ubuntu18) jaunty; urgency=low
+
+  * debian/apport-hook.py: Add apport hook
+  * debian/rules, debian/pulseaudio.install: Install apport hook
+  * LP: #357913
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 08 Apr 2009 20:14:17 +0100
+
+pulseaudio (1:0.9.14-0ubuntu17) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * debian/pulseaudio.init:
+    - Actually create /var/run/pulse, and make handling of /restart
+      more robust (LP #317921)
+    - Add /status check for system-wide daemon instance
+      (LP: #298299)
+  * Backport from upstream git HEAD:
+    - 0046_ignore_hal_no_such_cap.patch,
+    - 0047_pick_up_all_cards.patch (LP: #353807),
+    - 0048_fix_stuck_prebuf.patch (LP: #355825)
+
+  [ Luke Yelavich ]
+  * debian/control: Drop recommends from the pulseaudio-module-x11 package. if
+    they were dropped previously, they were re-added somehow, so lets get rid
+    of them once and for all.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 07 Apr 2009 16:51:59 +1000
+
+pulseaudio (1:0.9.14-0ubuntu16) jaunty; urgency=low
+
+  * Introduce epoch to fix my stupidity in uploading a test release of
+    pulseaudio.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 01 Apr 2009 14:04:33 +1100
+
+pulseaudio (0.9.14-0ubuntu15) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * README.Debian:
+    pulse-session:
+    pulseaudio.default: Clarify function of system-wide check, and
+    make /usr/bin/pulse-session do the right thing if system-wide
+    is enabled (LP: #286966)
+
+  [ Luke Yelavich ]
+  * Make the a11y no start special case per user, not system wide.
+  * Also make the esd wrapper script honour system wide pulseaudio.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 30 Mar 2009 11:33:33 +1100
+
+pulseaudio (0.9.14-0ubuntu14) jaunty; urgency=low
+
+  * No-change rebuild to fix lpia shared library dependencies.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 19 Mar 2009 13:57:35 +0000
+
+pulseaudio (0.9.14-0ubuntu13) jaunty; urgency=low
+
+  * debian/rules: Generate a PO template on build. Thanks to Timo Jyrinki for
+    the patch! (LP: #342159)
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Mon, 16 Mar 2009 10:14:19 +0100
+
+pulseaudio (0.9.14-0ubuntu12) jaunty; urgency=low
+
+  * 0091_workaround_alsa_horkage.patch:
+    - Lower severity of logging level to prevent DoS on syslog
+      LP: #320875, #343254
+      LP #330814
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sat, 14 Mar 2009 22:39:03 -0400
+
+pulseaudio (0.9.14-0ubuntu11) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * Reenable 0030_set_tsched0.patch, which re-disables glitch-free;
+    too many users are reporting regressions and audio aberrations.
+  * Adjust 0003_change_resample_and_buffering.patch to use linear
+    resampler to work better with lack of PREEMPT in jaunty's
+    -generic kernel config (LP: #207135, #322250, #332761, #335955,
+    LP: #336965).
+  * Last upload, specifically 0091_workaround_alsa_horkage, fixes:
+    LP: #235990, #237443, #279847, #317997, #323185, #330814,
+    LP: #334874.
+  * sudo -H change in ubuntu6 fixed LP: #312505.
+  * Closing old bugs fixed in 0.9.11+: LP: #187963, #193520, #211052.
+  * Refresh 0006_regen-autotools.patch.
+  * Add 0043_load_sample_dir_lazy.patch to cache
+    /usr/share/sounds/ubuntu/stereo/* in default.pa.
+  * debian/:
+    - control: Build against libcap2-dev (LP: #339448);
+    - copyright: Update copyright from Debian's 0.9.14-2;
+    - rules: Add DEB_OPT_FLAG = -O3 as per recommendation from
+      pulseaudio-discuss/2007-December/001017.html.
+  * Refresh fixes from git HEAD:
+    - 0038_handle_errno_properly.patch,
+    - 0091_workaround_alsa_horkage.patch,
+    - 0092_fix_null_pointer_access.patch.
+
+  [ Luke Yelavich ]
+  * Add a special case to prevent Pulseaudio from being started when the
+    blindness accessibility profile has been enabled from the Ubuntu live CD,
+    and for an accessibility install. Unfortunately Pulseaudio and speech do
+    not currently work very well with each other, and its too late in
+    the cycle to solve this problem any other way.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 10 Mar 2009 09:00:40 +1100
+
+pulseaudio (0.9.14-0ubuntu10) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * 0030_set_tsched0.patch: Disable this patch, which has the effect of
+    reenabling glitch-free. Depends on 0091_workaround_alsa_horkage.
+  * 0091_workaround_alsa_horkage.patch: Rework ALSA delay handling.
+
+  [ Luke Yelavich ]
+  * debian/control: re-add the vcs bzr URL for Ubuntu's pulseaudio packaging
+    as it got lost somewhere along the way
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 02 Mar 2009 10:40:11 +1100
+
+pulseaudio (0.9.14-0ubuntu9) jaunty; urgency=low
+
+  * PulseAudio does not need to be started before gdm, especially since we use
+    user sessions by default.
+
+ -- Scott James Remnant <scott@ubuntu.com>  Fri, 27 Feb 2009 01:27:20 +0000
+
+pulseaudio (0.9.14-0ubuntu8) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * Backport fixes from git HEAD:
+    - 0041_clarify_cmdline_opts.patch,
+    - 0042_fix_selem_init.patch
+
+  [ Luke Yelavich ]
+  * 0001_more_translatable_strings.patch: Make the .desktop file and PolicyKit
+    files translatable, thanks to Gabor Kelemen <kelemeng@gnome.hu for this
+    work (LP: #331831)
+  * 0006_regen-autotools.patch: re-create to take into account changes needed
+    for the above mentioned translation additions
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 24 Feb 2009 13:46:25 +1100
+
+pulseaudio (0.9.14-0ubuntu7) jaunty; urgency=low
+
+  [ Luke Yelavich ]
+  * 0001-Fix-library-search-path-to-include-lib-and-usr-lib.patch: Dropped,
+    no longer applicable, as evident in Debian's pulseaudio git branch.
+
+  [ Daniel T Chen ]
+  * 0004_enable_autospawn.patch: Renamed from .."disable".. for clarity,
+    and actually apply it.
+  * 0012_clarify_driver_error_redirect_to_alsa_devs.patch: Clarify
+    logging message for 'linux' source package and ALSA developers
+    instead of PulseAudio developers in alsa-util.c, too.
+    - This patch can be tweaked, since upstream has now applied it to
+      git HEAD
+  * Backport fixes from git HEAD:
+    - 0035_fix_module-detect_access.patch,
+    - 0036_increase_memblock_imports.patch,
+    - 0037_fill_silence_fail_import_memblock.patch,
+    - 0038_handle_errno_properly.patch,
+    - 0039_add_validity_checks.patch,
+    - 0040_legacy_fixes.patch
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 19 Feb 2009 19:34:03 -0500
+
+pulseaudio (0.9.14-0ubuntu6) jaunty; urgency=low
+
+  * 0004_disable_autospawn.patch: Disable this patch. Doing so
+    allows the daemon to spawn if not already running, which
+    works around LP: #191027, #204272
+  * 0012_clarify_driver_error_redirect_to_alsa_devs.patch:
+    - Only log POLL* being set if tsched is used so that syslog
+      isn't filled with innocuous messages when we set tsched=0
+      (see 0030 below) (LP: #323712),
+    - Hint 'linux' source package instead of 'alsa-driver' for
+      Launchpad bug reports,
+    - The debug-specific portion is only applicable to 0.9.14;
+      0.9.15 enables a rate limiting module by default to work
+      around this (and other) issues
+  * 0029_fix_suspend_on_idle_null_race.patch: Handle sink case,
+    too
+  * 0030_set_tsched0.patch: Work around a shedload of (driver)
+    bugs by falling back to interrupt-based buffer semantics
+    (LP: #190754, #292880, #295519, #298494, #301755, #302964,
+     LP: #319118, #323976, #324103, #326205, #326864)
+  * Backport fixes from git HEAD:
+    - 0031_fix_6chan_map.patch,
+    - 0032_reinit_proplist.patch,
+    - 0033_fix_pa-gcc-packedmalloc.patch,
+    - 0034_bt_fixes.patch
+  * Make invoking the stop target in the initscript not fail an
+    upgrade (LP: #317921)
+  * Previous upload (0.9.14-0ubuntu3) fixed LP: #321357
+  * 01PulseAudio: use sudo -H to ensure that $HOME is, in fact,
+    the user's when invoking pacmd for suspend/resume
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 15 Feb 2009 02:35:26 -0500
+
+pulseaudio (0.9.14-0ubuntu5) jaunty; urgency=low
+
+  * Add fixes from git HEAD:
+    - 0028_fix_uninit_rtp_resamp.patch,
+    - 0029_fix_suspend_on_idle_null_race.patch
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 12 Feb 2009 18:28:42 -0500
+
+pulseaudio (0.9.14-0ubuntu4) jaunty; urgency=low
+
+  * Add fixes from git HEAD:
+    - 0023_work_around_dlsym_retval_mistyping.patch,
+    - 0024_fix_sink_source_calls_in_suspended.patch,
+    - 0025_shortcut_pa-sink-process-rewind.patch,
+    - 0026_reset_rewind-requested_when_suspend.patch,
+    - 0027_fix_piped_pacmd.patch
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 04 Feb 2009 19:36:09 -0500
+
+pulseaudio (0.9.14-0ubuntu3) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * Add fixes from git HEAD:
+    - 0014_fix_avail-min_calc.patch,
+    - 0015_no_pa-asyncq-push_fail.patch,
+    - 0016_dont_rely_pa-sink-running-idle_for_optim.patch,
+    - 0017_fix_hsp_rate_chan.patch,
+    - 0018_dont_restore_mute_vol_when_already_set.patch,
+    - 0019_fix_mem_leak_in_pa-alsa-open-by-device-string.patch,
+    - 0020_ask_for_same_frag_set_when_resuming_oss_dev.patch,
+    - 0021_add_missing_const.patch,
+    - 0022_dont_hit_assert_in_esound-sink_when_latency_queried.patch
+
+  [ Luke Yelavich ]
+  * Re-instate /etc/X11/Xsession.d/70pulseaudio, to again load pulseaudio
+    earlier in the X session, to aleviate a pulse/login-sound race condition
+    (LP: #322374)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 02 Feb 2009 15:27:55 +0100
+
+pulseaudio (0.9.14-0ubuntu2) jaunty; urgency=low
+
+  * Add fixes from trunk:
+    - 0012_clarify_driver_error_redirect_to_alsa_devs.patch
+  * Add 0013_add_padsp_wrapper_check.patch (LP: #269939)
+  * debian/pulseaudio.manpages:
+    debian/pulseaudio-esound-compat.manpages:
+    debian/pulseaudio-utils.links:
+    - Install upstream man pages (LP: #219669, #318660),
+    - Link to pacat for parec man page (LP: #294628)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 22 Jan 2009 02:57:54 -0500
+
+pulseaudio (0.9.14-0ubuntu1) jaunty; urgency=low
+
+  * New upstream release. (LP: #317502, #317613)
+  * Dropped patches, all in upstream release.
+    - 0003-make-sure-to-use-64bit-rounding-even-on-32bit-machin.patch
+    - 0004-properly-remove-dbus-matches-an-filters-when-unloadi.patch
+    - 0005-Fix-two-typos-that-broke-tunnels.patch
+    - 0008_regen_autotools.patch
+    - 0009_shm-arch-indep.patch
+    - 0010_check_before_using_environment.patch
+    - 0011_load_restore_before_other_modules.patch
+    - 0013_dont_hit_assert_issuing_two_rewinds_in_single_iter.patch
+    - 0014_retry_without_snd-pcm-no-auto-format.patch
+    - 0015_use_fionread.patch
+    - 0016_add_pa-source-message-get-latency.patch
+    - 0017_allow_dev_dsp_w-ok.patch
+    - 0019_fix_macro_pa-unlikely.patch
+    - 0020_catch_driver_errors.patch
+    - 0022_fix_return_val_dump-resample-methods.patch
+    - 0023_use_gdbm-nolock.patch
+    - 0024_dont_mix_front-center_into_rear.patch
+    - 0025_drop_cap-nice_properly.patch
+    - 0027_handle_multicast_sdp_with_same_ip_ttl_as_rtp.patch
+    - 0029_add_minor_fixes.patch
+    - 0030_dont_drop_client_data.patch
+    - 0031_use_fragsize_for_record_stream_latency.patch
+  * Bumped shlibs for libpulse0.
+  * Package libpulsecore8 -> libpulsecore9.
+  * Add libdbus-glib-1-dev to build-depends.
+  * Regression fix:
+    - pulse.conf: Always honour ~/.asoundrc and /etc/asound.conf with highest
+      priority, thanks to Daniel T Chen. (LP: #295832)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 19 Jan 2009 14:45:36 +1100
+
+pulseaudio (0.9.13-2ubuntu7) UNRELEASED; urgency=low
+
+  * Add fixes from 0.9.14:
+    - 0030_dont_drop_client_data.patch,
+    - 0031_use_fragsize_for_record_stream_latency.patch,
+    - 0032_fix_suspend_sinks_sources.patch (LP: #317613)
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 15 Jan 2009 17:26:14 -0500
+
+pulseaudio (0.9.13-2ubuntu6) jaunty; urgency=low
+
+  * debian/control: Package pulseaudio-module-x11,
+    Recommends: gnome-audio | ubuntu-sounds.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 13 Jan 2009 16:15:48 +1100
+
+pulseaudio (0.9.13-2ubuntu5) jaunty; urgency=low
+
+  [ Daniel T Chen ]
+  * Add fixes from git:
+    - 0015_use_fionread.patch,
+    - 0016_add_pa-source-message-get-latency.patch,
+    - 0017_allow_dev_dsp_w-ok.patch,
+    - 0018_fix_return_val_pa-frame-aligned.patch,
+    - 0019_fix_macro_pa-unlikely.patch,
+    - 0020_catch_driver_errors.patch (LP: #312373),
+    - 0021_convert_to_pa-bool-t.patch,
+    - 0022_fix_return_val_dump-resample-methods.patch,
+    - 0023_use_gdbm-nolock.patch,
+    - 0024_dont_mix_front-center_into_rear.patch,
+    - 0025_drop_cap-nice_properly.patch,
+    - 0027_handle_multicast_sdp_with_same_ip_ttl_as_rtp.patch,
+    - 0028_prefer_mixer_controls_with_vols.patch (LP: #281605),
+    - 0029_add_minor_fixes.patch
+  * Forward-port workaround from hardy branch for source/sink and
+    suspend-on-idle race (LP: #203654):
+    - 0026_work_around_suspend-on-idle_source_sink_race.patch
+  * debian/control: Drop padevchooser(Recommends) and pavucontrol
+    (Suggests) completely - functionality has been subsumed by
+    jaunty's gnome-volume-control.
+  * debian/pulseaudio.init:
+    - Make initscript more informative in the default case of per-user
+      sessions (LP: #259522),
+    - Make initscript retry (until three-second timeout) if stopping
+      fails when restarting (LP: #244414),
+    - LSB {Required-*,Should-*} should specify hal instead of dbus,
+      since hal is required (and already requires dbus) (LP: #244679)
+  * Previous upload contains patches to close:
+    LP: #193491, #268891, #295164, #298301
+
+  [ Luke Yelavich ]
+  * 0008_regen_autotools.patch: Pull some libtool 2.2 updates from git,
+    and regenerate autotools glue.
+  * debian/rules: Add --enable-static to force creation of libpulse.a,
+    a side-effect of messing with the autotools files. This shouldn't
+    be needed for the 0.9.14 release.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 09 Jan 2009 17:05:38 +1100
+
+pulseaudio (0.9.13-2ubuntu4) jaunty; urgency=low
+
+  * Demote paprefs to suggests (LP: #309422)
+  * Add fixes from git:
+    - 0010_check_before_using_environment.patch,
+    - 0011_load_restore_before_other_modules.patch,
+    - 0012_dont_hit_assert_checking_for_idleness.patch,
+    - 0013_dont_hit_assert_issuing_two_rewinds_in_single_iter.patch,
+    - 0014_retry_without_snd-pcm-no-auto-format.patch.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 28 Dec 2008 23:43:01 -0500
+
+pulseaudio (0.9.13-2ubuntu3) jaunty; urgency=low
+
+  * Add pm-utils sleep hook to suspend (and resume) users' pulseaudio
+    daemons (LP: #202089). Based on a patch by
+    Chow Loong Jin <hyperair@gmail.com>.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 08 Dec 2008 22:11:32 -0800
+
+pulseaudio (0.9.13-2ubuntu2) jaunty; urgency=low
+
+  * debian/patches/0009_shm-arch-indep.patch:
+    - Make shm marker architecture independant, taken from git.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 01 Dec 2008 12:06:00 +1100
+
+pulseaudio (0.9.13-2ubuntu1) jaunty; urgency=low
+
+  * Merge from Debian experimental, remaining changes:
+    - Don't build against, and create jack package. Jack is not in main.
+    - Remove --disable-per-user-esound-socket from configure flags, as we still
+      want per user esound sockets.
+    - Remove stop links from rc0 and rc6.
+    - Change default resample algorithm and bubffer size.
+    - Add alsa configuration files to route alsa applications via pulseaudio.
+    - Move libasound2-plugins from Recommends to Depends.
+    - debian/pulseaudio.preinst: When upgrading from intrepid, remove
+      /etc/X11/Xsession.d/70pulseaudio, as this was used to minimize a race
+      condition when starting GNOME in intrepid. This race should not exist in
+      jaunty once libcanberra is built to use pulseaudio as a backend.
+    - Do not spawn a pulseaudio server if clients fail to find a running server.
+    - Regenerate autotools files for ubuntu.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 19 Nov 2008 10:44:03 +1100
+
 pulseaudio (0.9.13-2) experimental; urgency=low
 
   * Rename libpulsecore5 to libpulsecore8 to correctly reflect the soname
@@ -1745,6 +5660,42 @@ pulseaudio (0.9.13-2) experimental; urge
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sun, 16 Nov 2008 18:13:05 +0000
 
+pulseaudio (0.9.13-1ubuntu3) jaunty; urgency=low
+
+  * Build-depend on libltdl7-dev to make the armel buildd happy.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 19 Nov 2008 16:26:45 +0000
+
+pulseaudio (0.9.13-1ubuntu2) jaunty; urgency=low
+
+  * Drop libasyncns-dev again. Its in universe, and we will worry about
+    whether we really need it again later.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 18 Nov 2008 15:47:20 +1100
+
+pulseaudio (0.9.13-1ubuntu1) jaunty; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - Don't build against, and create jack package. Jack is not in main.
+    - Remove --disable-per-user-esound-socket from configure flags, as we still
+      want per user esound sockets.
+    - Remove stop links from rc0 and rc6.
+    - Change default resample algorithm and bubffer size.
+    - Add alsa configuration files to route alsa applications via pulseaudio.
+    - Move libasound2-plugins from Recommends to Depends.
+  * debian/pulseaudio.preinst: When upgrading from intrepid, remove
+    /etc/X11/Xsession.d/70pulseaudio, as this was used to minimize a race
+    condition when starting GNOME in intrepid. This race should not exist in
+    jaunty once libcanberra is built to use pulseaudio as a backend.
+  * Do not spawn a pulseaudio server if clients fail to find a running server.
+  * Remove explicit version dependency for libspeex-dev to allow the package
+    to be built for now.
+  * Regenerate autotools files to work with Ubuntu's newer libtool/libltdl.
+  * debian/control: libpulsecore5 -> libpulsecore8 to match the library
+    soname.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 04 Nov 2008 15:46:00 +1100
+
 pulseaudio (0.9.13-1) experimental; urgency=low
 
   [ Bas Zoetekouw ]
@@ -1793,6 +5744,109 @@ pulseaudio (0.9.10-3) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 30 Aug 2008 14:24:51 +0100
 
+pulseaudio (0.9.10-2ubuntu9) intrepid; urgency=low
+
+  * debian/70pulseaudio && debian/pulse-session: Use a wrapper script
+    to start pulseaudio at the Xsession.d phase of the login process.
+    The wrapper script is necessary to execute processes that need to
+    be loaded after pulseaudio, such as the X session manager. This
+    works around a race condition involving pulseaudio and canberra-gtk-play
+    and the GNOME login sound. (LP: #274124)
+  * debian/pulseaudio.preinst: Remove /etc/xdg/autostart/pulseaudio.desktop
+    if it exists. We don't want pulseaudio started more than once.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Mon, 20 Oct 2008 13:26:28 +1100
+
+pulseaudio (0.9.10-2ubuntu8) intrepid; urgency=low
+
+  * debian/pulseaudio.desktop: Use a slightly modified version of the
+    pulseaudio desktop file from more recent versions, and place it in
+    /etc/xdg/autostart, to start pulseaudio earlier in the GNOME desktop
+    initialization. This should avoid a race condition between the login
+    sound being played, and pulseaudio being loaded. (LP: #274124)
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Fri, 10 Oct 2008 15:22:51 +1100
+
+pulseaudio (0.9.10-2ubuntu7) intrepid; urgency=low
+
+  * Fix some errors in the pid file handling patch, thanks to Mandriva.
+  * debian/pulse.conf: Do not use an absolute path when referring to the
+    pulse alsa plugin, as this breaks bi-arch configurations. libasound2
+    and lib32/64asound2 now include ldconfig files to include the alsa-plugins
+    path for the architecture in use.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Wed, 08 Oct 2008 11:20:17 +1100
+
+pulseaudio (0.9.10-2ubuntu6) intrepid; urgency=low
+
+  * debian/pulse-alsa.conf: extend configuration to include "pulse"
+    definitions for buggy ALSA applications (e.g., Skype). (LP: #258581)
+
+ -- Conn O Griofa <connogriofa@gmail.com>  Tue, 23 Sep 2008 16:12:19 +0100
+
+pulseaudio (0.9.10-2ubuntu5) intrepid; urgency=low
+
+  * debian/control: Bump libasound2-plugins from recommends to depends to be
+    sure that nobody's audio set up for alsa applications is broken.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 23 Sep 2008 23:07:23 +1000
+
+pulseaudio (0.9.10-2ubuntu4) intrepid; urgency=low
+
+  * debian/pulse.conf, debian/pulse-alsa.conf. Asoundrc configuration files
+    to allow the use of pulseaudio as the default output for applications
+    using alsa, when pulseaudio is running.
+  * debian/patches/0015-Change-resampler-and-buffering.patch: Change the
+    resample method used as well as the buffer size.
+  * Some patches taken from Mandriva's pulseaudio package. See comments in
+    patch headers for more details:
+    - 0007-Perfer-client.conf-over-X11-property-variables.patch
+    - 0008-Also-link-libpulsecore.la-to-some-libraries-needed.patch
+    - 0009-Rejig-r2495-slightly-and-directly-compile-the-necess.patch
+    - 0010-Do-not-invalidate-the-cookie-if-no-file-was-specifie.patch
+    - 0011-fix-error-path-spotted-by-Coling-Guthrie.patch
+    - 0012-Change-policykit-policy-to-allow-high-priority-and-d.patch
+    - 0013-More-robust-pid-file-handling.patch
+    - 0014-Disable-hotplug-sound-as-it-interferes-with-too-many.patch
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 23 Sep 2008 16:02:48 +1000
+
+pulseaudio (0.9.10-2ubuntu3) intrepid; urgency=low
+
+  * Remove stop links from rc0 and rc6 (LP: #254254):
+    - debian/rules: change DEB_UPDATE_RCD_PARAMS to
+      start 25 2 3 4 5 . stop 15 1 .
+
+ -- Cesare Tirabassi <norsetto@ubuntu.com>  Mon, 04 Aug 2008 19:22:43 +0200
+
+pulseaudio (0.9.10-2ubuntu2) intrepid; urgency=low
+
+  * debian/patches/0006-pcspkr-last.patch: Load the PC speaker as a sink
+    after all other sound card sinks have been loaded. (LP: #242966)
+  * debian/patches/0007-relibtoolize.patch: Regenerate relevant libtool
+    bits, because even though libltdl7 is supposed to be API-compatible
+    with libltdl3, the package FTBFs without regeneration.
+
+ -- Luke Yelavich <themuso@ubuntu.com>  Tue, 29 Jul 2008 16:07:18 +1000
+
+pulseaudio (0.9.10-2ubuntu1) intrepid; urgency=low
+
+  * Merge from Debian unstable.
+  * Patches
+    + 0001-Set-ESD-socket-to-tmp-.esd-socket-to-match-up-with.patch:
+      continue to disable this patch, as we want user sockets to be
+      the default in the conffile;
+    - 0050-Reduce-RT-highprio-log-to-info: absorbed into Debian unstable;
+    - 0051-Reduce-pa_pid_file_create-Daemon-already-running-log-spam:
+      removed as per discussion with Sjoerd, as it can confuse human
+      debugging;
+  * Packaging
+    + MaintainerField and Vcs munging;
+    + Don't generate or install the jackd module;
+    + Use multiuser semantics.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 14 May 2008 15:47:31 -0400
+
 pulseaudio (0.9.10-2) unstable; urgency=low
 
   * debian/patches/0003-Define-PULSE_INTERNAL.patch
@@ -1808,6 +5862,32 @@ pulseaudio (0.9.10-2) unstable; urgency=
 
  -- Sjoerd Simons <sjoerd@debian.org>  Sat, 10 May 2008 22:16:12 +0200
 
+pulseaudio (0.9.10-1ubuntu1) hardy; urgency=low
+
+  [ Daniel T Chen ]
+  * Merge from Debian unstable:
+  * Patches
+    + 0050-Reduce-RT-highprio-log-to-info:
+    + 0051-Reduce-pa_pid_file_create-Daemon-already-running-log-spam:
+      Retain to prevent innocuous messages from spamming user log;
+    - 0052-Add-extra-checks-to-padsp-debug-calls:
+    - 0053-Handle-channel-map-failure:
+    - 0054-Invoke-pa_ltdl_done-conditionally:
+    - 0055-fix_record_stream_moved:  Merged in new upstream version.
+  * Packaging
+    + control:  Adhere to DebianMaintainerField spec, and add a
+      Vcs-Bzr entry;
+    + control:
+    + pulseaudio-module-jack.install:  Don't generate or install the
+      jackd module;
+    + pulseaudio.init:
+    + rules:  Use multiuser semantics.
+
+  [ Luke Yelavich ]
+  * FFe granted. (LP: #211592)
+
+ -- Luke Yelavich <luke.yelavich@canonical.com>  Mon, 07 Apr 2008 10:40:01 +1000
+
 pulseaudio (0.9.10-1) unstable; urgency=low
 
   [ CJ van den Berg ]
@@ -1833,6 +5913,52 @@ pulseaudio (0.9.10-1) unstable; urgency=
 
  -- CJ van den Berg <cj@vdbonline.com>  Sun, 30 Mar 2008 20:11:02 +0200
 
+pulseaudio (0.9.9-1ubuntu4) hardy; urgency=low
+
+  * Patch from Thorvald Natvig to fix protocol error when moving source outputs.
+    (LP: #194756)
+
+ -- Luke Yelavich <luke.yelavich@canonical.com>  Fri, 28 Mar 2008 15:58:55 +1100
+
+pulseaudio (0.9.9-1ubuntu3) hardy; urgency=low
+
+  * Patches:
+    - Apply (new) patch to handle channel mapping failure.  From
+      upstream SVN changeset 2105.  (LP: #178442)
+    - Apply (new) patch to invoke pa_ltdl_done() conditionally.
+      From upstream SVN changeset 2111.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 18 Feb 2008 18:40:28 -0500
+
+pulseaudio (0.9.9-1ubuntu2) hardy; urgency=low
+
+  * Packaging:
+    - Add versioned dependency on sysv-rc to pulseaudio for LTS->LTS.
+      Thanks, Steve Langasek (LP: #187469)!
+  * Patches:
+    - Apply (new) patch from Mandriva adding checks to debug calls,
+      preventing crashes, with padsp.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 30 Jan 2008 20:43:29 -0500
+
+pulseaudio (0.9.9-1ubuntu1) hardy; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - Packaging:
+      + pulseaudio-module-x11 does not recommend an audio theme,
+      + no jack packages,
+      + pulseaudio-utils long description clarification,
+      + multiuser initscript semantics (Teardown spec),
+      + Vcs-Bzr entry and DebianMaintainerField mangling;
+    - Patches:
+      + omit 0001-Set-ESD-socket-to-tmp-..,
+      + omit socket parameter in 0007-Change-config-.. to apply
+        cleanly given above 0001-Set-ESD-socket omission,
+      + lower verboseness of some log messages,
+      + drop backported CVE-2008-008 fix (already in 0.9.9).
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 25 Jan 2008 16:04:34 -0500
+
 pulseaudio (0.9.9-1) unstable; urgency=high
 
   * New Upstream Version.
@@ -1841,6 +5967,48 @@ pulseaudio (0.9.9-1) unstable; urgency=h
 
  -- Sjoerd Simons <sjoerd@debian.org>  Thu, 24 Jan 2008 12:44:55 +0100
 
+pulseaudio (0.9.8-2ubuntu3) hardy; urgency=low
+
+  * [SECURITY] Apply (new) patch fixing unchecked setuid() return
+    values.  Patch backported from upstream 0.9.9.
+  * References:
+    CVE-2008-0008
+    https://bugzilla.novell.com/show_bug.cgi?id=347822
+    https://bugzilla.redhat.com/show_bug.cgi?id=425481
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Wed, 23 Jan 2008 20:11:25 -0500
+
+pulseaudio (0.9.8-2ubuntu2) hardy; urgency=low
+
+  * Apply (new) 0051-Reduce-pa_pid_file_create.. patch that lowers the
+    "Daemon already running", "pa_pid_file_create() failed", and
+    "setrlimit(..Operation not permitted" levels to prevent spamming
+    /var/log/syslog.  Normal users not in the pulse-rt group don't need
+    this level of verbosity, and the "errors" are innocuous given per-
+    user session invocation.  (These changes really close LP #83137 and
+    duplicates.)
+  * Thanks to Sjoerd Simons for the insight.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 08 Jan 2008 06:36:42 -0500
+
+pulseaudio (0.9.8-2ubuntu1) hardy; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - Packaging:
+      + pulseaudio-module-x11 does not recommend an audio theme,
+      + no jack packages,
+      + pulseaudio-utils long description clarification,
+      + multiuser initscript semantics (Teardown spec),
+      + Vcs-Bzr entry and DebianMaintainerField mangling;
+    - Patches:
+      + omit 0001-Set-ESD-socket-to-tmp-..,
+      + omit socket parameter in 0007-Change-config-.. to apply
+        cleanly given above 0001-Set-ESD-socket omission,
+      + apply (new) 0050-Reduce-RT-highprio-log-to-info.patch
+        (LP: #83137 and duplicates).
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 04 Jan 2008 21:46:57 +0000
+
 pulseaudio (0.9.8-2) unstable; urgency=low
 
   * Bump shlibs of libpulse and libpulse-browse. Upstream has started
@@ -1864,6 +6032,44 @@ pulseaudio (0.9.8-2) unstable; urgency=l
 
  -- Sjoerd Simons <sjoerd@debian.org>  Fri, 04 Jan 2008 16:12:27 +0100
 
+pulseaudio (0.9.8-1ubuntu3) hardy; urgency=low
+
+  * debian/control: Drop Recommendation of ubuntu-sounds entirely; it's wrong
+    for derivatives, and theming should be done with seeds and derivative
+    specific meta packages.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Mon, 10 Dec 2007 14:37:37 +0100
+
+pulseaudio (0.9.8-1ubuntu2) hardy; urgency=low
+
+  * debian/control: Make pulseaudio-module-x11 recommend ubuntu-sounds,
+    not gnome-audio.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Thu, 06 Dec 2007 07:12:07 -0500
+
+pulseaudio (0.9.8-1ubuntu1) hardy; urgency=low
+
+  "Hail our new PulseAudio overlords (part two)."
+
+  * Merge from Debian unstable.
+  * Ubuntu-specific changes:
+    - debian/control:
+      + Don't build-depend on libjack0.100.0-dev or build jack module
+        packages,
+      + Update pulseaudio's Recommends and Suggests to accomodate
+        existing promoted main packages,
+      + Explicitly mention pasuspender in pulseaudio-utils's long
+        description,
+      + Add Vcs-Bzr URI,
+      + Adhere to DebianMaintainerField;
+    - debian/rules: Use multiuser for update-rc.d;
+    - debian/patches/series: Retain the exclusion of
+      0001-Set-ESD-socket-to-tmp-.esd-socket-to-match-up-with.patch.
+  * Dropped Ubuntu-specific change (absorbed into Debian source):
+    debian/patches/0002-Double-esound-maximum-sample-size.patch.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Tue, 04 Dec 2007 00:56:08 +0000
+
 pulseaudio (0.9.8-1) unstable; urgency=low
 
   [ CJ van den Berg ]
@@ -1905,6 +6111,40 @@ pulseaudio (0.9.8-1) unstable; urgency=l
 
  -- CJ van den Berg <cj@vdbonline.com>  Thu, 22 Nov 2007 02:33:51 +0100
 
+pulseaudio (0.9.7-3ubuntu2) hardy; urgency=low
+
+  * Disable 0001-Set-ESD-socket-to-tmp-.esd-socket-to-match-up-with.patch. We
+    do want per-user esd sockets in Ubuntu. This unbreaks multiuser support
+    and matches the patch that we did to esound for the very same reason:
+    every user needs its own esd socket path to have them not conflict to each
+    other.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Tue, 20 Nov 2007 22:30:35 +0100
+
+pulseaudio (0.9.7-3ubuntu1) hardy; urgency=low
+
+  "Hail our new PulseAudio overlords (part one)."
+
+  * Merge from Debian unstable.
+  * Apply Ubuntu-specific changes:
+    - debian/control:
+      + drop libasyncns-dev and libjack0.100.0-dev build-dependencies
+        since we don't build the jack plugin [yet];
+      + add versioned lsb-base dependency to pulseaudio;
+      + keep pulseaudio installable by demoting some recommended
+        packages to suggested [retain libasound2-plugins,
+        libgstreamer-plugins-pulse0.10-0, and
+        pulseaudio-esound-compat.  pulseaudio-module-hal,
+        pulseaudio-module-x11, libao-pulse, paprefs, and
+        padevchooser are currently in universe];
+      + adhere to DebianMaintainerField spec;
+    - debian/rules:
+      + use multiuser instead of defaults in DEB_UPDATE_RCD_PARAMS.
+  * Drop obsolete Ubuntu-specific change:
+    - src/pulsecore/protocol-esound.c: applied upstream.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sat, 17 Nov 2007 00:10:48 +0000
+
 pulseaudio (0.9.7-3) unstable; urgency=low
 
   [ CJ van den Berg ]
@@ -1982,6 +6222,25 @@ pulseaudio (0.9.6-2) unstable; urgency=l
 
  -- CJ van den Berg <cj@vdbonline.com>  Sun, 02 Sep 2007 20:22:19 +0200
 
+pulseaudio (0.9.6-1ubuntu2) gutsy; urgency=low
+
+  * fix esound max samplesize again to make sure teh login sound is playable
+    on networked connections. 
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Thu, 28 Jun 2007 15:31:28 +0200
+
+pulseaudio (0.9.6-1ubuntu1) gutsy; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - debian/control:
+      + Add lsb-base (>= 3) to pulseaudio's dependencies,
+      + Adhere to DebianMaintainerField policy,
+      + Don't build-depend on libjack0.100.0-dev or libasyncns-dev,
+    - debian/patches/: Remove all Ubuntu-created patches (merged
+      upstream).
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 28 May 2007 22:30:44 +0100
+
 pulseaudio (0.9.6-1) unstable; urgency=low
 
   * New Upstream Version.
@@ -2003,6 +6262,22 @@ pulseaudio (0.9.6-1) unstable; urgency=l
 
  -- CJ van den Berg <cj@vdbonline.com>  Mon, 28 May 2007 00:53:28 +0200
 
+pulseaudio (0.9.5-7ubuntu1) gutsy; urgency=low
+
+  * Merge from Debian unstable, remaining changes:
+    - debian/control:
+      + Add lsb-base (>= 3) to pulseaudio's dependencies,
+      + Adhere to DebianMaintainerField policy,
+    - debian/patches/:
+      + Add 10_fix_DoS_vulns.dpatch (pA ticket 67) and
+        11_disallow_excessively_high_sampling_rates.dpatch,
+      + Drop 06_fix_suspend.dpatch in favour of
+        06_pulseaudio-0.9.5-suspend.dpatch,
+      + Retain 07_fix_esdcompat_bashism.dpatch and
+        09_fix_esd_max_samplesize.dpatch.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Fri, 25 May 2007 01:32:39 -0400
+
 pulseaudio (0.9.5-7) unstable; urgency=low
 
   * debian/control: Make pulseaudio-module-hal depend on hal, not just
@@ -2019,6 +6294,39 @@ pulseaudio (0.9.5-6) unstable; urgency=l
 
  -- CJ van den Berg <cj@vdbonline.com>  Mon, 12 Feb 2007 11:24:50 +0100
 
+pulseaudio (0.9.5-5ubuntu4) feisty; urgency=low
+
+  * add 09_fix_esd_max_samplesize.dpatch to make sure the login and logout
+    gnome sounds can be processed on remote connections. 
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Tue,  6 Mar 2007 14:14:08 +0100
+
+pulseaudio (0.9.5-5ubuntu3) feisty; urgency=low
+
+  * debian/control:
+    - Add lsb-base (>= 3) to pulseaudio's dependencies,
+    - Adhere to DebianMaintainerField policy,
+    - Pull in fix from Debian's 0.9.5-7 adding hal to
+      pulseaudio-module-hal's dependencies,
+  * debian/pulseaudio.init: LSB-ify.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Sun, 25 Feb 2007 02:30:31 -0500
+
+pulseaudio (0.9.5-5ubuntu2) feisty; urgency=low
+
+  * added 06_fix_suspend.dpatch from http://pulseaudio.org/ticket/26
+  * added 07_fix_esdcompat_bashism.dpatch to avoid esdcompat trying to 
+    shift an empty $1 on POSIX shells
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Tue, 30 Jan 2007 23:50:57 +0100
+
+pulseaudio (0.9.5-5ubuntu1) feisty; urgency=low
+
+  * Merge from Debian unstable, remaining change:
+    - debian/{control,rules}: Don't use jack or asyncns.
+
+ -- Daniel T Chen <crimsun@ubuntu.com>  Mon, 29 Jan 2007 10:36:35 -0500
+
 pulseaudio (0.9.5-5) unstable; urgency=low
 
   * debian/control: Make Build-deps more specific. (Closes: #401111)
@@ -2027,6 +6335,19 @@ pulseaudio (0.9.5-5) unstable; urgency=l
 
  -- CJ van den Berg <cj@vdbonline.com>  Mon,  8 Jan 2007 23:02:53 +0100
 
+pulseaudio (0.9.5-4ubuntu2) feisty; urgency=low
+
+  * disable libasyncns to fix ftbfs 
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Sat, 20 Jan 2007 11:10:59 +0100
+
+pulseaudio (0.9.5-4ubuntu1) feisty; urgency=low
+
+  * merge from debian unstable
+    * keep jack removal
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Tue, 28 Nov 2006 19:51:21 +0100
+
 pulseaudio (0.9.5-4) unstable; urgency=low
 
   * Add comment about resampling methods and CPU consumption to
@@ -2044,6 +6365,20 @@ pulseaudio (0.9.5-4) unstable; urgency=l
 
  -- CJ van den Berg <cj@vdbonline.com>  Wed, 18 Oct 2006 23:10:47 +0200
 
+pulseaudio (0.9.5-3ubuntu1) feisty; urgency=low
+
+  * indeed remove the jack plugin from debian/control as well 
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Tue, 14 Nov 2006 21:05:29 +0100
+
+pulseaudio (0.9.5-3ubuntu0) feisty; urgency=low
+
+  * initial package
+  * disable jack
+  * disable asyncns
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Sun, 12 Nov 2006 20:00:18 +0100
+
 pulseaudio (0.9.5-3) unstable; urgency=low
 
   * Add support for .ifexists configuration directive.
diff -pruN 16.1+dfsg1-2/debian/control 1:16.1+dfsg1-2ubuntu3/debian/control
--- 16.1+dfsg1-2/debian/control	2022-09-22 19:00:13.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/control	2023-02-08 22:31:06.000000000 +0000
@@ -1,7 +1,8 @@
 Source: pulseaudio
 Section: sound
 Priority: optional
-Maintainer: Pulseaudio maintenance team <pkg-pulseaudio-devel@lists.alioth.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Pulseaudio maintenance team <pkg-pulseaudio-devel@lists.alioth.debian.org>
 Uploaders: Sjoerd Simons <sjoerd@debian.org>,
     Felipe Sateler <fsateler@debian.org>,
     Sebastien Bacher <seb128@debian.org>
@@ -11,9 +12,11 @@ Build-Depends: debhelper-compat (= 13),
     check <!nocheck>,
     desktop-file-utils <!nocheck>,
     dh-exec,
+    doxygen,
     dpkg-dev (>= 1.17.14),
     intltool,
     libasound2-dev [linux-any],
+    libapparmor-dev [linux-any],
     libasyncns-dev,
     libavahi-client-dev,
     libbluetooth-dev [linux-any] <!stage1>,
@@ -29,6 +32,7 @@ Build-Depends: debhelper-compat (= 13),
     liblircclient-dev,
     libltdl-dev,
     liborc-0.4-dev,
+    libsnapd-glib-dev,
     libsndfile1-dev,
     libsoxr-dev (>= 0.1.1),
     libspeexdsp-dev (>= 1.2~rc1),
diff -pruN 16.1+dfsg1-2/debian/gbp.conf 1:16.1+dfsg1-2ubuntu3/debian/gbp.conf
--- 16.1+dfsg1-2/debian/gbp.conf	2022-09-22 19:00:13.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/gbp.conf	2023-02-08 22:31:06.000000000 +0000
@@ -1,3 +1,5 @@
 [DEFAULT]
 pristine-tar = True
-debian-branch = master
+debian-branch = ubuntu
+debian-tag=ubuntu/%(version)s
+upstream-vcs-tag=%(version)s
diff -pruN 16.1+dfsg1-2/debian/patches/0001-alsa-mixer-Recognize-USB-audio-jack-mixer.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0001-alsa-mixer-Recognize-USB-audio-jack-mixer.patch
--- 16.1+dfsg1-2/debian/patches/0001-alsa-mixer-Recognize-USB-audio-jack-mixer.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0001-alsa-mixer-Recognize-USB-audio-jack-mixer.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,77 @@
+From 11205437be9a199591e0dd72dab5054d31369898 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Tue, 4 Aug 2020 00:20:02 +0800
+Subject: [PATCH 1/2] alsa-mixer: Recognize USB audio jack mixer
+
+UAC v2 and v3 support insertion control (jack detection), and the
+created jack mixers have "- Input" suffix and "- Output" suffix for
+input jack and output jack, respectively.
+
+Add these jacks so we don't always need to rely on UCM or PulseAudio
+profile-set.
+---
+ src/modules/alsa/mixer/paths/analog-input-linein.conf      | 3 +++
+ src/modules/alsa/mixer/paths/analog-input-mic.conf         | 3 +++
+ src/modules/alsa/mixer/paths/analog-output-headphones.conf | 3 +++
+ src/modules/alsa/mixer/paths/analog-output-speaker.conf    | 3 +++
+ 4 files changed, 12 insertions(+)
+
+diff --git a/src/modules/alsa/mixer/paths/analog-input-linein.conf b/src/modules/alsa/mixer/paths/analog-input-linein.conf
+index 8163ffb2c..cf2079074 100644
+--- a/src/modules/alsa/mixer/paths/analog-input-linein.conf
++++ b/src/modules/alsa/mixer/paths/analog-input-linein.conf
+@@ -28,6 +28,9 @@ required-any = any
+ state.plugged = unknown
+ state.unplugged = unknown
+ 
++[Jack Line - Input]
++required-any = any
++
+ [Element Capture]
+ switch = mute
+ volume = merge
+diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf b/src/modules/alsa/mixer/paths/analog-input-mic.conf
+index 123439b6c..53c03c820 100644
+--- a/src/modules/alsa/mixer/paths/analog-input-mic.conf
++++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf
+@@ -29,6 +29,9 @@ required-any = any
+ state.plugged = unknown
+ state.unplugged = unknown
+ 
++[Jack Mic - Input]
++required-any = any
++
+ [Element Capture]
+ switch = mute
+ volume = merge
+diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf
+index d2147c50f..d4ad7777d 100644
+--- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf
++++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf
+@@ -52,6 +52,9 @@ state.unplugged = unknown
+ [Jack Headphone Mic]
+ required-any = any
+ 
++[Jack Headphone - Output]
++required-any = any
++
+ [Element Hardware Master]
+ switch = mute
+ volume = merge
+diff --git a/src/modules/alsa/mixer/paths/analog-output-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-speaker.conf
+index 6f9968e1f..27a3983d5 100644
+--- a/src/modules/alsa/mixer/paths/analog-output-speaker.conf
++++ b/src/modules/alsa/mixer/paths/analog-output-speaker.conf
+@@ -69,6 +69,9 @@ required-any = any
+ state.plugged = unknown
+ state.unplugged = unknown
+ 
++[Jack Speaker - Output]
++required-any = any
++
+ [Element Hardware Master]
+ switch = mute
+ volume = merge
+-- 
+2.17.1
+
diff -pruN 16.1+dfsg1-2/debian/patches/0001-card-restore-setting-preferred-ports-in-entry_from_c.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0001-card-restore-setting-preferred-ports-in-entry_from_c.patch
--- 16.1+dfsg1-2/debian/patches/0001-card-restore-setting-preferred-ports-in-entry_from_c.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0001-card-restore-setting-preferred-ports-in-entry_from_c.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,43 @@
+From 484b69863f0740cabf1a4e37eae92ffa8d18ee32 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Thu, 11 Nov 2021 19:05:20 +0800
+Subject: [PATCH] card-restore: setting preferred ports in entry_from_card
+
+If the preferred ports are not set in this function, the
+entrys_equal() always returns false in the card_put_hook_callback().
+This will make the entry be written into the metadata and the
+preferred ports will be cleaned by a mistake.
+
+And we met a hdmi audio bug which has sth to do with this issue, on
+the machines with the legacy HDA audio driver, the hdmi port has lower
+priority than speaker, users need to manually select the hdmi to be
+active output port, then the preferred output port is hdmi for this
+sound card, after reboot, the card_put_hook_callback() in the
+module-card-restore.c will be called and the preferred ports are
+cleaned by a mistake, then the hdmi output port or hdmi sink couldn't
+switch to be active after reboot or resume automatically. That is
+because the preferred ports are cleaned and hdmi port has lower
+priority than speaker, the profile_good_for_output() in the
+module-switch-on-port-available.c always returns false.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+---
+ src/modules/module-card-restore.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+Index: pulseaudio-15.99.1/src/modules/module-card-restore.c
+===================================================================
+--- pulseaudio-15.99.1.orig/src/modules/module-card-restore.c
++++ pulseaudio-15.99.1/src/modules/module-card-restore.c
+@@ -163,6 +163,11 @@ static struct entry *entry_from_card(pa_
+     if (card->preferred_output_port)
+         entry->preferred_output_port = pa_xstrdup(card->preferred_output_port->name);
+ 
++    if (card->preferred_input_port)
++        entry->preferred_input_port = pa_xstrdup(card->preferred_input_port->name);
++    if (card->preferred_output_port)
++        entry->preferred_output_port = pa_xstrdup(card->preferred_output_port->name);
++
+     PA_HASHMAP_FOREACH(port, card->ports, state) {
+         p_info = port_info_new(port);
+         pa_assert_se(pa_hashmap_put(entry->ports, p_info->name, p_info) >= 0);
diff -pruN 16.1+dfsg1-2/debian/patches/0001-volume-config-changes.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0001-volume-config-changes.patch
--- 16.1+dfsg1-2/debian/patches/0001-volume-config-changes.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0001-volume-config-changes.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,11 @@
+Index: pulseaudio-13.99.1/src/daemon/daemon.conf.in
+===================================================================
+--- pulseaudio-13.99.1.orig/src/daemon/daemon.conf.in
++++ pulseaudio-13.99.1/src/daemon/daemon.conf.in
+@@ -93,5 +93,5 @@ ifelse(@HAVE_SYS_RESOURCE_H@, 1, [dnl
+ ; default-fragment-size-msec = 25
+ 
+ ; enable-deferred-volume = yes
+-; deferred-volume-safety-margin-usec = 8000
++deferred-volume-safety-margin-usec = 1
+ ; deferred-volume-extra-delay-usec = 0
diff -pruN 16.1+dfsg1-2/debian/patches/0015-bluetooth-Amend-writeout-to-send-more-initial-frames.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0015-bluetooth-Amend-writeout-to-send-more-initial-frames.patch
--- 16.1+dfsg1-2/debian/patches/0015-bluetooth-Amend-writeout-to-send-more-initial-frames.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0015-bluetooth-Amend-writeout-to-send-more-initial-frames.patch	2023-02-15 01:44:55.000000000 +0000
@@ -0,0 +1,51 @@
+From: "Igor V. Kovalenko" <igor.v.kovalenko@gmail.com>
+Date: Mon, 6 Feb 2023 09:38:45 +0300
+Subject: bluetooth: Amend writeout to send more initial frames
+
+When bluetooth transport has both both sink and source, pulseaudio would
+synchronize writing out frames with reading frames from peer to make fair
+schedule of reads and writes. Pulseaudio allows two blocks of data to be sent to
+peer before synchronizing writes with reads just in case that peer implements
+similar write schedule.
+
+It could happen that first blocks are still missed by peer, which would cause
+pulseaudio writes to stall waiting for first frames from peer.
+
+Fix this by allowing more data frames out until data from peer is actually
+received.
+
+Closes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1424
+Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/777>
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+---
+ src/modules/bluetooth/module-bluez5-device.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
+index 767482e..a30372e 100644
+--- a/src/modules/bluetooth/module-bluez5-device.c
++++ b/src/modules/bluetooth/module-bluez5-device.c
+@@ -1523,8 +1523,8 @@ static void thread_func(void *userdata) {
+                     writable = true;
+ 
+                 /* If we have a source, we let the source determine the timing
+-                 * for the sink */
+-                if (have_source) {
++                 * for the sink unless peer has not sent any data yet */
++                if (have_source && u->read_index > 0) {
+ 
+                     /* If the stream is writable, send some data if necessary */
+                     if (writable) {
+@@ -1635,6 +1635,12 @@ static void thread_func(void *userdata) {
+                             goto fail;
+ 
+                         if (result) {
++                            if (have_source && u->read_index <= 0) {
++                                /* We have a source but peer has not sent any data yet, log this */
++                                if (pa_log_ratelimit(PA_LOG_DEBUG))
++                                    pa_log_debug("Still no data received from source, sent one more block to sink");
++                            }
++
+                             writable = false;
+                             have_written = true;
+                         }
diff -pruN 16.1+dfsg1-2/debian/patches/0016-check_off_profile_when_switching_profile.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0016-check_off_profile_when_switching_profile.patch
--- 16.1+dfsg1-2/debian/patches/0016-check_off_profile_when_switching_profile.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0016-check_off_profile_when_switching_profile.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,54 @@
+From: Jeremy Szu <jeremy.szu@canonical.com>
+Date: Tue, 25 May 2021 12:30:57 +0000
+Subject: check_off_profile_when_switching_profile
+
+If the current active profile is off, it has no sinks and sources, and
+if users plug a headset to the audio port, the profile including this
+audio port becomes available and should be selected as active profile.
+
+But with the current design, the profile_good_for_output() will return
+false because the sources in off profile and target profile doesn't
+match.
+
+For example:
+(Before users plug headset)
+Profiles:
+         HiFi (Speaker): Default (sinks: 1, sources: 1, priority: 8100, available: no)
+         HiFi (Headphones): Default (sinks: 1, sources: 1, priority: 8200, available: no)
+         off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
+Active Profile: off
+
+(After users plug headset)
+Profiles:
+         HiFi (Speaker): Default (sinks: 1, sources: 1, priority: 8100, available: yes)
+         HiFi (Headphones): Default (sinks: 1, sources: 1, priority: 8200, available: yes)
+         off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
+Active Profile: off
+---
+ src/modules/module-switch-on-port-available.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: pulseaudio/src/modules/module-switch-on-port-available.c
+===================================================================
+--- pulseaudio.orig/src/modules/module-switch-on-port-available.c
++++ pulseaudio/src/modules/module-switch-on-port-available.c
+@@ -74,6 +74,9 @@ static bool profile_good_for_output(pa_c
+     if (pa_safe_streq(card->active_profile->name, "off"))
+         return true;
+ 
++    if (pa_safe_streq(card->active_profile->name, "off"))
++        return true;
++
+     if (!pa_safe_streq(card->active_profile->input_name, profile->input_name))
+         return false;
+ 
+@@ -108,6 +111,9 @@ static bool profile_good_for_input(pa_ca
+ 
+     if (pa_safe_streq(card->active_profile->name, "off"))
+         return true;
++
++    if (pa_safe_streq(card->active_profile->name, "off"))
++        return true;
+ 
+     if (!pa_safe_streq(card->active_profile->output_name, profile->output_name))
+         return false;
diff -pruN 16.1+dfsg1-2/debian/patches/0016-nodisplay-autostart.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0016-nodisplay-autostart.patch
--- 16.1+dfsg1-2/debian/patches/0016-nodisplay-autostart.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0016-nodisplay-autostart.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,14 @@
+Description: Clean up Startup Applications dialog by hiding default apps
+Author: Michael Terry <michael.terry@canonical.com>
+Bug-Ubuntu: https://launchpad.net/bugs/803917
+Forwarded: not-needed
+
+Index: pulseaudio/src/daemon/pulseaudio.desktop.in
+===================================================================
+--- pulseaudio.orig/src/daemon/pulseaudio.desktop.in
++++ pulseaudio/src/daemon/pulseaudio.desktop.in
+@@ -8,3 +8,4 @@ Type=Application
+ X-GNOME-Autostart-Phase=Initialization
+ X-GNOME-HiddenUnderSystemd=true
+ X-KDE-autostart-phase=1
++NoDisplay=true
diff -pruN 16.1+dfsg1-2/debian/patches/0030-load-module-switch-on-connect.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0030-load-module-switch-on-connect.patch
--- 16.1+dfsg1-2/debian/patches/0030-load-module-switch-on-connect.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0030-load-module-switch-on-connect.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,16 @@
+Index: pulseaudio/src/daemon/default.pa.in
+===================================================================
+--- pulseaudio.orig/src/daemon/default.pa.in
++++ pulseaudio/src/daemon/default.pa.in
+@@ -33,6 +33,11 @@ load-module module-augment-properties
+ ### Should be after module-*-restore but before module-*-detect
+ load-module module-switch-on-port-available
+ 
++### Use hot-plugged devices like Bluetooth or USB automatically (LP: #1702794)
++.ifexists module-switch-on-connect.so
++load-module module-switch-on-connect
++.endif
++
+ ### Load audio drivers statically
+ ### (it's probably better to not load these drivers manually, but instead
+ ### use module-udev-detect -- see below -- for doing this automatically)
diff -pruN 16.1+dfsg1-2/debian/patches/0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch
--- 16.1+dfsg1-2/debian/patches/0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0031-lp1847570-Revert-switch-on-connect-Do-not-ignore-HDMI-sinks.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,34 @@
+Description: Revert "switch-on-connect: Do not ignore HDMI sinks"
+ This reverts commit bae8c16bfadb43c596b03f9c7ff7c9e9f1709b76.
+ While upstream is aware of this commit causing problems they are instead
+ aiming for some kind of non-reverting fix in future for PulseAudio 14.0.
+Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
+Bug: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/749
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1847570
+Forwarded: not-needed
+Last-Update: 2019-12-11
+
+Index: pulseaudio-13.99.1/src/modules/module-switch-on-connect.c
+===================================================================
+--- pulseaudio-13.99.1.orig/src/modules/module-switch-on-connect.c
++++ pulseaudio-13.99.1/src/modules/module-switch-on-connect.c
+@@ -76,14 +76,11 @@ static pa_hook_result_t sink_put_hook_ca
+ 
+     pa_log_debug("Trying to switch to new sink %s", sink->name);
+ 
+-    /* Don't switch to any internal devices except HDMI */
+-    s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_STRING);
+-    if (s && !pa_startswith(s, "hdmi")) {
+-        s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_BUS);
+-        if (pa_safe_streq(s, "pci") || pa_safe_streq(s, "isa")) {
+-            pa_log_debug("Refusing to switch to sink on %s bus", s);
+-            return PA_HOOK_OK;
+-        }
++    /* Don't switch to any internal devices */
++    s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_BUS);
++    if (pa_safe_streq(s, "pci") || pa_safe_streq(s, "isa")) {
++        pa_log_debug("Refusing to switch to sink on %s bus", s);
++        return PA_HOOK_OK;
+     }
+ 
+     /* Ignore sinks matching the blacklist regex */
diff -pruN 16.1+dfsg1-2/debian/patches/0406-tagstruct-add-copy-method.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0406-tagstruct-add-copy-method.patch
--- 16.1+dfsg1-2/debian/patches/0406-tagstruct-add-copy-method.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0406-tagstruct-add-copy-method.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,48 @@
+From 3560cafb03fc62745874077fb1153ec8d0cc59ac Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Thu, 27 Aug 2015 15:27:16 +0200
+Subject: [PATCH] Add tagstruct copy method
+
+Originally by Wim Taymans, backported by David Henningsson
+---
+ src/pulsecore/tagstruct.c | 14 ++++++++++++++
+ src/pulsecore/tagstruct.h |  2 ++
+ 2 files changed, 16 insertions(+)
+
+Index: pulseaudio/src/pulsecore/tagstruct.c
+===================================================================
+--- pulseaudio.orig/src/pulsecore/tagstruct.c
++++ pulseaudio/src/pulsecore/tagstruct.c
+@@ -97,6 +97,19 @@ void pa_tagstruct_free(pa_tagstruct*t) {
+         pa_xfree(t);
+ }
+ 
++pa_tagstruct *pa_tagstruct_copy(pa_tagstruct*t) {
++    pa_tagstruct*tc;
++
++    tc = pa_xnew(pa_tagstruct, 1);
++    tc->data = pa_xmemdup(t->data, t->length);
++    tc->allocated = t->length;
++    tc->length = t->length;
++    tc->rindex = 0;
++    tc->type = PA_TAGSTRUCT_DYNAMIC;
++
++    return tc;
++}
++
+ static inline void extend(pa_tagstruct*t, size_t l) {
+     pa_assert(t);
+     pa_assert(t->type != PA_TAGSTRUCT_FIXED);
+Index: pulseaudio/src/pulsecore/tagstruct.h
+===================================================================
+--- pulseaudio.orig/src/pulsecore/tagstruct.h
++++ pulseaudio/src/pulsecore/tagstruct.h
+@@ -64,6 +64,8 @@ pa_tagstruct *pa_tagstruct_new(void);
+ pa_tagstruct *pa_tagstruct_new_fixed(const uint8_t* data, size_t length);
+ void pa_tagstruct_free(pa_tagstruct*t);
+ 
++pa_tagstruct *pa_tagstruct_copy(pa_tagstruct*t);
++
+ int pa_tagstruct_eof(pa_tagstruct*t);
+ const uint8_t* pa_tagstruct_data(pa_tagstruct*t, size_t *l);
+ 
diff -pruN 16.1+dfsg1-2/debian/patches/0407-access-Add-access-control-hooks.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0407-access-Add-access-control-hooks.patch
--- 16.1+dfsg1-2/debian/patches/0407-access-Add-access-control-hooks.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0407-access-Add-access-control-hooks.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,179 @@
+From: Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com>
+Date: Fri, 7 Aug 2015 12:19:50 +0200
+Subject: [PATCH 1/4] access: Add access control hooks
+
+Add hooks to core to check if certain operations are allowed.
+---
+ src/Makefile.am        |   1 +
+ src/pulsecore/access.h | 105 +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/pulsecore/core.c   |   5 +++
+ src/pulsecore/core.h   |   3 ++
+ 4 files changed, 114 insertions(+)
+ create mode 100644 src/pulsecore/access.h
+
+Index: pulseaudio/src/pulsecore/access.h
+===================================================================
+--- /dev/null
++++ pulseaudio/src/pulsecore/access.h
+@@ -0,0 +1,105 @@
++#ifndef fooaccesshfoo
++#define fooaccesshfoo
++
++/***
++  This file is part of PulseAudio.
++
++  Copyright 2004-2006 Lennart Poettering
++            2015 Wim Taymans <wtaymans@redhat.com>
++
++  PulseAudio is free software; you can redistribute it and/or modify
++  it under the terms of the GNU Lesser General Public License as
++  published by the Free Software Foundation; either version 2.1 of the
++  License, or (at your option) any later version.
++
++  PulseAudio is distributed in the hope that it will be useful, but
++  WITHOUT ANY WARRANTY; without even the implied warranty of
++  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++  Lesser General Public License for more details.
++
++  You should have received a copy of the GNU Lesser General Public
++  License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
++***/
++
++#include <sys/types.h>
++
++#include <pulsecore/client.h>
++
++typedef enum pa_access_hook {
++    /* The zero value is used to indicate "no such hook" */
++    PA_ACCESS_HOOK_NONE,
++
++    /* context */
++    PA_ACCESS_HOOK_EXIT_DAEMON,
++    PA_ACCESS_HOOK_SET_DEFAULT_SINK,
++    PA_ACCESS_HOOK_SET_DEFAULT_SOURCE,
++
++    /* introspection */
++    PA_ACCESS_HOOK_GET_SINK_INFO,
++    PA_ACCESS_HOOK_SET_SINK_VOLUME,
++    PA_ACCESS_HOOK_SET_SINK_MUTE,
++    PA_ACCESS_HOOK_SUSPEND_SINK,
++    PA_ACCESS_HOOK_SET_SINK_PORT,
++
++    PA_ACCESS_HOOK_GET_SOURCE_INFO,
++    PA_ACCESS_HOOK_SET_SOURCE_VOLUME,
++    PA_ACCESS_HOOK_SET_SOURCE_MUTE,
++    PA_ACCESS_HOOK_SUSPEND_SOURCE,
++    PA_ACCESS_HOOK_SET_SOURCE_PORT,
++
++    PA_ACCESS_HOOK_GET_SERVER_INFO,
++
++    PA_ACCESS_HOOK_GET_MODULE_INFO,
++    PA_ACCESS_HOOK_LOAD_MODULE,
++    PA_ACCESS_HOOK_UNLOAD_MODULE,
++
++    PA_ACCESS_HOOK_GET_CLIENT_INFO,
++    PA_ACCESS_HOOK_KILL_CLIENT,
++
++    PA_ACCESS_HOOK_GET_CARD_INFO,
++    PA_ACCESS_HOOK_SET_CARD_PROFILE,
++    PA_ACCESS_HOOK_SET_PORT_LATENCY_OFFSET,
++
++    PA_ACCESS_HOOK_GET_SINK_INPUT_INFO,
++    PA_ACCESS_HOOK_MOVE_SINK_INPUT,
++    PA_ACCESS_HOOK_SET_SINK_INPUT_VOLUME,
++    PA_ACCESS_HOOK_SET_SINK_INPUT_MUTE,
++    PA_ACCESS_HOOK_KILL_SINK_INPUT,
++
++    PA_ACCESS_HOOK_GET_SOURCE_OUTPUT_INFO,
++    PA_ACCESS_HOOK_MOVE_SOURCE_OUTPUT,
++    PA_ACCESS_HOOK_SET_SOURCE_OUTPUT_VOLUME,
++    PA_ACCESS_HOOK_SET_SOURCE_OUTPUT_MUTE,
++    PA_ACCESS_HOOK_KILL_SOURCE_OUTPUT,
++
++    PA_ACCESS_HOOK_STAT,
++
++    PA_ACCESS_HOOK_GET_SAMPLE_INFO,
++    /* sample cache */
++    PA_ACCESS_HOOK_CONNECT_UPLOAD,
++    PA_ACCESS_HOOK_REMOVE_SAMPLE,
++    PA_ACCESS_HOOK_PLAY_SAMPLE,
++    /* stream */
++    PA_ACCESS_HOOK_CONNECT_PLAYBACK,
++    PA_ACCESS_HOOK_CONNECT_RECORD,
++    /* extension */
++    PA_ACCESS_HOOK_EXTENSION,
++
++    PA_ACCESS_HOOK_FILTER_SUBSCRIBE_EVENT,
++
++    PA_ACCESS_HOOK_MAX
++} pa_access_hook_t;
++
++typedef struct pa_access_data pa_access_data;
++
++struct pa_access_data {
++    pa_access_hook_t hook;
++    uint32_t client_index;
++    uint32_t object_index;
++    pa_subscription_event_type_t event;
++    const char *name;
++
++    void (*async_finish_cb) (pa_access_data *data, bool res);
++};
++
++#endif
+Index: pulseaudio/src/pulsecore/core.c
+===================================================================
+--- pulseaudio.orig/src/pulsecore/core.c
++++ pulseaudio/src/pulsecore/core.c
+@@ -195,6 +195,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);
+ 
++    for (j = 0; j < PA_ACCESS_HOOK_MAX; j++)
++        pa_hook_init(&c->access[j], c);
++
+     pa_random(&c->cookie, sizeof(c->cookie));
+ 
+ #ifdef SIGPIPE
+@@ -267,6 +270,8 @@ static void core_free(pa_object *o) {
+ 
+     for (j = 0; j < PA_CORE_HOOK_MAX; j++)
+         pa_hook_done(&c->hooks[j]);
++    for (j = 0; j < PA_ACCESS_HOOK_MAX; j++)
++        pa_hook_done(&c->access[j]);
+ 
+     pa_xfree(c);
+ }
+Index: pulseaudio/src/pulsecore/core.h
+===================================================================
+--- pulseaudio.orig/src/pulsecore/core.h
++++ pulseaudio/src/pulsecore/core.h
+@@ -53,6 +53,7 @@ typedef enum pa_suspend_cause {
+ #include <pulsecore/source.h>
+ #include <pulsecore/core-subscribe.h>
+ #include <pulsecore/msgobject.h>
++#include <pulsecore/access.h>
+ 
+ typedef enum pa_server_type {
+     PA_SERVER_TYPE_UNSET,
+@@ -235,6 +236,8 @@ struct pa_core {
+ 
+     /* hooks */
+     pa_hook hooks[PA_CORE_HOOK_MAX];
++    /* access hooks */
++    pa_hook access[PA_ACCESS_HOOK_MAX];
+ };
+ 
+ PA_DECLARE_PUBLIC_CLASS(pa_core);
+Index: pulseaudio/src/meson.build
+===================================================================
+--- pulseaudio.orig/src/meson.build
++++ pulseaudio/src/meson.build
+@@ -13,6 +13,7 @@ libpulsecommon_sources = [
+   'pulse/timeval.c',
+   'pulse/rtclock.c',
+   'pulse/volume.c',
++  'pulsecore/access.h',
+   'pulsecore/authkey.c',
+   'pulsecore/conf-parser.c',
+   'pulsecore/core-error.c',
diff -pruN 16.1+dfsg1-2/debian/patches/0408-protocol-native-add-access-checks.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0408-protocol-native-add-access-checks.patch
--- 16.1+dfsg1-2/debian/patches/0408-protocol-native-add-access-checks.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0408-protocol-native-add-access-checks.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,462 @@
+From 1a7e06f33c2c7a684eaebc79ce77c6efce29af1d Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wim.taymans@gmail.com>
+Date: Tue, 7 Apr 2015 17:13:16 +0200
+Subject: [PATCH 3/5] protocol-native: add access checks
+
+Call the hooks in various places to check if an action is allowed or
+not.
+
+The hook can return PA_HOOK_OK to allow an action, PA_HOOK_STOP to
+deny an action.
+
+Returning PA_HOOK_CANCEL will handle the result asynchronously.
+This is implemented by saving the state of the current command and
+exiting the command (going back to the mainloop) without reply.
+When the access check completes, it will call async_finish_cb, which
+will use the saved state to call the original command again. The access
+check will eventually return OK or STOP and the command can complete
+and send a reply.
+---
+ src/pulsecore/protocol-native.c | 219 +++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 217 insertions(+), 2 deletions(-)
+
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/protocol-native.c
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/protocol-native.c
++++ pulseaudio-16.1+dfsg1/src/pulsecore/protocol-native.c
+@@ -1854,6 +1854,25 @@ if (!(expression)) { \
+ } \
+ } while(0);
+ 
++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);
++
++#define CHECK_ACCESS_STMT(c, command, tag, idx, name, async, denied) { \
++  pa_hook_result_t res = check_access(pd, command, tag, t, userdata, idx, 0, name); \
++  if (res == PA_HOOK_STOP) { \
++      denied; \
++  } else if (res == PA_HOOK_CANCEL) { \
++      async; \
++  } \
++};
++
++#define CHECK_ACCESS_GOTO(c, command, tag, idx, name, label) \
++    CHECK_ACCESS_STMT(c, command, tag, idx, name, \
++        goto label, pa_pstream_send_error(c->pstream, tag, PA_ERR_ACCESS); goto label)
++
++#define CHECK_ACCESS(c, command, tag, idx, name) \
++    CHECK_ACCESS_STMT(c, command, tag, idx, name, \
++        return, pa_pstream_send_error(c->pstream, tag, PA_ERR_ACCESS); return)
++
+ static pa_tagstruct *reply_new(uint32_t tag) {
+     pa_tagstruct *reply;
+ 
+@@ -1931,6 +1950,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);
+ 
++    CHECK_ACCESS_GOTO(c, command, tag, PA_INVALID_INDEX, NULL, finish);
++
+     p = pa_proplist_new();
+ 
+     if (name)
+@@ -2252,6 +2273,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);
+ 
++    CHECK_ACCESS_GOTO(c, command, tag, PA_INVALID_INDEX, NULL, finish);
++
+     p = pa_proplist_new();
+ 
+     if (name)
+@@ -2459,6 +2482,7 @@ static void command_exit(pa_pdispatch *p
+     }
+ 
+     CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
++    CHECK_ACCESS(c, command, tag, PA_INVALID_INDEX, NULL);
+     ret = pa_core_exit(c->protocol->core, false, 0);
+     CHECK_VALIDITY(c->pstream, ret >= 0, tag, PA_ERR_ACCESS);
+ 
+@@ -2861,6 +2885,7 @@ static void command_stat(pa_pdispatch *p
+     }
+ 
+     CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
++    CHECK_ACCESS(c, command, tag, PA_INVALID_INDEX, NULL);
+ 
+     stat = pa_mempool_get_stat(c->protocol->core->mempool);
+ 
+@@ -2987,6 +3012,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);
+ 
++    CHECK_ACCESS(c, command, tag, PA_INVALID_INDEX, NULL);
++
+     p = pa_proplist_new();
+ 
+     if ((c->version >= 13 && pa_tagstruct_get_proplist(t, p) < 0) ||
+@@ -3085,6 +3112,8 @@ static void command_play_sample(pa_pdisp
+ 
+     CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
+ 
++    CHECK_ACCESS(c, command, tag, sink->index, name);
++
+     p = pa_proplist_new();
+ 
+     if ((c->version >= 13 && pa_tagstruct_get_proplist(t, p) < 0) ||
+@@ -3128,6 +3157,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);
+ 
++    CHECK_ACCESS(c, command, tag, PA_INVALID_INDEX, name);
++
+     if (pa_scache_remove_item(c->protocol->core, name) < 0) {
+         pa_pstream_send_error(c->pstream, tag, PA_ERR_NOENTITY);
+         return;
+@@ -3591,6 +3622,8 @@ static void command_get_info(pa_pdispatc
+         return;
+     }
+ 
++    CHECK_ACCESS(c, command, tag, idx, name);
++
+     reply = reply_new(tag);
+     if (sink)
+         sink_fill_tagstruct(c, reply, sink);
+@@ -3651,6 +3684,8 @@ static void command_get_info_list(pa_pdi
+ 
+     if (i) {
+         PA_IDXSET_FOREACH(p, i, idx) {
++            CHECK_ACCESS_STMT(c, command, tag, idx, NULL, goto async, continue);
++
+             if (command == PA_COMMAND_GET_SINK_INFO_LIST)
+                 sink_fill_tagstruct(c, reply, p);
+             else if (command == PA_COMMAND_GET_SOURCE_INFO_LIST)
+@@ -3673,6 +3708,11 @@ static void command_get_info_list(pa_pdi
+     }
+ 
+     pa_pstream_send_tagstruct(c->pstream, reply);
++    return;
++
++async:
++    pa_tagstruct_free(reply);
++    return;
+ }
+ 
+ static void command_get_server_info(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) {
+@@ -3692,6 +3732,8 @@ static void command_get_server_info(pa_p
+ 
+     CHECK_VALIDITY(c->pstream, c->authorized, tag, PA_ERR_ACCESS);
+ 
++    CHECK_ACCESS(c, command, tag, PA_INVALID_INDEX, NULL);
++
+     reply = reply_new(tag);
+     pa_tagstruct_puts(reply, PACKAGE_NAME);
+     pa_tagstruct_puts(reply, PACKAGE_VERSION);
+@@ -3828,6 +3870,8 @@ static void command_set_volume(
+ 
+     client_name = pa_strnull(pa_proplist_gets(c->client->proplist, PA_PROP_APPLICATION_PROCESS_BINARY));
+ 
++    CHECK_ACCESS(c, command, tag, idx, name);
++
+     if (sink) {
+         CHECK_VALIDITY(c->pstream, volume.channels == 1 || pa_cvolume_compatible(&volume, &sink->sample_spec), tag, PA_ERR_INVALID);
+ 
+@@ -3923,6 +3967,8 @@ static void command_set_mute(
+ 
+     CHECK_VALIDITY(c->pstream, si || so || sink || source, tag, PA_ERR_NOENTITY);
+ 
++    CHECK_ACCESS(c, command, tag, idx, name);
++
+     client_name = pa_strnull(pa_proplist_gets(c->client->proplist, PA_PROP_APPLICATION_PROCESS_BINARY));
+ 
+     if (sink) {
+@@ -4386,6 +4432,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);
++        CHECK_ACCESS(c, command, tag, source->index, s);
+ 
+         pa_core_set_configured_default_source(c->protocol->core, source->name);
+     } else {
+@@ -4394,6 +4441,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);
++        CHECK_ACCESS(c, command, tag, sink->index, s);
+ 
+         pa_core_set_configured_default_sink(c->protocol->core, sink->name);
+     }
+@@ -4461,6 +4509,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);
++        CHECK_ACCESS(c, command, tag, idx, NULL);
+ 
+         pa_native_connection_ref(c);
+         pa_client_kill(client);
+@@ -4470,6 +4519,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);
++        CHECK_ACCESS(c, command, tag, idx, NULL);
+ 
+         pa_native_connection_ref(c);
+         pa_sink_input_kill(s);
+@@ -4480,6 +4530,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);
++        CHECK_ACCESS(c, command, tag, idx, NULL);
+ 
+         pa_native_connection_ref(c);
+         pa_source_output_kill(s);
+@@ -4509,6 +4560,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);
+ 
++    CHECK_ACCESS(c, command, tag, PA_INVALID_INDEX, name);
++
+     if (pa_module_load(&m, c->protocol->core, name, argument) < 0) {
+         pa_pstream_send_error(c->pstream, tag, PA_ERR_MODINITFAILED);
+         return;
+@@ -4537,6 +4590,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);
+ 
++    CHECK_ACCESS(c, command, tag, idx, NULL);
++
+     pa_module_unload_request(m, false);
+     pa_pstream_send_simple_ack(c->pstream, tag);
+ }
+@@ -4575,6 +4630,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);
++        CHECK_ACCESS(c, command, tag, idx, sink->name);
+ 
+         if (pa_sink_input_move_to(si, sink, true) < 0) {
+             pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID);
+@@ -4594,6 +4650,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);
++        CHECK_ACCESS(c, command, tag, idx, source->name);
+ 
+         if (pa_source_output_move_to(so, source, true) < 0) {
+             pa_pstream_send_error(c->pstream, tag, PA_ERR_INVALID);
+@@ -4629,6 +4686,8 @@ static void command_suspend(pa_pdispatch
+ 
+         if (idx == PA_INVALID_INDEX && name && !*name) {
+ 
++            CHECK_ACCESS(c, command, tag, idx, name);
++
+             pa_log_debug("%s all sinks", b ? "Suspending" : "Resuming");
+ 
+             if (pa_sink_suspend_all(c->protocol->core, b, PA_SUSPEND_USER) < 0) {
+@@ -4645,6 +4704,8 @@ static void command_suspend(pa_pdispatch
+ 
+             CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
+ 
++            CHECK_ACCESS(c, command, tag, sink->index, name);
++
+             pa_log_debug("%s of sink %s requested by client %" PRIu32 ".",
+                          b ? "Suspending" : "Resuming", sink->name, c->client->index);
+ 
+@@ -4659,6 +4720,8 @@ static void command_suspend(pa_pdispatch
+ 
+         if (idx == PA_INVALID_INDEX && name && !*name) {
+ 
++            CHECK_ACCESS(c, command, tag, idx, name);
++
+             pa_log_debug("%s all sources", b ? "Suspending" : "Resuming");
+ 
+             if (pa_source_suspend_all(c->protocol->core, b, PA_SUSPEND_USER) < 0) {
+@@ -4676,6 +4739,8 @@ static void command_suspend(pa_pdispatch
+ 
+             CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
+ 
++            CHECK_ACCESS(c, command, tag, source->index, name);
++
+             pa_log_debug("%s of source %s requested by client %" PRIu32 ".",
+                          b ? "Suspending" : "Resuming", source->name, c->client->index);
+ 
+@@ -4718,6 +4783,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);
++    
++    CHECK_ACCESS(c, command, tag, m->index, name);
+ 
+     cb = pa_hashmap_get(c->protocol->extensions, m);
+     CHECK_VALIDITY(c->pstream, cb, tag, PA_ERR_NOEXTENSION);
+@@ -4815,6 +4882,8 @@ static void command_set_card_profile(pa_
+                 card->name,
+                 profile->name);
+ 
++    CHECK_ACCESS(c, command, tag, card->index, profile_name);
++
+     if ((ret = pa_card_set_profile(card, profile, true)) < 0) {
+         pa_pstream_send_error(c->pstream, tag, -ret);
+         return;
+@@ -4855,6 +4924,8 @@ static void command_set_sink_or_source_p
+ 
+         CHECK_VALIDITY(c->pstream, sink, tag, PA_ERR_NOENTITY);
+ 
++        CHECK_ACCESS(c, command, tag, sink->index, name);
++
+         if ((ret = pa_sink_set_port(sink, port, true)) < 0) {
+             pa_pstream_send_error(c->pstream, tag, -ret);
+             return;
+@@ -4871,6 +4942,8 @@ static void command_set_sink_or_source_p
+ 
+         CHECK_VALIDITY(c->pstream, source, tag, PA_ERR_NOENTITY);
+ 
++        CHECK_ACCESS(c, command, tag, source->index, name);
++
+         if ((ret = pa_source_set_port(source, port, true)) < 0) {
+             pa_pstream_send_error(c->pstream, tag, -ret);
+             return;
+@@ -4915,6 +4988,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);
+ 
++    CHECK_ACCESS(c, command, tag, card->index, port_name);
++
+     pa_device_port_set_latency_offset(port, offset);
+ 
+     pa_pstream_send_simple_ack(c->pstream, tag);
+@@ -5568,3 +5643,136 @@ pa_client* pa_native_connection_get_clie
+ 
+     return c->client;
+ }
++
++static const pa_access_hook_t map_table[PA_COMMAND_MAX] = {
++    /* CLIENT -> SERVER */
++    [PA_COMMAND_EXIT] = PA_ACCESS_HOOK_EXIT_DAEMON,
++    [PA_COMMAND_SET_DEFAULT_SINK] = PA_ACCESS_HOOK_SET_DEFAULT_SINK,
++    [PA_COMMAND_SET_DEFAULT_SOURCE] = PA_ACCESS_HOOK_SET_DEFAULT_SOURCE,
++
++    [PA_COMMAND_GET_SINK_INFO] = PA_ACCESS_HOOK_GET_SINK_INFO,
++    [PA_COMMAND_GET_SINK_INFO_LIST] = PA_ACCESS_HOOK_GET_SINK_INFO,
++    [PA_COMMAND_SET_SINK_VOLUME] = PA_ACCESS_HOOK_SET_SINK_VOLUME,
++    [PA_COMMAND_SET_SINK_MUTE] = PA_ACCESS_HOOK_SET_SINK_MUTE,
++    [PA_COMMAND_SUSPEND_SINK] = PA_ACCESS_HOOK_SUSPEND_SINK,
++    [PA_COMMAND_SET_SINK_PORT] = PA_ACCESS_HOOK_SET_SINK_PORT,
++
++    [PA_COMMAND_GET_SOURCE_INFO] = PA_ACCESS_HOOK_GET_SOURCE_INFO,
++    [PA_COMMAND_GET_SOURCE_INFO_LIST] = PA_ACCESS_HOOK_GET_SOURCE_INFO,
++    [PA_COMMAND_SET_SOURCE_VOLUME] = PA_ACCESS_HOOK_SET_SOURCE_VOLUME,
++    [PA_COMMAND_SET_SOURCE_MUTE] = PA_ACCESS_HOOK_SET_SOURCE_MUTE,
++    [PA_COMMAND_SUSPEND_SOURCE] = PA_ACCESS_HOOK_SUSPEND_SOURCE,
++    [PA_COMMAND_SET_SOURCE_PORT] = PA_ACCESS_HOOK_SET_SOURCE_PORT,
++
++    [PA_COMMAND_GET_SERVER_INFO] = PA_ACCESS_HOOK_GET_SERVER_INFO,
++
++    [PA_COMMAND_GET_MODULE_INFO] = PA_ACCESS_HOOK_GET_MODULE_INFO,
++    [PA_COMMAND_GET_MODULE_INFO_LIST] = PA_ACCESS_HOOK_GET_MODULE_INFO,
++    [PA_COMMAND_LOAD_MODULE] = PA_ACCESS_HOOK_LOAD_MODULE,
++    [PA_COMMAND_UNLOAD_MODULE] = PA_ACCESS_HOOK_UNLOAD_MODULE,
++
++    [PA_COMMAND_GET_CLIENT_INFO] = PA_ACCESS_HOOK_GET_CLIENT_INFO,
++    [PA_COMMAND_GET_CLIENT_INFO_LIST] = PA_ACCESS_HOOK_GET_CLIENT_INFO,
++    [PA_COMMAND_KILL_CLIENT] = PA_ACCESS_HOOK_KILL_CLIENT,
++
++    [PA_COMMAND_GET_CARD_INFO] = PA_ACCESS_HOOK_GET_CARD_INFO,
++    [PA_COMMAND_GET_CARD_INFO_LIST] = PA_ACCESS_HOOK_GET_CARD_INFO,
++    [PA_COMMAND_SET_CARD_PROFILE] = PA_ACCESS_HOOK_SET_CARD_PROFILE,
++    [PA_COMMAND_SET_PORT_LATENCY_OFFSET] = PA_ACCESS_HOOK_SET_PORT_LATENCY_OFFSET,
++
++    [PA_COMMAND_GET_SINK_INPUT_INFO] = PA_ACCESS_HOOK_GET_SINK_INPUT_INFO,
++    [PA_COMMAND_GET_SINK_INPUT_INFO_LIST] = PA_ACCESS_HOOK_GET_SINK_INPUT_INFO,
++    [PA_COMMAND_MOVE_SINK_INPUT] = PA_ACCESS_HOOK_MOVE_SINK_INPUT,
++    [PA_COMMAND_SET_SINK_INPUT_VOLUME] = PA_ACCESS_HOOK_SET_SINK_INPUT_VOLUME,
++    [PA_COMMAND_SET_SINK_INPUT_MUTE] = PA_ACCESS_HOOK_SET_SINK_INPUT_MUTE,
++    [PA_COMMAND_KILL_SINK_INPUT] = PA_ACCESS_HOOK_KILL_SINK_INPUT,
++
++    [PA_COMMAND_GET_SOURCE_OUTPUT_INFO] = PA_ACCESS_HOOK_GET_SOURCE_OUTPUT_INFO,
++    [PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST] = PA_ACCESS_HOOK_GET_SOURCE_OUTPUT_INFO,
++    [PA_COMMAND_MOVE_SOURCE_OUTPUT] = PA_ACCESS_HOOK_MOVE_SOURCE_OUTPUT,
++    [PA_COMMAND_SET_SOURCE_OUTPUT_VOLUME] = PA_ACCESS_HOOK_SET_SOURCE_OUTPUT_VOLUME,
++    [PA_COMMAND_SET_SOURCE_OUTPUT_MUTE] = PA_ACCESS_HOOK_SET_SOURCE_OUTPUT_MUTE,
++    [PA_COMMAND_KILL_SOURCE_OUTPUT] = PA_ACCESS_HOOK_KILL_SOURCE_OUTPUT,
++
++    [PA_COMMAND_STAT] = PA_ACCESS_HOOK_STAT,
++
++    [PA_COMMAND_GET_SAMPLE_INFO] = PA_ACCESS_HOOK_GET_SAMPLE_INFO,
++    [PA_COMMAND_GET_SAMPLE_INFO_LIST] = PA_ACCESS_HOOK_GET_SAMPLE_INFO,
++
++    [PA_COMMAND_CREATE_UPLOAD_STREAM] = PA_ACCESS_HOOK_CONNECT_UPLOAD,
++    [PA_COMMAND_REMOVE_SAMPLE] = PA_ACCESS_HOOK_REMOVE_SAMPLE,
++    [PA_COMMAND_PLAY_SAMPLE] = PA_ACCESS_HOOK_PLAY_SAMPLE,
++
++    [PA_COMMAND_CREATE_PLAYBACK_STREAM] = PA_ACCESS_HOOK_CONNECT_PLAYBACK,
++    [PA_COMMAND_CREATE_RECORD_STREAM] = PA_ACCESS_HOOK_CONNECT_RECORD,
++
++    [PA_COMMAND_EXTENSION] = PA_ACCESS_HOOK_EXTENSION,
++
++    /* SERVER -> CLIENT */
++    [PA_COMMAND_SUBSCRIBE_EVENT] = PA_ACCESS_HOOK_FILTER_SUBSCRIBE_EVENT
++};
++
++typedef struct pa_protocol_native_access_data {
++    pa_access_data d;
++
++    pa_pdispatch *pd;
++    uint32_t command;
++    uint32_t tag;
++    pa_tagstruct *tc;
++    void *userdata;
++} pa_protocol_native_access_data;
++
++static void check_access_finish_cb(pa_access_data *data, bool res) {
++    pa_protocol_native_access_data *d = (pa_protocol_native_access_data *) data;
++    pa_native_connection *c = PA_NATIVE_CONNECTION(d->userdata);
++
++    if (!res) {
++        pa_pstream_send_error(c->pstream, d->tag, PA_ERR_ACCESS); \
++        goto finish;
++    }
++
++    /* 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);
++
++finish:
++    pa_xfree((char *)d->d.name);
++    if (d->pd)
++        pa_pdispatch_unref(d->pd);
++    if (d->tc)
++        pa_tagstruct_free(d->tc);
++    pa_xfree(d);
++}
++
++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) {
++    pa_native_connection *c = PA_NATIVE_CONNECTION(userdata);
++    pa_hook_result_t res;
++
++    if (map_table[command]) {
++        pa_protocol_native_access_data *data;
++
++        data = pa_xnew0 (pa_protocol_native_access_data, 1);
++        data->d.client_index = c->client->index;
++        data->d.object_index = idx;
++        data->d.event = event;
++        data->d.name = name;
++        data->d.hook = map_table[command];
++
++        res = pa_hook_fire(&c->protocol->core->access[data->d.hook], data);
++        if (res == PA_HOOK_CANCEL) {
++            /* async */
++            data->d.name = pa_xstrdup(name);
++            data->d.async_finish_cb = check_access_finish_cb;
++            data->pd = pd ? pa_pdispatch_ref (pd) : NULL;
++            data->command = command;
++            data->tag = tag;
++            data->tc = t ? pa_tagstruct_copy (t) : NULL;
++            data->userdata = userdata;
++        } else {
++            pa_xfree(data);
++        }
++    } else
++        res = PA_HOOK_OK;
++
++    return res;
++}
diff -pruN 16.1+dfsg1-2/debian/patches/0409-fix-arg-parsing-after-async-hook.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0409-fix-arg-parsing-after-async-hook.patch
--- 16.1+dfsg1-2/debian/patches/0409-fix-arg-parsing-after-async-hook.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0409-fix-arg-parsing-after-async-hook.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,32 @@
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Wed, 22 Jul 2015 16:37:19 +0200
+Subject: [PATCH 4/5] Fix command argument parsing after async hook execution
+
+---
+ src/pulsecore/protocol-native.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/protocol-native.c
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/protocol-native.c
++++ pulseaudio-16.1+dfsg1/src/pulsecore/protocol-native.c
+@@ -5723,6 +5723,7 @@ typedef struct pa_protocol_native_access
+ } pa_protocol_native_access_data;
+ 
+ static void check_access_finish_cb(pa_access_data *data, bool res) {
++    uint32_t command, tag;
+     pa_protocol_native_access_data *d = (pa_protocol_native_access_data *) data;
+     pa_native_connection *c = PA_NATIVE_CONNECTION(d->userdata);
+ 
+@@ -5731,6 +5732,11 @@ static void check_access_finish_cb(pa_ac
+         goto finish;
+     }
+ 
++    pa_assert_se(pa_tagstruct_getu32(d->tc, &command) >= 0);
++    pa_assert_se(pa_tagstruct_getu32(d->tc, &tag) >= 0);
++    pa_assert(command == d->command);
++    pa_assert(tag == d->tag);
++
+     /* 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);
diff -pruN 16.1+dfsg1-2/debian/patches/0410-pa-client-peer-apparmor-label.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0410-pa-client-peer-apparmor-label.patch
--- 16.1+dfsg1-2/debian/patches/0410-pa-client-peer-apparmor-label.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0410-pa-client-peer-apparmor-label.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,195 @@
+From: James Henstridge <james.henstridge@canonical.com>
+Date: Mon, 21 Sep 2020 16:56:08 +0800
+Subject: pulsecore: expose peer AppArmor label on pa_client
+
+Forwarded: not-needed
+
+This patch uses aa_getpeercon to get the AppArmor label of the peer
+and store it in the pa_client struct.  Only the native protocol
+connection handler has been updated, as that is the only protocol with
+access control hooks.
+---
+ configure.ac                    |  6 ++++++
+ src/Makefile.am                 | 10 ++++++++++
+ src/pulsecore/client.c          |  3 +++
+ src/pulsecore/client.h          |  3 +++
+ src/pulsecore/iochannel.c       | 17 +++++++++++++++++
+ src/pulsecore/iochannel.h       |  4 ++++
+ src/pulsecore/protocol-native.c |  1 +
+ 7 files changed, 44 insertions(+)
+
+
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/client.c
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/client.c
++++ pulseaudio-16.1+dfsg1/src/pulsecore/client.c
+@@ -49,6 +49,7 @@ void pa_client_new_data_done(pa_client_n
+     pa_assert(data);
+ 
+     pa_proplist_free(data->proplist);
++    pa_xfree(data->apparmor_label);
+ }
+ 
+ pa_client *pa_client_new(pa_core *core, pa_client_new_data *data) {
+@@ -62,6 +63,7 @@ pa_client *pa_client_new(pa_core *core,
+ 
+     c = pa_xnew0(pa_client, 1);
+     c->core = core;
++    c->apparmor_label = pa_xstrdup(data->apparmor_label);
+     c->proplist = pa_proplist_copy(data->proplist);
+     c->driver = pa_xstrdup(pa_path_get_filename(data->driver));
+     c->module = data->module;
+@@ -103,6 +105,7 @@ void pa_client_free(pa_client *c) {
+ 
+     pa_proplist_free(c->proplist);
+     pa_xfree(c->driver);
++    pa_xfree(c->apparmor_label);
+     pa_xfree(c);
+ 
+     pa_core_check_idle(core);
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/client.h
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/client.h
++++ pulseaudio-16.1+dfsg1/src/pulsecore/client.h
+@@ -35,6 +35,8 @@ struct pa_client {
+     uint32_t index;
+     pa_core *core;
+ 
++    char *apparmor_label;
++
+     pa_proplist *proplist;
+     pa_module *module;
+     char *driver;
+@@ -53,6 +55,7 @@ typedef struct pa_client_new_data {
+     pa_proplist *proplist;
+     const char *driver;
+     pa_module *module;
++    char *apparmor_label;
+ } pa_client_new_data;
+ 
+ pa_client_new_data *pa_client_new_data_init(pa_client_new_data *data);
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/iochannel.c
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/iochannel.c
++++ pulseaudio-16.1+dfsg1/src/pulsecore/iochannel.c
+@@ -30,6 +30,10 @@
+ #include <sys/un.h>
+ #endif
+ 
++#ifdef HAVE_APPARMOR
++#include <sys/apparmor.h>
++#endif
++
+ #include <pulse/xmalloc.h>
+ 
+ #include <pulsecore/core-error.h>
+@@ -516,6 +520,19 @@ void pa_iochannel_socket_peer_to_string(
+     pa_socket_peer_to_string(io->ifd, s, l);
+ }
+ 
++char *pa_iochannel_socket_get_peer_apparmor_label(pa_iochannel *io) {
++    pa_assert(io);
++
++#ifdef HAVE_APPARMOR
++    char *label = NULL;
++    if (aa_getpeercon(io->ifd, &label, NULL) == -1)
++        return NULL;
++    return label;
++#else
++    return NULL;
++#endif
++}
++
+ int pa_iochannel_socket_set_rcvbuf(pa_iochannel *io, size_t l) {
+     pa_assert(io);
+ 
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/iochannel.h
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/iochannel.h
++++ pulseaudio-16.1+dfsg1/src/pulsecore/iochannel.h
+@@ -75,6 +75,10 @@ void pa_iochannel_set_callback(pa_iochan
+ /* In case the file descriptor is a socket, return a pretty-printed string in *s which describes the peer connected */
+ void pa_iochannel_socket_peer_to_string(pa_iochannel*io, char*s, size_t l);
+ 
++/* In case the file descriptor is a socket, return the apparmor label
++ * of the peer, if available. */
++char *pa_iochannel_socket_get_peer_apparmor_label(pa_iochannel *io);
++
+ /* Use setsockopt() to tune the receive and send buffers of TCP sockets */
+ int pa_iochannel_socket_set_rcvbuf(pa_iochannel*io, size_t l);
+ int pa_iochannel_socket_set_sndbuf(pa_iochannel*io, size_t l);
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/protocol-native.c
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/protocol-native.c
++++ pulseaudio-16.1+dfsg1/src/pulsecore/protocol-native.c
+@@ -5301,6 +5301,7 @@ void pa_native_protocol_connect(pa_nativ
+     pa_client_new_data_init(&data);
+     data.module = o->module;
+     data.driver = __FILE__;
++    data.apparmor_label = pa_iochannel_socket_get_peer_apparmor_label(io);
+     pa_iochannel_socket_peer_to_string(io, pname, sizeof(pname));
+     pa_proplist_setf(data.proplist, PA_PROP_APPLICATION_NAME, "Native client (%s)", pname);
+     pa_proplist_sets(data.proplist, "native-protocol.peer", pname);
+Index: pulseaudio-16.1+dfsg1/meson.build
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/meson.build
++++ pulseaudio-16.1+dfsg1/meson.build
+@@ -722,6 +722,11 @@ if get_option('daemon')
+     cdata.set('HAVE_WEBRTC', 1)
+   endif
+ 
++  libapparmor_dep = dependency('libapparmor', required : get_option('apparmor'))
++  if libapparmor_dep.found()
++    cdata.set('HAVE_APPARMOR', 1)
++  endif
++
+   systemd_dep = dependency('systemd', required : get_option('systemd'))
+   if systemd_dep.found() and systemduserunitdir == ''
+     systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir')
+@@ -956,6 +961,7 @@ summary = [
+   'Enable Valgrind:               @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
+   'Enable man pages:              @0@'.format(get_option('man')),
+   'Enable unit tests:             @0@'.format(get_option('tests')),
++  'Enable apparmor:               @0@'.format(libapparmor_dep.found()),
+ ]
+ 
+ if get_option('client')
+Index: pulseaudio-16.1+dfsg1/meson_options.txt
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/meson_options.txt
++++ pulseaudio-16.1+dfsg1/meson_options.txt
+@@ -177,3 +177,8 @@ option('adrian-aec',
+ option('webrtc-aec',
+        type : 'feature', value : 'auto',
+        description : 'Optional WebRTC-based echo canceller')
++       
++# AppArmor support (optional)
++option('apparmor',
++       type : 'feature', value : 'auto',
++       description : 'AppArmor support library is available.')
+Index: pulseaudio-16.1+dfsg1/src/meson.build
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/meson.build
++++ pulseaudio-16.1+dfsg1/src/meson.build
+@@ -206,7 +206,7 @@ else
+       libm_dep, thread_dep, dl_dep, shm_dep, iconv_dep, sndfile_dep, dbus_dep,
+       x11_dep, libsystemd_dep, glib_dep.partial_dependency(compile_args: true),
+       gtk_dep.partial_dependency(compile_args: true), asyncns_dep, libintl_dep,
+-      platform_dep, platform_socket_dep, execinfo_dep,
++      platform_dep, platform_socket_dep, execinfo_dep, libapparmor_dep,
+     ],
+     implicit_include_directories : false)
+ 
+Index: pulseaudio-16.1+dfsg1/src/pulsecore/meson.build
+===================================================================
+--- pulseaudio-16.1+dfsg1.orig/src/pulsecore/meson.build
++++ pulseaudio-16.1+dfsg1/src/pulsecore/meson.build
+@@ -224,7 +224,7 @@ libpulsecore = shared_library('pulsecore
+   install_rpath : privlibdir,
+   install_dir : privlibdir,
+   link_with : libpulsecore_simd_lib,
+-  dependencies : [libm_dep, libpulsecommon_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, libatomic_ops_dep, orc_dep, samplerate_dep, soxr_dep, speex_dep, x11_dep, libsystemd_dep, libintl_dep, platform_dep, tcpwrap_dep, platform_socket_dep,],
++  dependencies : [libm_dep, libpulsecommon_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, libatomic_ops_dep, orc_dep, samplerate_dep, soxr_dep, speex_dep, x11_dep, libsystemd_dep, libintl_dep, platform_dep, tcpwrap_dep, platform_socket_dep, libapparmor_dep,],
+   implicit_include_directories : false)
+ 
+ libpulsecore_dep = declare_dependency(link_with: libpulsecore)
diff -pruN 16.1+dfsg1-2/debian/patches/0700-modules-add-snappy-policy-module.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0700-modules-add-snappy-policy-module.patch
--- 16.1+dfsg1-2/debian/patches/0700-modules-add-snappy-policy-module.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0700-modules-add-snappy-policy-module.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,500 @@
+From: James Henstridge <james.henstridge@canonical.com>
+Date: Tue, 28 Apr 2020 14:42:07 +0800
+Subject: [PATCH] modules: add snap policy module
+
+Forwarded: not-needed
+
+This patch allows pulseaudio to limit audio recording to snaps with the
+audio-recording interface connected, and prohibit snaps from performing
+certain operations completely.  We will not pursue upstreaming this
+patch as the longer term solution will probably use PipeWire.
+
+Co-authored-by: Simon Fels <simon.fels@canonical.com>
+---
+ configure.ac                     |  17 ++
+ src/Makefile.am                  |  13 ++
+ src/modules/module-snap-policy.c | 427 +++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 457 insertions(+)
+ create mode 100644 src/modules/module-snap-policy.c
+
+Index: pulseaudio-15.99.1/src/modules/module-snap-policy.c
+===================================================================
+--- /dev/null
++++ pulseaudio-15.99.1/src/modules/module-snap-policy.c
+@@ -0,0 +1,427 @@
++/***
++    This file is part of PulseAudio.
++
++    Copyright 2018 Canonical Ltd.
++    Authors:
++      Simon Fels <simon.fels@canonical.com>
++      James Henstridge <james.henstridge@canonical.com>
++
++    PulseAudio is free software; you can redistribute it and/or modify
++    it under the terms of the GNU Lesser General Public License as published
++    by the Free Software Foundation; either version 2.1 of the License,
++    or (at your option) any later version.
++
++    PulseAudio is distributed in the hope that it will be useful, but
++    WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++    General Public License for more details.
++
++    You should have received a copy of the GNU Lesser General Public License
++    along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
++***/
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
++#include <sys/apparmor.h>
++#include <glib.h>
++#include <snapd-glib/snapd-glib.h>
++
++#include <pulsecore/asyncq.h>
++#include <pulsecore/core.h>
++#include <pulsecore/idxset.h>
++#include <pulsecore/hashmap.h>
++#include <pulsecore/module.h>
++#include <pulsecore/mutex.h>
++#include <pulsecore/thread.h>
++#include <pulse/mainloop-api.h>
++#include <pulse/xmalloc.h>
++
++#define SNAP_LABEL_PREFIX           "snap."
++#define SNAP_LABEL_PREFIX_LENGTH    5
++
++PA_MODULE_AUTHOR("Canonical Ltd");
++PA_MODULE_DESCRIPTION("Ubuntu Snap policy management");
++PA_MODULE_VERSION(PACKAGE_VERSION);
++PA_MODULE_LOAD_ONCE(true);
++
++struct per_client {
++    struct userdata *userdata;
++    uint32_t index;
++    char *snap_name;
++    pa_dynarray *pending_requests; /* of pa_access_data */
++    bool completed;
++    bool grant_access;
++};
++
++struct userdata {
++    pa_io_event *io_event;
++    pa_hook_slot *connect_record_hook_slot;
++    pa_hook_slot *exit_daemon_hook_slot;
++    pa_hook_slot *get_module_info_hook_slot;
++    pa_hook_slot *load_module_hook_slot;
++    pa_hook_slot *unload_module_hook_slot;
++    pa_hook_slot *kill_client_hook_slot;
++
++    pa_thread *thread;
++    pa_mutex *mutex;
++    pa_cond *cond;
++
++    pa_hashmap *clients; /* int => struct per_client */
++    pa_asyncq *results; /* of struct per_client */
++
++    /* Data owned by glib thread */
++    GMainContext *main_context;
++    GMainLoop *main_loop;
++    GCancellable *cancellable;
++    SnapdClient *snapd;
++};
++
++/* ---- Code running in glib thread ---- */
++
++static void complete_check_access(struct per_client *pc, bool grant_access)
++{
++    struct userdata *u = pc->userdata;
++
++    pa_mutex_lock(u->mutex);
++    pc->grant_access = grant_access;
++    pc->completed = true;
++    pa_asyncq_push(u->results, pc, true);
++    pa_mutex_unlock(u->mutex);
++}
++
++static void get_connections_finished(GObject *source_object,
++                                     GAsyncResult *result,
++                                     gpointer user_data)
++{
++    struct per_client *pc = user_data;
++    struct userdata *u = pc->userdata;
++    bool grant_access = false;
++    g_autoptr(GError) error = NULL;
++    g_autoptr(GPtrArray) established = NULL;
++    unsigned i;
++
++    if (!snapd_client_get_connections2_finish(u->snapd, result, &established, NULL, NULL, NULL, &error)) {
++        pa_log_warn("snapd_client_get_connections2 failed: %s", error->message);
++        goto end;
++    }
++
++    /* determine pc->grant_access */
++    for (i = 0; i < established->len; i++) {
++        SnapdConnection *conn = established->pdata[i];
++        SnapdPlugRef *plug = snapd_connection_get_plug(conn);
++        const char *snap_name = snapd_plug_ref_get_snap(plug);
++        const char *iface = snapd_connection_get_interface(conn);
++
++        /* We are only interested in connected plugs of our snap */
++        if (strcmp(snap_name, pc->snap_name) != 0) {
++            continue;
++        }
++        if (!strcmp(iface, "pulseaudio") || !strcmp(iface, "audio-record")) {
++            grant_access = true;
++            break;
++        }
++    }
++
++end:
++    complete_check_access(pc, grant_access);
++}
++
++static void get_snap_finished(GObject *source_object,
++                              GAsyncResult *result,
++                              gpointer user_data)
++{
++    struct per_client *pc = user_data;
++    struct userdata *u = pc->userdata;
++    g_autoptr(GError) error = NULL;
++    g_autoptr(SnapdSnap) snap = NULL;
++
++    snap = snapd_client_get_snap_finish(u->snapd, result, &error);
++    if (!snap) {
++        pa_log_warn("snapd_client_get_snap failed: %s", error->message);
++        complete_check_access(pc, false);
++        return;
++    }
++
++    /* Snaps using classic confinement are granted access */
++    if (snapd_snap_get_confinement(snap) == SNAPD_CONFINEMENT_CLASSIC) {
++        complete_check_access(pc, true);
++        return;
++    }
++
++    /* We have a non-classic snap, we need to check its connected
++     * interfaces */
++    snapd_client_get_connections2_async(
++        u->snapd, SNAPD_GET_CONNECTIONS_FLAGS_NONE, pc->snap_name, NULL,
++        u->cancellable, get_connections_finished, pc);
++}
++
++
++static gboolean check_access(void *data)
++{
++    struct per_client *pc = data;
++    struct userdata *u = pc->userdata;
++
++    snapd_client_get_snap_async(u->snapd, pc->snap_name, u->cancellable,
++                                get_snap_finished, pc);
++    return G_SOURCE_REMOVE;
++}
++
++
++static void thread_main(void *data) {
++    struct userdata *u = data;
++
++    pa_mutex_lock(u->mutex);
++
++    u->main_context = g_main_context_new();
++    g_main_context_push_thread_default(u->main_context);
++    u->main_loop = g_main_loop_new(u->main_context, false);
++    u->cancellable = g_cancellable_new();
++    u->snapd = snapd_client_new();
++
++    /* Signal main thread that we've finished initialisation */
++    pa_cond_signal(u->cond, false);
++    pa_mutex_unlock(u->mutex);
++
++    pa_log_info("Starting GLib main loop");
++    g_main_loop_run(u->main_loop);
++    pa_log_info("GLib main loop exited");
++
++    g_cancellable_cancel(u->cancellable);
++
++    g_clear_object(&u->snapd);
++    g_clear_object(&u->cancellable);
++    g_main_context_pop_thread_default(u->main_context);
++    g_clear_pointer(&u->main_loop, g_main_loop_unref);
++    g_clear_pointer(&u->main_context, g_main_context_unref);
++}
++
++static gboolean thread_quit(void *data)
++{
++    struct userdata *u = data;
++
++    g_main_loop_quit(u->main_loop);
++    return G_SOURCE_REMOVE;
++}
++
++/* ---- Code running in main thread ---- */
++
++static struct per_client *per_client_new(struct userdata *u,
++                                         uint32_t client_index,
++                                         char *snap_name) {
++    struct per_client *pc = pa_xnew0(struct per_client, 1);
++    pc->userdata = u;
++    pc->index = client_index;
++    pc->snap_name = snap_name;
++    pc->pending_requests = pa_dynarray_new(NULL);
++    pc->completed = false;
++    pc->grant_access = false;
++    return pc;
++}
++
++static void per_client_free(struct per_client *pc) {
++    if (!pc) return;
++    pa_xfree(pc->snap_name);
++    pa_dynarray_free(pc->pending_requests);
++    pa_xfree(pc);
++}
++
++static char *client_get_snap_name(pa_core *core, uint32_t client_index) {
++    pa_client *client;
++    char *context = NULL;
++    char *snap_name = NULL;
++    char *dot;
++
++    client = pa_idxset_get_by_index(core->clients, client_index);
++    pa_assert(client != NULL);
++    if (!client->creds_valid) {
++        pa_log_warn("Client %u has no creds, cannot authenticate", client_index);
++        goto end;
++    }
++
++    /* If AppArmor is not enabled, then we can't identify the client */
++    if (!aa_is_enabled()) {
++        goto end;
++    }
++    if (aa_gettaskcon(client->creds.pid, &context, NULL) < 0) {
++        pa_log_error("AppArmor profile could not be retrieved.");
++        goto end;
++    }
++
++    /* If the AppArmor context does not begin with "snap.", then this
++     * is not a snap */
++    if (strncmp(context, SNAP_LABEL_PREFIX, SNAP_LABEL_PREFIX_LENGTH) != 0) {
++        goto end;
++    }
++
++    dot = strchr(context+SNAP_LABEL_PREFIX_LENGTH, '.');
++    if (dot == NULL) {
++        pa_log_warn("Malformed snapd AppArmor profile name: %s", context);
++        goto end;
++    }
++    snap_name = pa_xstrndup(context+5, dot-context-SNAP_LABEL_PREFIX_LENGTH);
++
++end:
++    free(context);
++    return snap_name;
++}
++
++static pa_hook_result_t connect_record_hook(pa_core *core, pa_access_data *d,
++                                            struct userdata *u) {
++    pa_hook_result_t result = PA_HOOK_STOP;
++    struct per_client *pc = NULL;
++    char *snap_name = NULL;
++
++    pa_mutex_lock(u->mutex);
++    pc = pa_hashmap_get(u->clients, (void *)(size_t)d->client_index);
++    if (pc) {
++        if (pc->completed) {
++            result = pc->grant_access ? PA_HOOK_OK : PA_HOOK_STOP;
++        } else {
++            /* A permission check for this snap is currently in progress */
++            pa_dynarray_append(pc->pending_requests, d);
++            result = PA_HOOK_CANCEL;
++        }
++        goto end;
++    }
++
++    snap_name = client_get_snap_name(core, d->client_index);
++    if (!snap_name) {
++        /* Not a snap, so allow access */
++        result = PA_HOOK_OK;
++        goto end;
++    }
++
++    /* create new per client struct, and submit to glib thread */
++    pc = per_client_new(u, d->client_index, snap_name);
++    pa_dynarray_append(pc->pending_requests, d);
++    pa_hashmap_put(u->clients, (void *) (size_t) d->client_index, pc);
++    pa_log_info("Checking access for client %d (%s)", pc->index, pc->snap_name);
++    g_main_context_invoke(u->main_context, check_access, pc);
++
++    result = PA_HOOK_CANCEL;
++
++end:
++    pa_mutex_unlock(u->mutex);
++    return result;
++}
++
++static void deliver_result(struct userdata *u, struct per_client *pc) {
++    pa_access_data *ad;
++    unsigned i;
++
++    pa_log_info("Access check for client %u (%s): %d",
++                pc->index, pc->snap_name, pc->grant_access);
++
++    /* Call the hooks without holding the mutex, since this will
++     * recurse into connect_record_hook.  Access to pending_requests
++     * should be safe here, since connect_record_hook wont alter the
++     * array when the access check is complete. */
++    PA_DYNARRAY_FOREACH(ad, pc->pending_requests, i) {
++        ad->async_finish_cb(ad, pc->grant_access);
++    }
++    pa_mutex_lock(u->mutex);
++    pa_hashmap_remove_and_free(u->clients, (void *) (size_t) pc->index);
++    pa_mutex_unlock(u->mutex);
++}
++
++static void check_result(pa_mainloop_api *a, pa_io_event *e, int fd, pa_io_event_flags_t flags, void *userdata) {
++    struct userdata *u = userdata;
++    struct per_client *pc;
++
++    pa_asyncq_read_after_poll(u->results);
++    while ((pc = pa_asyncq_pop(u->results, false)) != NULL) {
++        deliver_result(u, pc);
++    }
++    pa_asyncq_read_before_poll(u->results);
++}
++
++/* An access control hook that blocks access to snaps */
++static pa_hook_result_t deny_to_snaps_hook(pa_core *core, pa_access_data *d,
++                                           struct userdata *u) {
++    char *snap_name = NULL;
++    bool is_snap;
++
++    snap_name = client_get_snap_name(core, d->client_index);
++    is_snap = snap_name != NULL;
++    pa_xfree(snap_name);
++
++    if (is_snap) {
++        return PA_HOOK_STOP;
++    }
++    return PA_HOOK_OK;
++}
++
++int pa__init(pa_module *m) {
++    struct userdata *u;
++
++    u = pa_xnew0(struct userdata, 1);
++    m->userdata = u;
++    u->mutex = pa_mutex_new(false, false);
++    u->cond = pa_cond_new();
++
++    u->clients = pa_hashmap_new_full(pa_idxset_trivial_hash_func,
++                                     pa_idxset_trivial_compare_func,
++                                     NULL, (pa_free_cb_t) per_client_free);
++
++    u->results = pa_asyncq_new(0);
++    u->io_event = m->core->mainloop->io_new(
++        m->core->mainloop, pa_asyncq_read_fd(u->results), PA_IO_EVENT_INPUT,
++        check_result, u);
++    pa_asyncq_read_before_poll(u->results);
++
++    u->connect_record_hook_slot = pa_hook_connect(
++        &m->core->access[PA_ACCESS_HOOK_CONNECT_RECORD], PA_HOOK_NORMAL,
++        (pa_hook_cb_t) connect_record_hook, u);
++    u->exit_daemon_hook_slot = pa_hook_connect(
++        &m->core->access[PA_ACCESS_HOOK_EXIT_DAEMON], PA_HOOK_NORMAL,
++        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++    u->get_module_info_hook_slot = pa_hook_connect(
++        &m->core->access[PA_ACCESS_HOOK_GET_MODULE_INFO], PA_HOOK_NORMAL,
++        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++    u->load_module_hook_slot = pa_hook_connect(
++        &m->core->access[PA_ACCESS_HOOK_LOAD_MODULE], PA_HOOK_NORMAL,
++        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++    u->unload_module_hook_slot = pa_hook_connect(
++        &m->core->access[PA_ACCESS_HOOK_UNLOAD_MODULE], PA_HOOK_NORMAL,
++        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++    u->kill_client_hook_slot = pa_hook_connect(
++        &m->core->access[PA_ACCESS_HOOK_KILL_CLIENT], PA_HOOK_NORMAL,
++        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++
++    /* Start glib thread and wait for it to finish initialising. */
++    pa_mutex_lock(u->mutex);
++    u->thread = pa_thread_new("snapd-glib", thread_main, u);
++    pa_cond_wait(u->cond, u->mutex);
++    pa_mutex_unlock(u->mutex);
++
++    return 0;
++}
++
++void pa__done(pa_module *m) {
++    struct userdata *u = m->userdata;
++    if (!u) return;
++
++    pa_hook_slot_free(u->connect_record_hook_slot);
++    pa_hook_slot_free(u->exit_daemon_hook_slot);
++    pa_hook_slot_free(u->get_module_info_hook_slot);
++    pa_hook_slot_free(u->load_module_hook_slot);
++    pa_hook_slot_free(u->unload_module_hook_slot);
++    pa_hook_slot_free(u->kill_client_hook_slot);
++
++    m->core->mainloop->io_free(u->io_event);
++
++    /* Stop the glib thread and wait for it to exit */
++    g_main_context_invoke(u->main_context, thread_quit, u);
++    pa_thread_join(u->thread);
++    pa_thread_free(u->thread);
++
++    pa_asyncq_free(u->results, NULL); /* items in queue owned by u->clients */
++    g_clear_pointer(&u->clients, pa_hashmap_free);
++
++    g_clear_pointer(&u->cond, pa_cond_free);
++    g_clear_pointer(&u->mutex, pa_mutex_free);
++
++    pa_xfree(u);
++}
+Index: pulseaudio-15.99.1/meson.build
+===================================================================
+--- pulseaudio-15.99.1.orig/meson.build
++++ pulseaudio-15.99.1/meson.build
+@@ -727,6 +727,11 @@ if get_option('daemon')
+     cdata.set('HAVE_APPARMOR', 1)
+   endif
+ 
++  snap_dep = dependency('snapd-glib-2', required : get_option('snap'))
++  if snap_dep.found() and glib_dep.found() and gio_dep.found()
++    cdata.set('ENABLE_SNAP', 1)
++  endif
++
+   systemd_dep = dependency('systemd', required : get_option('systemd'))
+   if systemd_dep.found() and systemduserunitdir == ''
+     systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir')
+@@ -958,6 +963,7 @@ summary = [
+   'Enable FFTW:                   @0@'.format(fftw_dep.found()),
+   'Enable IPv6:                   @0@'.format(get_option('ipv6')),
+   'Enable Gcov coverage:          @0@'.format(get_option('gcov')),
++  'Enable snap:                   @0@'.format(snap_dep.found()),
+   'Enable Valgrind:               @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
+   'Enable man pages:              @0@'.format(get_option('man')),
+   'Enable unit tests:             @0@'.format(get_option('tests')),
+Index: pulseaudio-15.99.1/meson_options.txt
+===================================================================
+--- pulseaudio-15.99.1.orig/meson_options.txt
++++ pulseaudio-15.99.1/meson_options.txt
+@@ -182,3 +182,8 @@ option('webrtc-aec',
+ option('apparmor',
+        type : 'feature', value : 'auto',
+        description : 'AppArmor support library is available.')
++
++# Snap support
++option('snap',
++       type : 'feature', value : 'auto',
++       description : 'Snap support is available.')
+Index: pulseaudio-15.99.1/src/modules/meson.build
+===================================================================
+--- pulseaudio-15.99.1.orig/src/modules/meson.build
++++ pulseaudio-15.99.1/src/modules/meson.build
+@@ -50,6 +50,7 @@ all_modules = [
+   [ 'module-sine', 'module-sine.c' ],
+   [ 'module-sine-source', 'module-sine-source.c' ],
+ #  [ 'module-solaris', 'module-solaris.c' ],
++  [ 'module-snap-policy', 'module-snap-policy.c', [], [], [snap_dep, glib_dep, gio_dep] ],
+   [ 'module-stream-restore', 'module-stream-restore.c', [], [], [dbus_dep], libprotocol_native ],
+   [ 'module-suspend-on-idle', 'module-suspend-on-idle.c' ],
+   [ 'module-switch-on-connect', 'module-switch-on-connect.c' ],
diff -pruN 16.1+dfsg1-2/debian/patches/0701-enable-snap-policy-module.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0701-enable-snap-policy-module.patch
--- 16.1+dfsg1-2/debian/patches/0701-enable-snap-policy-module.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0701-enable-snap-policy-module.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,31 @@
+From: James Henstridge <james.henstridge@canonical.com>
+Date: Tue, 7 Aug 2018 16:54:00 +0800
+Subject: daemon: enable module-snap-policy module
+
+Forwarded: not-needed
+
+This patch allows pulseaudio to limit audio recording to snaps with
+the audio-recording interface connected.  We will not pursue upstreaming
+this patch as the longer term solution will probably use PipeWire.  
+
+---
+ src/daemon/default.pa.in | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: pulseaudio/src/daemon/default.pa.in
+===================================================================
+--- pulseaudio.orig/src/daemon/default.pa.in
++++ pulseaudio/src/daemon/default.pa.in
+@@ -162,6 +162,12 @@ load-module module-position-event-sounds
+ ### Cork music/video streams when a phone stream is active
+ load-module module-role-cork
+ 
++### Block audio recording for snap confined packages unless they have
++### the "pulseaudio" or "audio-record" interfaces plugged.
++.ifexists module-snap-policy@PA_SOEXT@
++load-module module-snap-policy
++.endif
++
+ ### Modules to allow autoloading of filters (such as echo cancellation)
+ ### on demand. module-filter-heuristics tries to determine what filters
+ ### make sense, and module-filter-apply does the heavy-lifting of
diff -pruN 16.1+dfsg1-2/debian/patches/0702-add-snappy-policy-module.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/0702-add-snappy-policy-module.patch
--- 16.1+dfsg1-2/debian/patches/0702-add-snappy-policy-module.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/0702-add-snappy-policy-module.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,278 @@
+Description: add snap policy module
+Author: James Henstridge <james.henstridge@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1895928
+Last-Update: 2020-10-08
+Index: pulseaudio/src/modules/module-snap-policy.c
+===================================================================
+--- pulseaudio.orig/src/modules/module-snap-policy.c
++++ pulseaudio/src/modules/module-snap-policy.c
+@@ -1,7 +1,7 @@
+ /***
+     This file is part of PulseAudio.
+ 
+-    Copyright 2018 Canonical Ltd.
++    Copyright 2020 Canonical Ltd.
+     Authors:
+       Simon Fels <simon.fels@canonical.com>
+       James Henstridge <james.henstridge@canonical.com>
+@@ -24,7 +24,6 @@
+ #include <config.h>
+ #endif
+ 
+-#include <sys/apparmor.h>
+ #include <glib.h>
+ #include <snapd-glib/snapd-glib.h>
+ 
+@@ -46,13 +45,19 @@ PA_MODULE_DESCRIPTION("Ubuntu Snap polic
+ PA_MODULE_VERSION(PACKAGE_VERSION);
+ PA_MODULE_LOAD_ONCE(true);
+ 
++typedef enum snap_access {
++    SNAP_ACCESS_NONE    = 0,
++    SNAP_ACCESS_RECORD  = 1 << 0,
++    SNAP_ACCESS_CONTROL = 1 << 1,
++} snap_access_t;
++
+ struct per_client {
+     struct userdata *userdata;
+     uint32_t index;
+     char *snap_name;
+     pa_dynarray *pending_requests; /* of pa_access_data */
+     bool completed;
+-    bool grant_access;
++    snap_access_t access;
+ };
+ 
+ struct userdata {
+@@ -80,12 +85,12 @@ struct userdata {
+ 
+ /* ---- Code running in glib thread ---- */
+ 
+-static void complete_check_access(struct per_client *pc, bool grant_access)
++static void complete_check_access(struct per_client *pc, snap_access_t access)
+ {
+     struct userdata *u = pc->userdata;
+ 
+     pa_mutex_lock(u->mutex);
+-    pc->grant_access = grant_access;
++    pc->access = access;
+     pc->completed = true;
+     pa_asyncq_push(u->results, pc, true);
+     pa_mutex_unlock(u->mutex);
+@@ -97,7 +102,7 @@ static void get_connections_finished(GOb
+ {
+     struct per_client *pc = user_data;
+     struct userdata *u = pc->userdata;
+-    bool grant_access = false;
++    snap_access_t access = SNAP_ACCESS_NONE;
+     g_autoptr(GError) error = NULL;
+     g_autoptr(GPtrArray) established = NULL;
+     unsigned i;
+@@ -107,7 +112,7 @@ static void get_connections_finished(GOb
+         goto end;
+     }
+ 
+-    /* determine pc->grant_access */
++    /* determine pc->access */
+     for (i = 0; i < established->len; i++) {
+         SnapdConnection *conn = established->pdata[i];
+         SnapdPlugRef *plug = snapd_connection_get_plug(conn);
+@@ -119,13 +124,13 @@ static void get_connections_finished(GOb
+             continue;
+         }
+         if (!strcmp(iface, "pulseaudio") || !strcmp(iface, "audio-record")) {
+-            grant_access = true;
++            access |= SNAP_ACCESS_RECORD;
+             break;
+         }
+     }
+ 
+ end:
+-    complete_check_access(pc, grant_access);
++    complete_check_access(pc, access);
+ }
+ 
+ static void get_snap_finished(GObject *source_object,
+@@ -140,13 +145,13 @@ static void get_snap_finished(GObject *s
+     snap = snapd_client_get_snap_finish(u->snapd, result, &error);
+     if (!snap) {
+         pa_log_warn("snapd_client_get_snap failed: %s", error->message);
+-        complete_check_access(pc, false);
++        complete_check_access(pc, SNAP_ACCESS_NONE);
+         return;
+     }
+ 
+     /* Snaps using classic confinement are granted access */
+     if (snapd_snap_get_confinement(snap) == SNAPD_CONFINEMENT_CLASSIC) {
+-        complete_check_access(pc, true);
++        complete_check_access(pc, SNAP_ACCESS_RECORD | SNAP_ACCESS_CONTROL);
+         return;
+     }
+ 
+@@ -216,7 +221,7 @@ static struct per_client *per_client_new
+     pc->snap_name = snap_name;
+     pc->pending_requests = pa_dynarray_new(NULL);
+     pc->completed = false;
+-    pc->grant_access = false;
++    pc->access = SNAP_ACCESS_NONE;
+     return pc;
+ }
+ 
+@@ -229,46 +234,34 @@ static void per_client_free(struct per_c
+ 
+ static char *client_get_snap_name(pa_core *core, uint32_t client_index) {
+     pa_client *client;
+-    char *context = NULL;
+-    char *snap_name = NULL;
++    char *label = NULL;
+     char *dot;
+ 
+     client = pa_idxset_get_by_index(core->clients, client_index);
+     pa_assert(client != NULL);
+-    if (!client->creds_valid) {
+-        pa_log_warn("Client %u has no creds, cannot authenticate", client_index);
+-        goto end;
+-    }
+-
+-    /* If AppArmor is not enabled, then we can't identify the client */
+-    if (!aa_is_enabled()) {
+-        goto end;
+-    }
+-    if (aa_gettaskcon(client->creds.pid, &context, NULL) < 0) {
+-        pa_log_error("AppArmor profile could not be retrieved.");
+-        goto end;
++    if (client->apparmor_label == NULL) {
++        return NULL;
+     }
+ 
+     /* If the AppArmor context does not begin with "snap.", then this
+      * is not a snap */
+-    if (strncmp(context, SNAP_LABEL_PREFIX, SNAP_LABEL_PREFIX_LENGTH) != 0) {
+-        goto end;
++    label = client->apparmor_label;
++    if (strncmp(label, SNAP_LABEL_PREFIX, SNAP_LABEL_PREFIX_LENGTH) != 0) {
++        return NULL;
+     }
++    label += SNAP_LABEL_PREFIX_LENGTH;
+ 
+-    dot = strchr(context+SNAP_LABEL_PREFIX_LENGTH, '.');
++    dot = strchr(label, '.');
+     if (dot == NULL) {
+-        pa_log_warn("Malformed snapd AppArmor profile name: %s", context);
+-        goto end;
++        pa_log_warn("Malformed snapd AppArmor label: %s", client->apparmor_label);
++        return NULL;
+     }
+-    snap_name = pa_xstrndup(context+5, dot-context-SNAP_LABEL_PREFIX_LENGTH);
+-
+-end:
+-    free(context);
+-    return snap_name;
++    return pa_xstrndup(label, dot - label);
+ }
+ 
+-static pa_hook_result_t connect_record_hook(pa_core *core, pa_access_data *d,
+-                                            struct userdata *u) {
++static pa_hook_result_t check_access_hook(pa_core *core, pa_access_data *d,
++                                          struct userdata *u,
++                                          snap_access_t required_access) {
+     pa_hook_result_t result = PA_HOOK_STOP;
+     struct per_client *pc = NULL;
+     char *snap_name = NULL;
+@@ -277,7 +270,8 @@ static pa_hook_result_t connect_record_h
+     pc = pa_hashmap_get(u->clients, (void *)(size_t)d->client_index);
+     if (pc) {
+         if (pc->completed) {
+-            result = pc->grant_access ? PA_HOOK_OK : PA_HOOK_STOP;
++            result = ((pc->access & required_access) == required_access)
++                ? PA_HOOK_OK : PA_HOOK_STOP;
+         } else {
+             /* A permission check for this snap is currently in progress */
+             pa_dynarray_append(pc->pending_requests, d);
+@@ -307,19 +301,31 @@ end:
+     return result;
+ }
+ 
++static pa_hook_result_t require_record_access_hook(pa_core *core,
++                                                   pa_access_data *d,
++                                                   struct userdata *u) {
++    return check_access_hook(core, d, u, SNAP_ACCESS_RECORD);
++}
++
++static pa_hook_result_t require_control_access_hook(pa_core *core,
++                                                    pa_access_data *d,
++                                                    struct userdata *u) {
++    return check_access_hook(core, d, u, SNAP_ACCESS_CONTROL);
++}
++
+ static void deliver_result(struct userdata *u, struct per_client *pc) {
+     pa_access_data *ad;
+     unsigned i;
+ 
+     pa_log_info("Access check for client %u (%s): %d",
+-                pc->index, pc->snap_name, pc->grant_access);
++                pc->index, pc->snap_name, pc->access);
+ 
+     /* Call the hooks without holding the mutex, since this will
+-     * recurse into connect_record_hook.  Access to pending_requests
++     * recurse into check_snap_access.  Access to pending_requests
+      * should be safe here, since connect_record_hook wont alter the
+      * array when the access check is complete. */
+     PA_DYNARRAY_FOREACH(ad, pc->pending_requests, i) {
+-        ad->async_finish_cb(ad, pc->grant_access);
++        ad->async_finish_cb(ad, pc->access != SNAP_ACCESS_NONE);
+     }
+     pa_mutex_lock(u->mutex);
+     pa_hashmap_remove_and_free(u->clients, (void *) (size_t) pc->index);
+@@ -337,22 +343,6 @@ static void check_result(pa_mainloop_api
+     pa_asyncq_read_before_poll(u->results);
+ }
+ 
+-/* An access control hook that blocks access to snaps */
+-static pa_hook_result_t deny_to_snaps_hook(pa_core *core, pa_access_data *d,
+-                                           struct userdata *u) {
+-    char *snap_name = NULL;
+-    bool is_snap;
+-
+-    snap_name = client_get_snap_name(core, d->client_index);
+-    is_snap = snap_name != NULL;
+-    pa_xfree(snap_name);
+-
+-    if (is_snap) {
+-        return PA_HOOK_STOP;
+-    }
+-    return PA_HOOK_OK;
+-}
+-
+ int pa__init(pa_module *m) {
+     struct userdata *u;
+ 
+@@ -373,22 +363,22 @@ int pa__init(pa_module *m) {
+ 
+     u->connect_record_hook_slot = pa_hook_connect(
+         &m->core->access[PA_ACCESS_HOOK_CONNECT_RECORD], PA_HOOK_NORMAL,
+-        (pa_hook_cb_t) connect_record_hook, u);
++        (pa_hook_cb_t) require_record_access_hook, u);
+     u->exit_daemon_hook_slot = pa_hook_connect(
+         &m->core->access[PA_ACCESS_HOOK_EXIT_DAEMON], PA_HOOK_NORMAL,
+-        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++        (pa_hook_cb_t) require_control_access_hook, u);
+     u->get_module_info_hook_slot = pa_hook_connect(
+         &m->core->access[PA_ACCESS_HOOK_GET_MODULE_INFO], PA_HOOK_NORMAL,
+-        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++        (pa_hook_cb_t) require_control_access_hook, u);
+     u->load_module_hook_slot = pa_hook_connect(
+         &m->core->access[PA_ACCESS_HOOK_LOAD_MODULE], PA_HOOK_NORMAL,
+-        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++        (pa_hook_cb_t) require_control_access_hook, u);
+     u->unload_module_hook_slot = pa_hook_connect(
+         &m->core->access[PA_ACCESS_HOOK_UNLOAD_MODULE], PA_HOOK_NORMAL,
+-        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++        (pa_hook_cb_t) require_control_access_hook, u);
+     u->kill_client_hook_slot = pa_hook_connect(
+         &m->core->access[PA_ACCESS_HOOK_KILL_CLIENT], PA_HOOK_NORMAL,
+-        (pa_hook_cb_t) deny_to_snaps_hook, NULL);
++        (pa_hook_cb_t) require_control_access_hook, u);
+ 
+     /* Start glib thread and wait for it to finish initialising. */
+     pa_mutex_lock(u->mutex);
diff -pruN 16.1+dfsg1-2/debian/patches/git_config_upgrade.patch 1:16.1+dfsg1-2ubuntu3/debian/patches/git_config_upgrade.patch
--- 16.1+dfsg1-2/debian/patches/git_config_upgrade.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/git_config_upgrade.patch	2023-02-08 22:31:06.000000000 +0000
@@ -0,0 +1,297 @@
+From 46c263acc976a9615a322cff5ead41928c68e6ce Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Tue, 26 May 2020 14:45:12 +0300
+Subject: [PATCH 1/3] stream-restore: Drop the version field from the entry
+ struct
+
+Storing the version in the entry struct is pointless. We should always
+write entries using the current version. When we encounter older
+versions when reading, those need to be converted to the current version
+anyway, because all code that uses the entry struct assumes that the
+data is stored according to the current version semantics.
+
+We're currently at the first version of the database entries, so
+currently there's no version conversion happening. I have a patch that
+will increment the entry version, so this is preparation for that.
+---
+ src/modules/module-stream-restore.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c
+index 0ef30f179..b6358fcca 100644
+--- a/src/modules/module-stream-restore.c
++++ b/src/modules/module-stream-restore.c
+@@ -116,7 +116,6 @@ struct userdata {
+ #define ENTRY_VERSION 1
+ 
+ struct entry {
+-    uint8_t version;
+     bool muted_valid, volume_valid, device_valid, card_valid;
+     bool muted;
+     pa_channel_map channel_map;
+@@ -968,7 +967,6 @@ static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct
+ 
+ static struct entry* entry_new(void) {
+     struct entry *r = pa_xnew0(struct entry, 1);
+-    r->version = ENTRY_VERSION;
+     return r;
+ }
+ 
+@@ -990,7 +988,7 @@ static bool entry_write(struct userdata *u, const char *name, const struct entry
+     pa_assert(e);
+ 
+     t = pa_tagstruct_new();
+-    pa_tagstruct_putu8(t, e->version);
++    pa_tagstruct_putu8(t, ENTRY_VERSION);
+     pa_tagstruct_put_boolean(t, e->volume_valid);
+     pa_tagstruct_put_channel_map(t, &e->channel_map);
+     pa_tagstruct_put_cvolume(t, &e->volume);
+@@ -1108,6 +1106,7 @@ static struct entry *entry_read(struct userdata *u, const char *name) {
+     pa_datum key, data;
+     struct entry *e = NULL;
+     pa_tagstruct *t = NULL;
++    uint8_t version;
+     const char *device, *card;
+ 
+     pa_assert(u);
+@@ -1124,8 +1123,8 @@ static struct entry *entry_read(struct userdata *u, const char *name) {
+     t = pa_tagstruct_new_fixed(data.data, data.size);
+     e = entry_new();
+ 
+-    if (pa_tagstruct_getu8(t, &e->version) < 0 ||
+-        e->version > ENTRY_VERSION ||
++    if (pa_tagstruct_getu8(t, &version) < 0 ||
++        version > ENTRY_VERSION ||
+         pa_tagstruct_get_boolean(t, &e->volume_valid) < 0 ||
+         pa_tagstruct_get_channel_map(t, &e->channel_map) < 0 ||
+         pa_tagstruct_get_cvolume(t, &e->volume) < 0 ||
+@@ -1694,7 +1693,6 @@ static int fill_db(struct userdata *u, const char *filename) {
+                 struct entry e;
+ 
+                 pa_zero(e);
+-                e.version = ENTRY_VERSION;
+                 e.volume_valid = true;
+                 pa_cvolume_set(&e.volume, 1, pa_sw_volume_from_dB(db));
+                 pa_channel_map_init_mono(&e.channel_map);
+-- 
+2.26.2
+
+
+From 2ac2b445fcb81a3e6439e94cdefc2a482eab4fd1 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Tue, 26 May 2020 14:57:42 +0300
+Subject: [PATCH 2/3] stream-restore: Fix a potential crash in
+ pa_namereg_is_valid_name()
+
+pa_namereg_is_valid_name() will hit an assertion if the name string is
+NULL. Maybe it would make sense to change pa_namereg_is_valid_name() so
+that it would return false on NULL, but I didn't want to change the
+function semantics at this time.
+
+e->device and e->card can be NULL even when device_valid and card_valid
+are set to true if the database contains bad data.
+
+I ran into this crash while developing new code, I haven't seen the
+crash in the wild.
+---
+ src/modules/module-stream-restore.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c
+index b6358fcca..a86e6bc31 100644
+--- a/src/modules/module-stream-restore.c
++++ b/src/modules/module-stream-restore.c
+@@ -1144,12 +1144,12 @@ static struct entry *entry_read(struct userdata *u, const char *name) {
+     if (!pa_tagstruct_eof(t))
+         goto fail;
+ 
+-    if (e->device_valid && !pa_namereg_is_valid_name(e->device)) {
++    if (e->device_valid && (!e->device || !pa_namereg_is_valid_name(e->device))) {
+         pa_log_warn("Invalid device name stored in database for stream %s", name);
+         goto fail;
+     }
+ 
+-    if (e->card_valid && !pa_namereg_is_valid_name(e->card)) {
++    if (e->card_valid && (!e->card || !pa_namereg_is_valid_name(e->card))) {
+         pa_log_warn("Invalid card name stored in database for stream %s", name);
+         goto fail;
+     }
+-- 
+2.26.2
+
+
+From 1fe37e6d4bd5b2d183244538b250dae82ea27d47 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Tue, 26 May 2020 15:04:59 +0300
+Subject: [PATCH 3/3] stream-restore: Forget pre-14.0 stream routing
+
+Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and
+f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings
+overwrote the routing for all entries in the stream-restore database
+when selecting a device. Now we prevent that from happening (see the
+aforementioned commits), but the old overwritten settings can still be in
+the database after updating to PulseAudio 14.0, and they can cause
+problems, as documented here:
+https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
+
+We can't distinguish between devices set by GNOME's sound settings
+and devices set by the user, so this patch discards all old device
+settings, even though that is going to cause PulseAudio to forget routing
+settings for many users. This is less bad than keeping the incorrect
+routing settings in the database, because it's difficult for users to
+figure out how to fix the situation when e.g. speaker test tones go to
+the internal speakers no matter what device is selected as the default,
+whereas old manual configuration can be restored restored by doing the
+manual configuration again. Also, it's probably more common to have at
+some point changed the default device in GNOME's sound settings than it
+is to have any manual per-stream routing settings.
+
+This is disabled by default, because this causes data loss, but
+distributions that use GNOME are recommended to enable this with
+the --enable-stream-restore-clear-old-devices (Autotools) or
+-Dstream-restore-clear-old-devices=true (Meson) build option.
+
+Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
+---
+ configure.ac                        |  9 +++++++
+ meson.build                         |  6 +++++
+ meson_options.txt                   |  3 +++
+ src/modules/module-stream-restore.c | 42 ++++++++++++++++++++++++++++-
+ 4 files changed, 59 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index fa93172b7..11142cdd6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1477,6 +1477,12 @@ if test "x$enable_legacy_database_entry_format" != "xno" ; then
+         AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
+ fi
+ 
++AC_ARG_ENABLE([stream-restore-clear-old-devices],
++    AS_HELP_STRING([--enable-stream-restore-clear-old-devices], [Forget per-stream routing settings that have been set before version 14.0. Recommended when using GNOME. See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832]))
++if test "x$enable_stream_restore_clear_old_devices" == "xyes" ; then
++    AC_DEFINE(STREAM_RESTORE_CLEAR_OLD_DEVICES, [1], [module-stream-restore: Clear old devices])
++fi
++
+ AC_ARG_ENABLE([static-bins],
+     AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
+ AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
+@@ -1639,6 +1645,7 @@ AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], EN
+ 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)
++AS_IF([test "x$enable_stream_restore_clear_old_devices" == "xyes"], ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES=yes, ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES=no)
+ 
+ echo "
+  ---{ $PACKAGE_NAME $VERSION }---
+@@ -1710,6 +1717,8 @@ echo "
+     Preopened modules:             ${PREOPEN_MODS}
+ 
+     Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
++    module-stream-restore:
++      Clear old devices:           ${ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES}
+ "
+ 
+ if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
+diff --git a/meson.build b/meson.build
+index 88394e4b9..abb0ba21c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -522,6 +522,10 @@ if get_option('legacy-database-entry-format')
+   cdata.set('ENABLE_LEGACY_DATABASE_ENTRY_FORMAT', 1)
+ endif
+ 
++if get_option('stream-restore-clear-old-devices')
++  cdata.set('STREAM_RESTORE_CLEAR_OLD_DEVICES', 1)
++endif
++
+ if get_option('running-from-build-tree')
+   cdata.set('HAVE_RUNNING_FROM_BUILD_TREE', 1)
+ endif
+@@ -835,6 +839,8 @@ summary = [
+   '',
+   'Database:                      @0@'.format(get_option('database')),
+   'Legacy Database Entry Support: @0@'.format(get_option('legacy-database-entry-format')),
++  'module-stream-restore:',
++  '  Clear old devices:           @0@'.format(get_option('stream-restore-clear-old-devices')),
+   'Running from build tree:       @0@'.format(get_option('running-from-build-tree')),
+   'System User:                   @0@'.format(cdata.get_unquoted('PA_SYSTEM_USER')),
+   'System Group:                  @0@'.format(cdata.get_unquoted('PA_SYSTEM_GROUP')),
+diff --git a/meson_options.txt b/meson_options.txt
+index 817889271..c11b67ea8 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -24,6 +24,9 @@ option('database',
+ option('legacy-database-entry-format',
+        type : 'boolean',
+        description : 'Try to load legacy (< 1.0) database files (card, device and volume restore)')
++option('stream-restore-clear-old-devices',
++       type : 'boolean', value : false,
++       description : 'Forget per-stream routing settings that have been set before version 14.0. Recommended when using GNOME. See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832')
+ option('running-from-build-tree',
+        type : 'boolean',
+        description : 'Enable running from build tree')
+diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c
+index a86e6bc31..a3c76714c 100644
+--- a/src/modules/module-stream-restore.c
++++ b/src/modules/module-stream-restore.c
+@@ -113,7 +113,7 @@ struct userdata {
+ #endif
+ };
+ 
+-#define ENTRY_VERSION 1
++#define ENTRY_VERSION 2
+ 
+ struct entry {
+     bool muted_valid, volume_valid, device_valid, card_valid;
+@@ -1167,6 +1167,46 @@ static struct entry *entry_read(struct userdata *u, const char *name) {
+     pa_tagstruct_free(t);
+     pa_datum_free(&data);
+ 
++#ifdef STREAM_RESTORE_CLEAR_OLD_DEVICES
++    if (version < ENTRY_VERSION && e->device_valid) {
++        /* Prior to PulseAudio 14.0, GNOME's sound settings overwrote the
++         * routing for all entries in the stream-restore database when
++         * selecting a device. PulseAudio 14.0 prevents that from happening,
++         * but the old overwritten settings can still be in the database after
++         * updating to PulseAudio 14.0, and they can cause problems, as
++         * documented here:
++         * https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
++         *
++         * We can't distinguish between devices set by GNOME's sound settings
++         * and devices set by the user, so we discard all old device settings,
++         * even though that is going to cause PulseAudio to forget routing
++         * settings for many users. This is less bad than keeping the incorrect
++         * routing settings in the database, because it's difficult for users
++         * to figure out how to fix the situation when e.g. speaker test tones
++         * go to the internal speakers no matter what device is selected as the
++         * default, whereas old manual configuration can be restored restored
++         * by doing the manual configuration again. Also, it's probably more
++         * common to have at some point changed the default device in GNOME's
++         * sound settings than it is to have any manual per-stream routing
++         * settings. */
++        pa_log_warn("Device set, but it might be incorrect. Clearing the device. If this messes up your manual stream "
++                    "routing configuration, sorry about that. This is a workaround for this bug: "
++                    "https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832");
++        pa_log_warn("%s: device: %s -> (unset)", name, e->device);
++        pa_xfree(e->device);
++        e->device = NULL;
++        e->device_valid = false;
++        if (e->card_valid) {
++            pa_log_warn("%s: card: %s -> (unset)", name, e->card);
++            pa_xfree(e->card);
++            e->card = NULL;
++            e->card_valid = false;
++        }
++        entry_write(u, name, e, true);
++        trigger_save(u);
++    }
++#endif
++
+     return e;
+ 
+ fail:
+-- 
+2.26.2
+
+
diff -pruN 16.1+dfsg1-2/debian/patches/series 1:16.1+dfsg1-2ubuntu3/debian/patches/series
--- 16.1+dfsg1-2/debian/patches/series	2022-09-22 19:00:13.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/patches/series	2023-02-15 01:44:55.000000000 +0000
@@ -1 +1,19 @@
 disable-autospawn.patch
+
+# Ubuntu specific config/fixes
+0001-volume-config-changes.patch
+0016-nodisplay-autostart.patch
+0030-load-module-switch-on-connect.patch
+
+# Ubuntu Snap policy support
+0406-tagstruct-add-copy-method.patch
+0407-access-Add-access-control-hooks.patch
+0408-protocol-native-add-access-checks.patch
+0409-fix-arg-parsing-after-async-hook.patch
+0410-pa-client-peer-apparmor-label.patch
+0700-modules-add-snappy-policy-module.patch
+0701-enable-snap-policy-module.patch
+0702-add-snappy-policy-module.patch
+0016-check_off_profile_when_switching_profile.patch
+0001-card-restore-setting-preferred-ports-in-entry_from_c.patch
+0015-bluetooth-Amend-writeout-to-send-more-initial-frames.patch
diff -pruN 16.1+dfsg1-2/debian/pulseaudio.install 1:16.1+dfsg1-2ubuntu3/debian/pulseaudio.install
--- 16.1+dfsg1-2/debian/pulseaudio.install	2022-09-22 19:00:13.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/pulseaudio.install	2023-02-08 22:31:06.000000000 +0000
@@ -77,6 +77,7 @@ usr/lib/pulse-*/modules/module-virtual-s
 usr/lib/pulse-*/modules/module-virtual-source.so
 usr/lib/pulse-*/modules/module-switch-on-port-available.so
 usr/lib/pulse-*/modules/module-virtual-surround-sink.so
+usr/lib/pulse-*/modules/module-snap-policy.so
 usr/lib/pulse-*/modules/module-x11*.so
 usr/lib/pulse-*/modules/module-allow-passthrough.so
 [linux-any] usr/lib/pulse-*/modules/module-systemd-login.so
diff -pruN 16.1+dfsg1-2/debian/rules 1:16.1+dfsg1-2ubuntu3/debian/rules
--- 16.1+dfsg1-2/debian/rules	2022-09-22 19:00:13.000000000 +0000
+++ 1:16.1+dfsg1-2ubuntu3/debian/rules	2023-02-08 22:31:06.000000000 +0000
@@ -29,7 +29,6 @@ endif
 # Libs should be in the multi-arch path, but the modules should be in the
 # normal directory as pulseaudio is foreign
 DEB_MESON_OPTIONS = \
-  -Ddoxygen=false \
   -Dx11=enabled \
   -Dhal-compat=false \
   -Dgsettings=enabled \
@@ -47,6 +46,7 @@ DEB_MESON_OPTIONS = \
   -Djack=enabled \
   -Dopenssl=enabled \
   -Dipv6=true \
+  -Dsnap=enabled \
   -Dsoxr=enabled \
   -Dsystemd=$(systemd) \
   -Dudev=$(systemd) \
