commit 119b5baeda115ec028c50508f2c40397ec42b789 Author: CentOS Sources Date: Tue Nov 8 01:44:10 2022 -0500 import pulseaudio-14.0-4.el8 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..83307ff --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/pulseaudio-14.0.tar.xz diff --git a/.pulseaudio.metadata b/.pulseaudio.metadata new file mode 100644 index 0000000..d2bbcd1 --- /dev/null +++ b/.pulseaudio.metadata @@ -0,0 +1 @@ +c37a8551993ed045b3fa55176c9d1df4d2ed17a1 SOURCES/pulseaudio-14.0.tar.xz diff --git a/SOURCES/0001-alsa-card-add-dynamic-priority-bonus-base-for-alsa-p.patch b/SOURCES/0001-alsa-card-add-dynamic-priority-bonus-base-for-alsa-p.patch new file mode 100644 index 0000000..5f6177e --- /dev/null +++ b/SOURCES/0001-alsa-card-add-dynamic-priority-bonus-base-for-alsa-p.patch @@ -0,0 +1,122 @@ +From 832d7ac1144416306de1b6990d70115079bd1935 Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Fri, 21 Aug 2020 17:34:25 +0800 +Subject: [PATCH] alsa-card: add dynamic priority bonus base for alsa profiles + +After applying the commit 0d50e787 ("alsa-card: improve the profile +availability logic"), we met an new issue. when system selects the +initial profile, the profile off is selected instead of a profile with +a valid output device on it. That is the issue we met: + +Profiles: + HiFi: Default (sinks: 2, sources: 2, priority: 8000, available: no) + off: Off (sinks: 0, sources: 0, priority: 0, available: yes) +Active Profile: off +Ports: + [Out] Headphones: Headphones (priority: 300, latency offset: 0 usec, not available) + Part of profile(s): HiFi + [Out] Speaker: Speaker (priority: 100, latency offset: 0 usec) + Part of profile(s): HiFi +... + +I know the commit 0d50e787 really fixed something, but we still need +to fix the new issue, to do so, this patch introduces a priority bonus +for alsa profiles and separate the alsa profiles to 3 groups: +group a (will be granted priority bonus dynamically): +a profile has only output ports and at least one port is not unavailable +a profile has only input ports and at least one port is not unavailable +a profile has both input and output ports, and at least one output and +one input ports are not unavailable + +group b (will be marked unavailable) +a profile has only output ports and all ports are unavailable +a profile has only input ports and all ports are unavailable +a profile has both output and input ports, and all ports are unavailable + +group c +the rest profiles, their priority and availability is not changed. + +With this change, the profile HiFi will become avaialbe:yes, and will +not be granted priority bonus if no input port is plugged. + +The priority bonus provides a higher priority base to profiles, this +guarantees this patch doesn't break the fix of 0d50e787. + +https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/927 + +Signed-off-by: Hui Wang +Part-of: +--- + src/modules/alsa/module-alsa-card.c | 35 ++++++++++++++++++++++++----- + 1 file changed, 30 insertions(+), 5 deletions(-) + +diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c +index de2fe9cc4..5349314b5 100644 +--- a/src/modules/alsa/module-alsa-card.c ++++ b/src/modules/alsa/module-alsa-card.c +@@ -104,6 +104,13 @@ static const char* const valid_modargs[] = { + + #define DEFAULT_DEVICE_ID "0" + ++/* dynamic profile priority bonus, for all alsa profiles, the original priority ++ needs to be less than 0x7fff (32767), then could apply the rule of priority ++ bonus. So far there are 2 kinds of alsa profiles, one is from alsa ucm, the ++ other is from mixer profile-sets, their priorities are all far less than 0x7fff ++*/ ++#define PROFILE_PRIO_BONUS 0x8000 ++ + struct userdata { + pa_core *core; + pa_module *module; +@@ -459,9 +466,19 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + * as available (well, "unknown" to be precise, but there's little + * practical difference). + * +- * When all output ports are unavailable, we know that all sinks are +- * unavailable, and therefore the profile is marked unavailable as well. +- * The same applies to input ports as well, of course. ++ * A profile will be marked unavailable: ++ * only contains output ports and all ports are unavailable ++ * only contains input ports and all ports are unavailable ++ * contains both input and output ports and all ports are unavailable ++ * ++ * A profile will be awarded priority bonus: ++ * only contains output ports and at least one port is available ++ * only contains input ports and at least one port is available ++ * contains both output and input ports and at least one output port ++ * and one input port are available ++ * ++ * The rest profiles will not be marked unavailable and will not be ++ * awarded priority bonus + * + * If there are no output ports at all, but the profile contains at least + * one sink, then the output is considered to be available. */ +@@ -476,6 +493,7 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + bool found_available_output_port = false; + pa_available_t available = PA_AVAILABLE_UNKNOWN; + ++ profile->priority &= ~PROFILE_PRIO_BONUS; + PA_HASHMAP_FOREACH(port, u->card->ports, state2) { + if (!pa_hashmap_get(port->profiles, profile->name)) + continue; +@@ -493,8 +511,15 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + } + } + +- if ((has_input_port && !found_available_input_port) || (has_output_port && !found_available_output_port)) +- available = PA_AVAILABLE_NO; ++ if ((has_input_port && found_available_input_port && !has_output_port) || ++ (has_output_port && found_available_output_port && !has_input_port) || ++ (has_input_port && found_available_input_port && has_output_port && found_available_output_port)) ++ profile->priority |= PROFILE_PRIO_BONUS; ++ ++ if ((has_input_port && !found_available_input_port && has_output_port && !found_available_output_port) || ++ (has_input_port && !found_available_input_port && !has_output_port) || ++ (has_output_port && !found_available_output_port && !has_input_port)) ++ available = PA_AVAILABLE_NO; + + /* We want to update the active profile's status last, so logic that + * may change the active profile based on profile availability status +-- +2.36.1 + diff --git a/SOURCES/0001-bluez5-do-NameHasOwner-before-using-org.bluez.patch b/SOURCES/0001-bluez5-do-NameHasOwner-before-using-org.bluez.patch new file mode 100644 index 0000000..b57733f --- /dev/null +++ b/SOURCES/0001-bluez5-do-NameHasOwner-before-using-org.bluez.patch @@ -0,0 +1,94 @@ +From e50ec0deb7c20d1daa26cc7eab5a1ff75b9f7bf8 Mon Sep 17 00:00:00 2001 +From: Wim Taymans +Date: Wed, 17 Nov 2021 12:28:23 +0100 +Subject: [PATCH] bluez5: do NameHasOwner before using org.bluez + +We should not be using org.bluez when the bluetooth service is not +running or else we might try to activate it. The activation of the +bluetooth service should be done at boot time. +--- + src/modules/bluetooth/bluez5-util.c | 61 ++++++++++++++++++++++++++++- + 1 file changed, 60 insertions(+), 1 deletion(-) + +diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c +index a21896ede..282886e45 100644 +--- a/src/modules/bluetooth/bluez5-util.c ++++ b/src/modules/bluetooth/bluez5-util.c +@@ -1095,6 +1095,65 @@ static void get_managed_objects(pa_bluetooth_discovery *y) { + send_and_add_to_pending(y, m, get_managed_objects_reply, NULL); + } + ++static void check_name_owner_reply(DBusPendingCall *pending, void *userdata) { ++ pa_dbus_pending *p; ++ pa_bluetooth_discovery *y; ++ DBusMessage *r; ++ DBusError err; ++ bool running; ++ ++ pa_assert_se(p = userdata); ++ pa_assert_se(y = p->context_data); ++ pa_assert_se(r = dbus_pending_call_steal_reply(pending)); ++ ++ if (dbus_message_is_error(r, DBUS_ERROR_UNKNOWN_METHOD)) { ++ pa_log_warn("BlueZ D-Bus ObjectManager not available"); ++ goto finish; ++ } ++ ++ if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) { ++ pa_log_error("NameHasOwner() failed: %s: %s", dbus_message_get_error_name(r), pa_dbus_get_error_message(r)); ++ goto finish; ++ } ++ ++ if (!pa_streq(dbus_message_get_signature(r), "b")) { ++ pa_log_error("Invalid reply signature for NameHasOwner()"); ++ goto finish; ++ } ++ ++ dbus_error_init(&err); ++ if (!dbus_message_get_args(r, &err, DBUS_TYPE_BOOLEAN, &running, DBUS_TYPE_INVALID)) { ++ pa_log_error("Could not check bluetooth service: %s", err.message); ++ dbus_error_free(&err); ++ goto finish; ++ } ++ ++ pa_log_info("bluetooth service running: %s", running ? "yes" : "no"); ++ if (running) ++ get_managed_objects(y); ++ ++finish: ++ dbus_message_unref(r); ++ ++ PA_LLIST_REMOVE(pa_dbus_pending, y->pending, p); ++ pa_dbus_pending_free(p); ++} ++ ++static void check_name_owner(pa_bluetooth_discovery *y) { ++ DBusMessage *m; ++ const char *service = BLUEZ_SERVICE; ++ ++ pa_assert(y); ++ ++ pa_assert_se(m = dbus_message_new_method_call("org.freedesktop.DBus", ++ "/org/freedesktop/DBus", ++ "org.freedesktop.DBus", ++ "NameHasOwner")); ++ dbus_message_append_args(m, DBUS_TYPE_STRING, &service, DBUS_TYPE_INVALID); ++ ++ send_and_add_to_pending(y, m, check_name_owner_reply, NULL); ++} ++ + pa_hook* pa_bluetooth_discovery_hook(pa_bluetooth_discovery *y, pa_bluetooth_hook_t hook) { + pa_assert(y); + pa_assert(PA_REFCNT_VALUE(y) > 0); +@@ -1653,7 +1712,7 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c, int headset_backe + pa_xfree(endpoint); + } + +- get_managed_objects(y); ++ check_name_owner(y); + + return y; + +-- +2.36.1 + diff --git a/SOURCES/default.pa-for-gdm b/SOURCES/default.pa-for-gdm new file mode 100644 index 0000000..d633aee --- /dev/null +++ b/SOURCES/default.pa-for-gdm @@ -0,0 +1,10 @@ +load-module module-device-restore +load-module module-card-restore +load-module module-udev-detect +load-module module-native-protocol-unix +load-module module-default-device-restore +load-module module-rescue-streams +load-module module-always-sink +load-module module-intended-roles +load-module module-suspend-on-idle +load-module module-position-event-sounds diff --git a/SOURCES/pulseaudio-11.1-autospawn_disable.patch b/SOURCES/pulseaudio-11.1-autospawn_disable.patch new file mode 100644 index 0000000..48ce987 --- /dev/null +++ b/SOURCES/pulseaudio-11.1-autospawn_disable.patch @@ -0,0 +1,24 @@ +diff -up pulseaudio-11.1/src/pulse/client-conf.c.autospawn pulseaudio-11.1/src/pulse/client-conf.c +--- pulseaudio-11.1/src/pulse/client-conf.c.autospawn 2018-03-01 15:52:25.304612437 -0600 ++++ pulseaudio-11.1/src/pulse/client-conf.c 2018-03-01 15:56:17.643552698 -0600 +@@ -63,7 +63,7 @@ static const pa_client_conf default_conf + .cookie_from_x11_valid = false, + .cookie_file_from_application = NULL, + .cookie_file_from_client_conf = NULL, +- .autospawn = true, ++ .autospawn = false, + .disable_shm = false, + .disable_memfd = false, + .shm_size = 0, +diff -up pulseaudio-11.1/src/pulse/client.conf.in.autospawn pulseaudio-11.1/src/pulse/client.conf.in +--- pulseaudio-11.1/src/pulse/client.conf.in.autospawn 2016-08-23 07:50:10.000000000 -0500 ++++ pulseaudio-11.1/src/pulse/client.conf.in 2018-03-01 15:56:01.201344622 -0600 +@@ -22,7 +22,7 @@ + ; default-server = + ; default-dbus-server = + +-; autospawn = yes ++; autospawn = no + ; daemon-binary = @PA_BINARY@ + ; extra-arguments = --log-target=syslog + diff --git a/SOURCES/pulseaudio-14.0.tar.xz.sha256 b/SOURCES/pulseaudio-14.0.tar.xz.sha256 new file mode 100644 index 0000000..106880d --- /dev/null +++ b/SOURCES/pulseaudio-14.0.tar.xz.sha256 @@ -0,0 +1 @@ +a834775d9382b055504e5ee7625dc50768daac29329531deb6597bf05e06c261 pulseaudio-14.0.tar.xz diff --git a/SOURCES/pulseaudio-autostart.patch b/SOURCES/pulseaudio-autostart.patch new file mode 100644 index 0000000..6b18fce --- /dev/null +++ b/SOURCES/pulseaudio-autostart.patch @@ -0,0 +1,12 @@ +--- pulseaudio-13.99.1/src/daemon/start-pulseaudio-x11.in 2020-05-11 17:35:39.857484912 +0200 ++++ pulseaudio-13.99.1.new/src/daemon/start-pulseaudio-x11.in 2020-05-11 17:35:53.041199783 +0200 +@@ -17,6 +17,9 @@ + + set -e + ++# probe to test if autospawn works, else resort to starting manually ++@PACTL_BINARY@ info > /dev/null 2>&1 || @PA_BINARY@ --start "$@" ++ + if [ x"$DISPLAY" != x ] ; then + + @PACTL_BINARY@ load-module module-x11-publish "display=$DISPLAY xauthority=$XAUTHORITY" > /dev/null diff --git a/SPECS/pulseaudio.spec b/SPECS/pulseaudio.spec new file mode 100644 index 0000000..358deb0 --- /dev/null +++ b/SPECS/pulseaudio.spec @@ -0,0 +1,1068 @@ +%global pa_major 14.0 +#global pa_minor 0 + +#global snap 20141103 +#global gitrel 327 +#global gitcommit aec811798cd883a454b9b5cd82c77831906bbd2d +#global shortcommit (c=%{gitcommit}; echo ${c:0:5}) + +# webrtc bits go wonky without this +# see also https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/JQQ66XJSIT2FGTK2YQY7AXMEH5IXMPUX/ +%undefine _strict_symbol_defs_build +%global with_webrtc 1 + +# https://bugzilla.redhat.com/983606 +%global _hardened_build 1 + +## support systemd activation +%global systemd 1 + +## comment to disable tests +%global tests 1 + +# where/how to apply multilib hacks +%global multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9 ppc64le + +Name: pulseaudio +Summary: Improved Linux Sound Server +Version: %{pa_major}%{?pa_minor:.%{pa_minor}} +Release: 4%{?snap:.%{snap}git%{shortcommit}}%{?dist} +License: LGPLv2+ +URL: http://www.freedesktop.org/wiki/Software/PulseAudio +%if 0%{?gitrel} +# git clone git://anongit.freedesktop.org/pulseaudio/pulseaudio +# cd pulseaudio; git reset --hard %{gitcommit}; ./autogen.sh; make; make distcheck +Source0: pulseaudio-%{version}-%{gitrel}-g%{shortcommit}.tar.xz +%else +Source0: http://freedesktop.org/software/pulseaudio/releases/pulseaudio-%{version}.tar.xz +Source1: http://freedesktop.org/software/pulseaudio/releases/pulseaudio-%{version}.tar.xz.sha256 +%endif + +Source5: default.pa-for-gdm + +# revert upstream commit to rely solely on autospawn for autostart, instead +# include a fallback to manual launch when autospawn fails, like when +# user disables autospawn, or logging in as root +# valid even when using systemd socket activation too +Patch201: pulseaudio-autostart.patch + +# disable autospawn +Patch206: pulseaudio-11.1-autospawn_disable.patch + +## upstream patches +Patch301: 0001-alsa-card-add-dynamic-priority-bonus-base-for-alsa-p.patch +Patch302: 0001-bluez5-do-NameHasOwner-before-using-org.bluez.patch + +BuildRequires: automake libtool +BuildRequires: gcc-c++ +BuildRequires: pkgconfig(bash-completion) +%global bash_completionsdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || echo '/etc/bash_completion.d') +BuildRequires: m4 +BuildRequires: libtool-ltdl-devel +BuildRequires: intltool +BuildRequires: pkgconfig +BuildRequires: doxygen +BuildRequires: xmltoman +BuildRequires: libsndfile-devel +BuildRequires: alsa-lib-devel +BuildRequires: glib2-devel +BuildRequires: gtk2-devel +BuildRequires: GConf2-devel +BuildRequires: avahi-devel +%if 0%{?fedora} +%global enable_lirc 1 +%global enable_jack 1 +%endif +BuildRequires: libatomic_ops-static, libatomic_ops-devel +BuildRequires: pkgconfig(bluez) >= 5.0 +BuildRequires: sbc-devel +BuildRequires: libXt-devel +BuildRequires: xorg-x11-proto-devel +BuildRequires: libXtst-devel +BuildRequires: libXi-devel +BuildRequires: libSM-devel +BuildRequires: libX11-devel +BuildRequires: libICE-devel +BuildRequires: xcb-util-devel +BuildRequires: openssl-devel +BuildRequires: orc-devel +BuildRequires: libtdb-devel +%if 0%{?fedora} +BuildRequires: pkgconfig(soxr) +%endif +BuildRequires: pkgconfig(speexdsp) >= 1.2 +BuildRequires: libasyncns-devel +%if 0%{?systemd} +BuildRequires: systemd-devel >= 184 +BuildRequires: systemd +%{?systemd_requires} +%endif +BuildRequires: dbus-devel +BuildRequires: libcap-devel +BuildRequires: pkgconfig(fftw3f) +%if 0%{?with_webrtc} +BuildRequires: pkgconfig(webrtc-audio-processing) >= 0.2 +%endif +%if 0%{?tests} +BuildRequires: pkgconfig(check) +%endif + +# retired along with -libs-zeroconf, add Obsoletes here for lack of anything better +Obsoletes: padevchooser < 1.0 +Requires(pre): shadow-utils +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: rtkit + +%if 0%{?fedora} +# Virtual Provides to support swapping between PipeWire-PA and PA +Provides: pulseaudio-daemon +Conflicts: pulseaudio-daemon +%endif + +%description +PulseAudio is a sound server for Linux and other Unix like operating +systems. It is intended to be an improved drop-in replacement for the +Enlightened Sound Daemon (ESOUND). + +%package qpaeq +Summary: Pulseaudio equalizer interface +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: python3-qt5 +Requires: python3-dbus +%description qpaeq +qpaeq is a equalizer interface for pulseaudio's equalizer sinks. + +%package esound-compat +Summary: PulseAudio EsounD daemon compatibility script +Requires: %{name}%{?_isa} = %{version}-%{release} +%description esound-compat +A compatibility script that allows applications to call /usr/bin/esd +and start PulseAudio with EsounD protocol modules. + +%if 0%{?enable_lirc} +%package module-lirc +Summary: LIRC support for the PulseAudio sound server +BuildRequires: lirc-devel +Requires: %{name}%{?_isa} = %{version}-%{release} +%description module-lirc +LIRC volume control module for the PulseAudio sound server. +%endif + +%package module-x11 +Summary: X11 support for the PulseAudio sound server +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-utils + +%description module-x11 +X11 bell and security modules for the PulseAudio sound server. + +%package module-zeroconf +Summary: Zeroconf support for the PulseAudio sound server +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-utils + +%description module-zeroconf +Zeroconf publishing module for the PulseAudio sound server. + +%package module-bluetooth +Summary: Bluetooth support for the PulseAudio sound server +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: bluez >= 5.0 + +%description module-bluetooth +Contains Bluetooth audio (A2DP/HSP/HFP) support for the PulseAudio sound server. + +%if 0%{?enable_jack} +%package module-jack +Summary: JACK support for the PulseAudio sound server +BuildRequires: jack-audio-connection-kit-devel +Requires: %{name}%{?_isa} = %{version}-%{release} +%description module-jack +JACK sink and source modules for the PulseAudio sound server. +%endif + +%package module-gconf +Summary: GConf support for the PulseAudio sound server +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description module-gconf +GConf configuration backend for the PulseAudio sound server. + +%package module-gsettings +Summary: Gsettings support for the PulseAudio sound server +Requires: %{name}%{?_isa} = %{version}-%{release} +%description module-gsettings +GSettings configuration backend for the PulseAudio sound server. + +%package libs +Summary: Libraries for PulseAudio clients +License: LGPLv2+ +Obsoletes: pulseaudio-libs-zeroconf < 1.1 + +%description libs +This package contains the runtime libraries for any application that wishes +to interface with a PulseAudio sound server. + +%package libs-glib2 +Summary: GLIB 2.x bindings for PulseAudio clients +License: LGPLv2+ +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description libs-glib2 +This package contains bindings to integrate the PulseAudio client library with +a GLIB 2.x based application. + +%package libs-devel +Summary: Headers and libraries for PulseAudio client development +License: LGPLv2+ +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-libs-glib2%{?_isa} = %{version}-%{release} +%description libs-devel +Headers and libraries for developing applications that can communicate with +a PulseAudio sound server. + +%package utils +Summary: PulseAudio sound server utilities +License: LGPLv2+ +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +# when made non-multilib'd, https://bugzilla.redhat.com/891425 +Obsoletes: pulseaudio-utils < 3.0-3 + +%description utils +This package contains command line utilities for the PulseAudio sound server. + +%prep +%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}} + +## upstream patches + +## upstreamable patches + +%patch201 -p1 -b .autostart +%if 0%{?systemd} +%patch206 -p1 -b .autospawn_disable +%endif +%patch301 -p1 -b .301 +%patch302 -p1 -b .302 + +sed -i.no_consolekit -e \ + 's/^load-module module-console-kit/#load-module module-console-kit/' \ + src/daemon/default.pa.in + +%if 0%{?gitrel:1} +# fixup PACKAGE_VERSION that leaks into pkgconfig files and friends +sed -i.PACKAGE_VERSION -e "s|^PACKAGE_VERSION=.*|PACKAGE_VERSION=\'%{version}\'|" configure +%else +## kill rpaths +# needed for (at least) patch18 +NOCONFIGURE=1 ./bootstrap.sh + +#if "%{_libdir}" != "/usr/lib" +#sed -i -e 's|"/lib /usr/lib|"/%{_lib} %{_libdir}|' configure +#endif +%endif + + +%build +%configure \ + --disable-silent-rules \ + --disable-static \ + --disable-rpath \ + --with-system-user=pulse \ + --with-system-group=pulse \ + --with-access-group=pulse-access \ + --disable-oss-output \ + %{?enable_jack:--enable-jack}%{!?enable_jack:--disable-jack} \ + %{?enable_lirc:--enable-lirc}%{!?enable_lirc:--disable-lirc} \ + --disable-tcpwrap \ + --disable-bluez4 \ + --enable-bluez5 \ + --enable-gconf \ + --enable-gsettings \ +%ifarch %{arm} + --disable-neon-opt \ +%endif +%if 0%{?with_webrtc} + --enable-webrtc-aec \ +%endif + %{!?systemd:--disable-systemd-daemon} \ + %{?tests:--enable-tests} + +# we really should preopen here --preopen-mods=module-udev-detect.la, --force-preopen +%make_build V=1 + +make doxygen + + +%install +%make_install + +## padsp multilib hack alert +%ifarch %{multilib_archs} +pushd %{buildroot}%{_bindir} +# make 32 bit version available as padsp-32 +# %%{_libdir} == /usr/lib may be a naive check for 32bit-ness +# but should be the only case we care about here -- rex +%if "%{_libdir}" == "/usr/lib" +ln -s padsp padsp-32 +%else +cp -a padsp padsp-32 +sed -i -e "s|%{_libdir}/pulseaudio/libpulsedsp.so|/usr/lib/pulseaudio/libpulsedsp.so|g" padsp-32 +%endif +popd +%endif + +# upstream should use udev.pc +mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/udev/rules.d +mv -fv $RPM_BUILD_ROOT/lib/udev/rules.d/90-pulseaudio.rules $RPM_BUILD_ROOT%{_prefix}/lib/udev/rules.d + +## unpackaged files +# extraneous libtool crud +rm -fv $RPM_BUILD_ROOT%{_libdir}/lib*.la +rm -fv $RPM_BUILD_ROOT%{_libdir}/pulseaudio/lib*.la +rm -fv $RPM_BUILD_ROOT%{_libdir}/pulse-%{pa_major}/modules/*.la +# PA_MODULE_DEPRECATED("Please use module-udev-detect instead of module-detect!"); +rm -fv $RPM_BUILD_ROOT%{_libdir}/pulse-%{pa_major}/modules/module-detect.so + +%find_lang %{name} + + +%check +%if 0%{?tests} +%ifarch %{ix86} s390x +# FIXME: i686 FAIL: cpu-remap-test +# FIXME: s390x FAIL: core-util-test +%global tests_nonfatal 1 +%endif +%if 0%{?fedora} || 0%{?rhel} > 7 +# regression'ish failures on rawhide, not worth failing build (for now) -- rex +%global tests_nonfatal 1 +%endif +%make_build check || TESTS_ERROR=$? +if [ "${TESTS_ERROR}" != "" ]; then +cat src/test-suite.log +%{!?tests_nonfatal:exit $TESTS_ERROR} +fi +%endif + + +%pre +getent group pulse-access >/dev/null || groupadd -r pulse-access +getent group pulse-rt >/dev/null || groupadd -r pulse-rt +getent group pulse >/dev/null || groupadd -f -g 171 -r pulse +if ! getent passwd pulse >/dev/null ; then + if ! getent passwd 171 >/dev/null ; then + useradd -r -u 171 -g pulse -d %{_localstatedir}/run/pulse -s /sbin/nologin -c "PulseAudio System Daemon" pulse + else + useradd -r -g pulse -d %{_localstatedir}/run/pulse -s /sbin/nologin -c "PulseAudio System Daemon" pulse + fi +fi +exit 0 + +%posttrans +# handle renamed module-cork-music-on-phone => module-role-cork +(grep '^load-module module-cork-music-on-phone$' %{_sysconfdir}/pulse/default.pa > /dev/null && \ + sed -i.rpmsave -e 's|^load-module module-cork-music-on-phone$|load-module module-role-cork|' \ + %{_sysconfdir}/pulse/default.pa +) ||: + +%post +%{?ldconfig} +%if 0%{?systemd} +# unsure if we want both .socket and .service here (or only socket) +# play it safe and do both for now -- rex +%systemd_user_post pulseaudio.service +%systemd_user_post pulseaudio.socket +%endif + +%if 0%{?systemd} +%preun +%systemd_user_preun pulseaudio.service +%systemd_user_preun pulseaudio.socket +%endif + +%ldconfig_postun + +%if 0%{?systemd} +%triggerun -- pulseaudio < 12.2-4 +# This is for upgrades from previous versions which had a static symlink. +# The %%post scriptlet above only does anything on initial package installation. +# Remove before F33. +systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || : +%endif + +%files +%doc README +%license LICENSE GPL LGPL +%config(noreplace) %{_sysconfdir}/pulse/daemon.conf +%config(noreplace) %{_sysconfdir}/pulse/default.pa +%config(noreplace) %{_sysconfdir}/pulse/system.pa +%{_sysconfdir}/dbus-1/system.d/pulseaudio-system.conf +%{bash_completionsdir}/* +%if 0%{?systemd} +%{_userunitdir}/pulseaudio.service +%{_userunitdir}/pulseaudio.socket +%endif +%{_bindir}/pa-info +%{_bindir}/pulseaudio +%{_libdir}/pulseaudio/libpulsecore-%{pa_major}.so +%dir %{_libdir}/pulse-%{pa_major}/ +%dir %{_libdir}/pulse-%{pa_major}/modules/ +%{_libdir}/pulse-%{pa_major}/modules/libalsa-util.so +%{_libdir}/pulse-%{pa_major}/modules/libcli.so +%{_libdir}/pulse-%{pa_major}/modules/libprotocol-cli.so +%{_libdir}/pulse-%{pa_major}/modules/libprotocol-esound.so +%{_libdir}/pulse-%{pa_major}/modules/libprotocol-http.so +%{_libdir}/pulse-%{pa_major}/modules/libprotocol-native.so +%{_libdir}/pulse-%{pa_major}/modules/libprotocol-simple.so +%{_libdir}/pulse-%{pa_major}/modules/librtp.so +%if 0%{?with_webrtc} +%{_libdir}/pulse-%{pa_major}/modules/libwebrtc-util.so +%endif +%{_libdir}/pulse-%{pa_major}/modules/module-allow-passthrough.so +%{_libdir}/pulse-%{pa_major}/modules/module-alsa-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-alsa-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-alsa-card.so +%{_libdir}/pulse-%{pa_major}/modules/module-cli-protocol-tcp.so +%{_libdir}/pulse-%{pa_major}/modules/module-cli-protocol-unix.so +%{_libdir}/pulse-%{pa_major}/modules/module-cli.so +%{_libdir}/pulse-%{pa_major}/modules/module-combine.so +%{_libdir}/pulse-%{pa_major}/modules/module-combine-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-dbus-protocol.so +%{_libdir}/pulse-%{pa_major}/modules/module-filter-apply.so +%{_libdir}/pulse-%{pa_major}/modules/module-filter-heuristics.so +%{_libdir}/pulse-%{pa_major}/modules/module-device-manager.so +%{_libdir}/pulse-%{pa_major}/modules/module-loopback.so +%{_libdir}/pulse-%{pa_major}/modules/module-esound-compat-spawnfd.so +%{_libdir}/pulse-%{pa_major}/modules/module-esound-compat-spawnpid.so +%{_libdir}/pulse-%{pa_major}/modules/module-esound-protocol-tcp.so +%{_libdir}/pulse-%{pa_major}/modules/module-esound-protocol-unix.so +%{_libdir}/pulse-%{pa_major}/modules/module-esound-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-udev-detect.so +%{_libdir}/pulse-%{pa_major}/modules/module-hal-detect.so +%{_libdir}/pulse-%{pa_major}/modules/module-http-protocol-tcp.so +%{_libdir}/pulse-%{pa_major}/modules/module-http-protocol-unix.so +%{_libdir}/pulse-%{pa_major}/modules/module-match.so +%{_libdir}/pulse-%{pa_major}/modules/module-mmkbd-evdev.so +%{_libdir}/pulse-%{pa_major}/modules/module-native-protocol-fd.so +%{_libdir}/pulse-%{pa_major}/modules/module-native-protocol-tcp.so +%{_libdir}/pulse-%{pa_major}/modules/module-native-protocol-unix.so +%{_libdir}/pulse-%{pa_major}/modules/module-null-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-null-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-pipe-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-pipe-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-remap-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-rescue-streams.so +%{_libdir}/pulse-%{pa_major}/modules/module-role-ducking.so +%{_libdir}/pulse-%{pa_major}/modules/module-rtp-recv.so +%{_libdir}/pulse-%{pa_major}/modules/module-rtp-send.so +%{_libdir}/pulse-%{pa_major}/modules/module-simple-protocol-tcp.so +%{_libdir}/pulse-%{pa_major}/modules/module-simple-protocol-unix.so +%{_libdir}/pulse-%{pa_major}/modules/module-sine.so +%{_libdir}/pulse-%{pa_major}/modules/module-switch-on-port-available.so +%{_libdir}/pulse-%{pa_major}/modules/module-systemd-login.so +%{_libdir}/pulse-%{pa_major}/modules/module-tunnel-sink-new.so +%{_libdir}/pulse-%{pa_major}/modules/module-tunnel-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-tunnel-source-new.so +%{_libdir}/pulse-%{pa_major}/modules/module-tunnel-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-volume-restore.so +%{_libdir}/pulse-%{pa_major}/modules/module-suspend-on-idle.so +%{_libdir}/pulse-%{pa_major}/modules/module-default-device-restore.so +%{_libdir}/pulse-%{pa_major}/modules/module-device-restore.so +%{_libdir}/pulse-%{pa_major}/modules/module-stream-restore.so +%{_libdir}/pulse-%{pa_major}/modules/module-card-restore.so +%{_libdir}/pulse-%{pa_major}/modules/module-ladspa-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-remap-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-always-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-always-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-console-kit.so +%{_libdir}/pulse-%{pa_major}/modules/module-position-event-sounds.so +%{_libdir}/pulse-%{pa_major}/modules/module-augment-properties.so +%{_libdir}/pulse-%{pa_major}/modules/module-role-cork.so +%{_libdir}/pulse-%{pa_major}/modules/module-sine-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-intended-roles.so +%{_libdir}/pulse-%{pa_major}/modules/module-rygel-media-server.so +%{_libdir}/pulse-%{pa_major}/modules/module-echo-cancel.so +%{_libdir}/pulse-%{pa_major}/modules/module-switch-on-connect.so +%{_libdir}/pulse-%{pa_major}/modules/module-virtual-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-virtual-source.so +%{_libdir}/pulse-%{pa_major}/modules/module-virtual-surround-sink.so +%dir %{_datadir}/pulseaudio/ +%dir %{_datadir}/pulseaudio/alsa-mixer/ +%{_datadir}/pulseaudio/alsa-mixer/paths/ +%{_datadir}/pulseaudio/alsa-mixer/profile-sets/ +%{_mandir}/man1/pulseaudio.1* +%{_mandir}/man5/default.pa.5* +%{_mandir}/man5/pulse-cli-syntax.5* +%{_mandir}/man5/pulse-client.conf.5* +%{_mandir}/man5/pulse-daemon.conf.5* +%{_prefix}/lib/udev/rules.d/90-pulseaudio.rules +%dir %{_libexecdir}/pulse +%dir %{_datadir}/zsh/ +%dir %{_datadir}/zsh/site-functions/ +%{_datadir}/zsh/site-functions/_pulseaudio + +%files qpaeq +%{_bindir}/qpaeq +%{_libdir}/pulse-%{pa_major}/modules/module-equalizer-sink.so + +%files esound-compat +%{_bindir}/esdcompat +%{_mandir}/man1/esdcompat.1.gz + +%if 0%{?enable_lirc} +%files module-lirc +%{_libdir}/pulse-%{pa_major}/modules/module-lirc.so +%endif + +%files module-x11 +%{_sysconfdir}/xdg/autostart/pulseaudio.desktop +#{_bindir}/start-pulseaudio-kde +%{_bindir}/start-pulseaudio-x11 +%{_libdir}/pulse-%{pa_major}/modules/module-x11-bell.so +%{_libdir}/pulse-%{pa_major}/modules/module-x11-publish.so +%{_libdir}/pulse-%{pa_major}/modules/module-x11-xsmp.so +%{_libdir}/pulse-%{pa_major}/modules/module-x11-cork-request.so +%{_mandir}/man1/start-pulseaudio-x11.1.gz + +%files module-zeroconf +%{_libdir}/pulse-%{pa_major}/modules/libavahi-wrap.so +%{_libdir}/pulse-%{pa_major}/modules/module-zeroconf-publish.so +%{_libdir}/pulse-%{pa_major}/modules/module-zeroconf-discover.so +%{_libdir}/pulse-%{pa_major}/modules/libraop.so +%{_libdir}/pulse-%{pa_major}/modules/module-raop-discover.so +%{_libdir}/pulse-%{pa_major}/modules/module-raop-sink.so + +%if 0%{?enable_jack} +%files module-jack +%{_libdir}/pulse-%{pa_major}/modules/module-jackdbus-detect.so +%{_libdir}/pulse-%{pa_major}/modules/module-jack-sink.so +%{_libdir}/pulse-%{pa_major}/modules/module-jack-source.so +%endif + +%files module-bluetooth +%{_libdir}/pulse-%{pa_major}/modules/libbluez*-util.so +%{_libdir}/pulse-%{pa_major}/modules/module-bluez*-device.so +%{_libdir}/pulse-%{pa_major}/modules/module-bluez*-discover.so +%{_libdir}/pulse-%{pa_major}/modules/module-bluetooth-discover.so +%{_libdir}/pulse-%{pa_major}/modules/module-bluetooth-policy.so + +%files module-gconf +%{_libdir}/pulse-%{pa_major}/modules/module-gconf.so +%{_libexecdir}/pulse/gconf-helper + +%files module-gsettings +%{_libdir}/pulse-%{pa_major}/modules/module-gsettings.so +%{_libexecdir}/pulse/gsettings-helper +%{_datadir}/GConf/gsettings/pulseaudio.convert +%{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml + +%ldconfig_scriptlets libs + +%files libs -f %{name}.lang +%doc README LICENSE GPL LGPL +%dir %{_sysconfdir}/pulse/ +%config(noreplace) %{_sysconfdir}/pulse/client.conf +%{_libdir}/libpulse.so.0* +%{_libdir}/libpulse-simple.so.0* +%dir %{_libdir}/pulseaudio/ +%{_libdir}/pulseaudio/libpulsecommon-%{pa_major}.so +%{_libdir}/pulseaudio/libpulsedsp.so + +%ldconfig_scriptlets libs-glib2 + +%files libs-glib2 +%{_libdir}/libpulse-mainloop-glib.so.0* + +%files libs-devel +%doc doxygen/html +%{_includedir}/pulse/ +%{_libdir}/libpulse.so +%{_libdir}/libpulse-mainloop-glib.so +%{_libdir}/libpulse-simple.so +%{_libdir}/pkgconfig/libpulse*.pc +%dir %{_datadir}/vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala/vapi/libpulse.vapi +%{_datadir}/vala/vapi/libpulse.deps +%{_datadir}/vala/vapi/libpulse-mainloop-glib.vapi +%{_datadir}/vala/vapi/libpulse-mainloop-glib.deps +%{_datadir}/vala/vapi/libpulse-simple.deps +%{_datadir}/vala/vapi/libpulse-simple.vapi + +%dir %{_libdir}/cmake +%{_libdir}/cmake/PulseAudio/ + +%files utils +%{_bindir}/pacat +%{_bindir}/pacmd +%{_bindir}/pactl +%{_bindir}/paplay +%{_bindir}/parec +%{_bindir}/pamon +%{_bindir}/parecord +%{_bindir}/pax11publish +%{_bindir}/padsp +%ifarch %{multilib_archs} +%{_bindir}/padsp-32 +%endif +%{_bindir}/pasuspender +%{_mandir}/man1/pacat.1* +%{_mandir}/man1/pacmd.1* +%{_mandir}/man1/pactl.1* +%{_mandir}/man1/padsp.1* +%{_mandir}/man1/pamon.1* +%{_mandir}/man1/paplay.1* +%{_mandir}/man1/parec.1* +%{_mandir}/man1/parecord.1* +%{_mandir}/man1/pasuspender.1* +%{_mandir}/man1/pax11publish.1* + +%changelog +* Fri Jun 17 2022 Wim Taymans - 14.0-4 +- Add patch to avoid bluez warning. +- Resolves: rhbz#1969944 + +* Thu May 12 2022 Wim Taymans - 14.0-3 +- Add patch for profile switching +- Resolves: rhbz#2052011. rhbz#2073877 + +* Wed Feb 03 2021 Wim Taymans - 14.0-2 +- Add pulseaudio-daemon' Provides + Conflicts only on fedora +- Resolves: rhbz#1924094 + +* Thu Dec 10 2020 Wim Taymans - 14.0-1 +- Update to 14.0 +- Add pulseaudio-daemon' Provides + Conflicts to support + swapping with PipeWire +- Resolves: rhbz#1906322 + +* Mon May 11 2020 Wim Taymans - 13.99.1-1 +- Update to 13.99.1 +- Resolves: rhbz#1817378 + +* Thu Sep 12 2019 Wim Taymans - 11.1-23 +- Add xauthority parameter to X11 modules +- Fix compilation against newer alsa-lib +- Resolves: rhbz#1723065 + +* Tue Sep 04 2018 Wim Taymans - 11.1-22 +- Use python3 version of qt5 +- Resolves: rhbz#1591134 + +* Mon Sep 03 2018 Wim Taymans - 11.1-21 +- Fix port to qt5. +- Resolves: rhbz#1591134 + +* Fri Jul 13 2018 Petr Viktorin - 11.1-20 +- Fix dbus-python dependency + +* Fri Jun 22 2018 Than Ngo - 11.1-19 +- fixed bz#1580853, FTBFS + +* Wed Mar 21 2018 Rex Dieter - 11.1-18 +- manually package sockets.target.wants/pulseaudio.socket to help + handle socket activation on upgrades + +* Tue Mar 20 2018 Rex Dieter - 11.1-17 +- omit -gdm-hooks, moved to gdm (f28+) + +* Tue Mar 13 2018 Rex Dieter - 11.1-16 +- skip patch93, seems to cause crashes w/headphone jacks (#1544507,#1551270,#1554035) + +* Mon Mar 05 2018 Igor Gnatenko - 11.1-15 +- Fixup ldconfig scriptlets + +* Thu Mar 01 2018 Rex Dieter - 11.1-14 +- use %%make_build, %%make_install +- enable systemd socket/service activation on f28+ (and disable autospawn) + +* Wed Feb 28 2018 Rex Dieter - 11.1-13 +- use %%license, %%ldconfig_scriptlets +- use better upstream patch for exit-idle-time + +* Sun Feb 25 2018 Rex Dieter - 11.1-12 +- BR: gcc-c++ + +* Fri Feb 09 2018 Igor Gnatenko - 11.1-11 +- Escape macros in %%changelog + +* Fri Feb 09 2018 Fedora Release Engineering - 11.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 01 2018 Rex Dieter - 11.1-9 +- backport upstream fixes: memfd, qpape PyQt5 port + +* Mon Jan 08 2018 Rex Dieter - 11.1-8 +- exit-idle-time = 4 (#1510301) +- f28+ ftbfs: memfd_create conflicts +- drop getaffinity.patch (no longer needed) +- enable webrtc support for all archs +- make tests non-fatal on i686,s390x + +* Mon Dec 04 2017 Rex Dieter - 11.1-7 +- backport 'pa_sink_input_assert_ref()' crashfix (#1472285) +- --disable-tcpwrap on f28+ (#1518777) + +* Wed Nov 08 2017 Hans de Goede - 11.1-6 +- Fix pa crashing on Bay- and Cherry-Trail devices + +* Wed Nov 01 2017 Rex Dieter - 11.1-5 +- actually install new dell-dock-tb16-usb-audio.conf alsa profile (#1492344) + +* Thu Oct 12 2017 Rex Dieter - 11.1-4 +- experimental fixes bluetooth profile switching (f28+ only, fdo#93898) + +* Thu Oct 12 2017 Rex Dieter - 11.1-3 +- include experiemental Intel HDMI LPE fixes (fdo#100488) + +* Mon Oct 09 2017 Rex Dieter - 11.1-2 +- backport some alsa-mixer related fixes (#1492344) + +* Wed Sep 20 2017 Rex Dieter - 11.1-1 +- pulseaudio-11.1 + +* Tue Sep 05 2017 Rex Dieter - 11.0-1 +- pulseaudio-11.0 + +* Mon Aug 28 2017 Pete Walter - 10.99.1-6 +- Enable pulseaudio-module-bluetooth on s390x + +* Fri Aug 18 2017 Wim Taymans - 10.99.1-5 +- Remove /var/run/pulse and /var/lib/pulse, they are directories in tmpfs + +* Thu Aug 03 2017 Fedora Release Engineering - 10.99.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Sun Jul 30 2017 Florian Weimer - 10.99.1-3 +- Rebuild with binutils fix for ppc64le (#1475636) + +* Thu Jul 27 2017 Fedora Release Engineering - 10.99.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Jul 25 2017 Rex Dieter - 10.99.1-1 +- pulseaudio-10.99.1 (#1474559) + +* Mon Feb 13 2017 Wim Taymans - 10.0-4 +- Add flatpak access control + +* Sat Feb 11 2017 Fedora Release Engineering - 10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 19 2017 Kalev Lember - 10.0-2 +- Fix the build on RHEL + +* Thu Jan 19 2017 Kalev Lember - 10.0-1 +- Update to 10.0 + +* Fri Jan 06 2017 Rex Dieter - 9.99.1-1 +- pulseaudio-9.99.1 (#1409939) +- %%check: use %%_smp_mflags + +* Fri Jun 24 2016 Rex Dieter - 9.0-1 +- pulseaudio-9.0 + +* Wed Jun 22 2016 Than Ngo - 8.99.2-3 +- enable %%check +- fix bz#1345826, only start threads on activ CPUs + +* Mon Jun 13 2016 Rex Dieter - 8.99.2-2 +- %%check: make non-fatal, echo test-suite.log on failure (#1345826) + +* Tue May 31 2016 Rex Dieter - 8.99.2-1 +- pulseaudio-8.99.2 + +* Thu May 12 2016 Rex Dieter - 8.99.1-2 +- re-enable webrtc support (arm,x86_64 only for now) + +* Thu May 12 2016 Rex Dieter - 8.99.1-1 +- pulseaudio-8.99.1 (#1335527) +- disable webrtc support for now (waiting on #1335536) + +* Fri May 06 2016 Rex Dieter - 8.0-7 +- use %%tests macro, enable systemd socket activation (#1265720) + +* Sat Mar 05 2016 Rex Dieter - 8.0-6 +- respin disable_flat_volumes.patch harder + +* Sat Mar 05 2016 Rex Dieter - 8.0-5 +- respin disable_flat_volumes.patch + +* Fri Mar 04 2016 Rex Dieter - 8.0-4 +- RFE: Disable PulseAudio's flat volumes f24+ (#1265267) + +* Thu Feb 04 2016 Fedora Release Engineering - 8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 22 2016 Rex Dieter - 8.0-2 +- own /var/run/pulse (#1173811) + +* Fri Jan 22 2016 Rex Dieter - 8.0-1 +- pulseaudio-8.0 (#1301040) + +* Wed Jan 13 2016 Rex Dieter - 7.99.2-1 +- pulseaudio-7.99.2 (#1297774) + +* Mon Dec 28 2015 Rex Dieter - 7.99.1-1 +- pulseaudio-7.99.1 (8.0 rc1) (#1294555) + +* Sat Oct 31 2015 Rex Dieter - 7.1-1 +- pulseaudio-7.1 (#1276811) + +* Sat Oct 31 2015 Rex Dieter - 7.0-4 +- apply srbchannel patch + +* Tue Oct 27 2015 Rex Dieter - 7.0-3 +- backport srbchannel crasher fix + +* Sun Sep 27 2015 Rex Dieter - 7.0-2 +- PulseAudio doesn't load locales (fdo#92142) + +* Wed Sep 23 2015 Rex Dieter - 7.0-1 +- pulseaudio-7.0 + +* Sat Sep 12 2015 Rex Dieter - 6.99.2-1 +- 6.99.2 (#1262579) + +* Sat Aug 29 2015 Rex Dieter - 6.99.1-2 +- enable libsoxr support + +* Fri Aug 28 2015 Rex Dieter - 6.99.1-1 +- 6.99.1 (#1257770) + +* Mon Jul 06 2015 Rex Dieter - 6.0-8 +- autostart.patch: fix stdout/stderr redirection + +* Mon Jul 06 2015 Rex Dieter - 6.0-7 +- fix resampler-related build dependencies (libsamplerate/speex) (#1239208) + +* Mon Jun 22 2015 Rex Dieter - 6.0-6 +- better autostart.patch, handle case were autospawn is disabled (or otherwise doesn't work, like for root user) + +* Thu Jun 18 2015 Fedora Release Engineering - 6.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 11 2015 Rex Dieter - 6.0-4 +- pulseaudio 6.0 breaks 5.1 network sound configuration (#1230957) + +* Sat May 02 2015 Kalev Lember - 6.0-3 +- Rebuilt for GCC 5 C++11 ABI change + +* Tue Feb 17 2015 Rex Dieter 6.0-2 +- duplicate directory between pulseaudio and pulseaudio-libs (#909690) + +* Fri Feb 13 2015 Rex Dieter 6.0-1 +- pulseaudio-6.0 (#1192384) + +* Thu Jan 22 2015 Rex Dieter 5.99.3-1 +- pulseaudio-5.99.3 (6.0-rc3) (#1184850) + +* Sat Dec 20 2014 Rex Dieter 5.99.2-2 +- fix changelog + +* Fri Dec 19 2014 Rex Dieter 5.99.2-1 +- pulseaudio-5.99.2 (6.0-rc2) + +* Fri Nov 21 2014 Rex Dieter 5.99.1-1 +- pulseaudio-5.99.1 (6.0-rc1) + +* Fri Nov 14 2014 Rex Dieter 5.0-100.20141103gitaec81 +- artificially bump Release to 100, to ensure upgrade path + +* Thu Nov 06 2014 Rex Dieter 5.0-24.20141103gitaec81 +- --disable-systemd-daemon, revert to autospawn mode + +* Thu Nov 06 2014 Rex Dieter - 5.0-23.20141103gitaec81 +- 20141103 327-gaec81 snapshot, pulseaudio socket activation support +- use bash completionsdir + +* Wed Nov 05 2014 Orion Poplawski 5.0-22.20141007git4971d +- Really add pulse-rt group when needed (bug #885020) + +* Wed Oct 22 2014 Rex Dieter 5.0-21.20141007git4971d +- BR: automake libtool (for bootstrap.sh) + +* Wed Oct 22 2014 Rex Dieter 5.0-20.20141007git4971d +- snapshot, with wip bt headset2 patches (#1045548,#1067470) + +* Sun Aug 17 2014 Fedora Release Engineering - 5.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 29 2014 Kalev Lember - 5.0-9 +- Rebuilt once more for libjson-c + +* Mon Jul 28 2014 Peter Robinson 5.0-8 +- Rebuild (libjson-c) + +* Wed Jul 16 2014 Rex Dieter 5.0-7 +- Provide padsp-32, /usr/bin/padsp is native arch only (#856146) + +* Mon Jul 07 2014 Rex Dieter - 5.0-6 +- rtp-recv: fix crash on empty UDP packets (CVE-2014-3970,#1104835,#1108011) +- name HDMI outputs uniquely + +* Sat Jun 07 2014 Fedora Release Engineering - 5.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 13 2014 Dan Horák 5.0-4 +- always run tests, but don't fail the build on big endian arches (relates #1067470) + +* Sat Apr 12 2014 Rex Dieter 5.0-3 +- Pulse Audio settings lost after reboot / HDMI is set as default (#1035025) + +* Tue Mar 11 2014 Rex Dieter 5.0-2 +- drop Requires: kernel (per recent -devel ml thread) + +* Tue Mar 04 2014 Rex Dieter 5.0-1 +- 5.0 (#1072259) + +* Wed Feb 26 2014 Karsten Hopp 4.99.4-3 +- disable make check on PPC* (rhbz #1067470) + +* Mon Feb 17 2014 Rex Dieter 4.99.4-2 +- -qpaeq subpkg (#1002585) + +* Sat Feb 15 2014 Rex Dieter 4.99.4-1 +- 4.99.4 + +* Wed Jan 29 2014 Rex Dieter 4.99.3-1 +- 4.99.3 + +* Mon Jan 27 2014 Wim Taymans - 4.99.2-2 +- don't mark .desktop and dbus configurations as %%config + +* Fri Jan 24 2014 Rex Dieter - 4.99.2-1 +- 4.99.2 (#1057528) + +* Wed Jan 22 2014 Wim Taymans - 4.0-12.gitf81e3 +- Use the statically allocated UID and GID from /usr/share/doc/setup/uidgid (#1056656) +- The pulse-rt group doesn't exist (#885020) + +* Wed Jan 22 2014 Rex Dieter - 4.0-11.gitf81e3 +- handle jack/lirc modules better (#1056619) +- -libs-devel: own some dirs to avoid deps on cmake/vala +- -module-bluetooth: make dep arch'd for consistency + +* Fri Jan 10 2014 Rex Dieter - 4.0-10.gitf81e3 +- enable hardened build (#983606) + +* Sat Dec 07 2013 Rex Dieter - 4.0-9.gitf81e3 +- X-KDE-autostart-phase=1 + +* Wed Oct 30 2013 Rex Dieter - 4.0-8.gitf81e3 +- fix PACKAGE_VERSION + +* Mon Oct 14 2013 Rex Dieter - 4.0-7.gitf81e3 +- %%build fix typo, explicitly --enable-tests + +* Mon Oct 14 2013 Rex Dieter - 4.0-6.gitf81e3 +- ship a single autostart file + +* Fri Oct 11 2013 Rex Dieter - 4.0-5.gitf81e3 +- fresh snapshot + +* Mon Sep 23 2013 Kalev Lember - 4.0-4.gita89ca +- Update to today's git snapshot +- Backport a patch for pulseaudio crash at startup (#1000966) + +* Thu Aug 15 2013 Kalev Lember - 4.0-3.gitbf9b3 +- Update to git snapshot bf9b3f0 for BlueZ 5 support + +* Sun Aug 04 2013 Fedora Release Engineering - 4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jun 4 2013 Peter Robinson 4.0-1 +- New 4.0 stable release +- http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/4.0/ + +* Thu May 30 2013 Rex Dieter 3.99.2-2 +- [RFE] Build with libcap (#969232) + +* Sun May 26 2013 Peter Robinson 3.99.2-1 +- pulseaudio-3.99.2 (#966631) + +* Fri May 03 2013 Rex Dieter 3.99.1-1 +- pulseaudio-3.99.1 (#952594) +- RFE: Restore the pipe-sink and pipe-source modules (#958949) +- prune (pre 1.x) changelog + +* Thu Apr 11 2013 Rex Dieter 3.0-7 +- pull a few more patches from upstream stable-3.x branch + +* Fri Feb 08 2013 Rex Dieter 3.0-6 +- default.pa: fix for renamed modules (#908117) + +* Sat Jan 19 2013 Ville Skyttä - 3.0-5 +- Own the %%{_libdir}/pulseaudio dir. +- Fix bogus %%changelog dates. + +* Fri Jan 04 2013 Rex Dieter 3.0-4 +- alsa-mixer: Fix the analog-output-speaker-always path + +* Fri Jan 04 2013 Rex Dieter 3.0-3 +- move libpulsedsp plugin to -libs, avoids -utils multilib (#891425) + +* Wed Dec 19 2012 Dan Horák 3.0-2 +- SBC is needed only when BlueZ is used + +* Tue Dec 18 2012 Rex Dieter 3.0-1 +- pulseaudio-3.0 + +* Tue Dec 11 2012 Peter Robinson 2.99.3-1 +- PulseAudio 2.99.3 (3.0 rc3) + +* Wed Oct 10 2012 Dan Horák 2.1-4 +- fix the with_webrtc condition + +* Tue Oct 09 2012 Dan Horák 2.1-3 +- webrtc-aec is x86 and ARM only for now + +* Mon Oct 08 2012 Debarshi Ray 2.1-2 +- Enable webrtc-aec + +* Tue Sep 25 2012 Rex Dieter 2.1-1 +- pulseaudio-2.1 + +* Sat Jul 21 2012 Fedora Release Engineering - 2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jun 23 2012 Kalev Lember - 2.0-3 +- Move module-jackdbus-detect.so to -module-jack subpackage with the + rest of the jack modules + +* Mon Jun 04 2012 Kay Sievers - 2.0-2 +- rebuild for libudev1 + +* Sat May 12 2012 Rex Dieter 2.0-1 +- pulseaudio-2.0 + +* Sat Apr 21 2012 Matthias Clasen - 1.1-9 +- Don't load the ck module in gdm, either + +* Tue Feb 28 2012 Bruno Wolff III - 1.1-8 +- Bring in Lennart's patch from f17 +- Temporary fix for CK/systemd move (#794690) + +* Tue Feb 28 2012 Bruno Wolff III - 1.1-7 +- Fix for building with gcc 4.7 + +* Mon Jan 23 2012 Dan Horák - 1.1-6 +- rebuilt for json-c-0.9-4.fc17 + +* Sat Jan 14 2012 Fedora Release Engineering - 1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 13 2011 Adam Jackson 1.1-4 +- Fix RHEL build + +* Tue Nov 22 2011 Rex Dieter 1.1-3 +- Obsoletes: padevchooser < 1.0 + +* Thu Nov 10 2011 Rex Dieter 1.1-2 +- -libs: Obsoletes: pulseaudio-libs-zeroconf +- use versioned Obsoletes/Provides +- tighten subpkg deps via %%_isa +- remove autoconf/libtool hackery + +* Thu Nov 3 2011 Lennart Poettering - 1.1-1 +- New upstream release