Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

13 changed files with 595 additions and 476 deletions

20
.gitignore vendored
View File

@ -1 +1,19 @@
SOURCES/pulseaudio-14.0.tar.xz
/.*.log
/*.src.rpm
/pulseaudio-*.tar.xz
/pulseaudio-*.tar.xz.md5
/pulseaudio-*.tar.xz.sha1
/pulseaudio-12.2.tar.xz.sha256
/pulseaudio-12.99.1.tar.xz.sha256
/pulseaudio-12.99.2.tar.xz.sha256
/pulseaudio-12.99.3.tar.xz.sha256
/pulseaudio-13.0.tar.xz.sha256
/pulseaudio-13.99.1.tar.xz.sha256
/pulseaudio-13.99.2.tar.xz.sha256
/pulseaudio-13.99.3.tar.xz.sha256
/pulseaudio-14.0.tar.xz.sha256
/pulseaudio-14.1.tar.xz.sha256
/pulseaudio-14.2.tar.xz.sha256
/pulseaudio-15.0.tar.xz.sha256sum
/pulseaudio-16.1.tar.xz.sha256sum
/pulseaudio-17.0.tar.xz.sha256sum

View File

@ -1 +0,0 @@
c37a8551993ed045b3fa55176c9d1df4d2ed17a1 SOURCES/pulseaudio-14.0.tar.xz

View File

@ -0,0 +1,105 @@
From 84f5b742e39ba3e375bac9144e0243b7331f4019 Mon Sep 17 00:00:00 2001
From: Arun Raghavan <arun@asymptotic.io>
Date: Fri, 22 Mar 2024 09:31:48 -0400
Subject: [PATCH] tests: Don't run volume tests with impossible alignments
This worked so far somehow, but we were sending in some samples at
unrealistic alignments (given that pa_memblockq will be frame-aligned,
and we expect all operations to occur per-frame as well).
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/3803
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/812>
---
src/tests/cpu-volume-test.c | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/src/tests/cpu-volume-test.c b/src/tests/cpu-volume-test.c
index c7d73be04..24811ead0 100644
--- a/src/tests/cpu-volume-test.c
+++ b/src/tests/cpu-volume-test.c
@@ -43,6 +43,7 @@ static void run_volume_test(
int channels,
bool correct,
bool perf) {
+ fail_unless(align % channels == 0);
PA_DECLARE_ALIGNED(8, int16_t, s[SAMPLES]) = { 0 };
PA_DECLARE_ALIGNED(8, int16_t, s_ref[SAMPLES]) = { 0 };
@@ -56,8 +57,6 @@ static void run_volume_test(
samples_ref = s_ref + (8 - align);
samples_orig = s_orig + (8 - align);
nsamples = SAMPLES - (8 - align);
- if (nsamples % channels)
- nsamples -= nsamples % channels;
size = nsamples * sizeof(int16_t);
pa_random(samples, size);
@@ -119,12 +118,12 @@ START_TEST (svolume_mmx_test) {
pa_log_debug("Checking MMX svolume");
for (i = 1; i <= 3; i++) {
- for (j = 0; j < 7; j++)
- run_volume_test(mmx_func, orig_func, j, i, true, false);
+ for (j = 0; j <= 7; j += i)
+ run_volume_test(mmx_func, orig_func, j, i, true, j == 0);
}
run_volume_test(mmx_func, orig_func, 7, 1, true, true);
- run_volume_test(mmx_func, orig_func, 7, 2, true, true);
- run_volume_test(mmx_func, orig_func, 7, 3, true, true);
+ run_volume_test(mmx_func, orig_func, 6, 2, true, true);
+ run_volume_test(mmx_func, orig_func, 6, 3, true, true);
}
END_TEST
@@ -146,12 +145,12 @@ START_TEST (svolume_sse_test) {
pa_log_debug("Checking SSE2 svolume");
for (i = 1; i <= 3; i++) {
- for (j = 0; j < 7; j++)
- run_volume_test(sse_func, orig_func, j, i, true, false);
+ for (j = 0; j < 7; j += i)
+ run_volume_test(sse_func, orig_func, j, i, true, j == 0);
}
run_volume_test(sse_func, orig_func, 7, 1, true, true);
- run_volume_test(sse_func, orig_func, 7, 2, true, true);
- run_volume_test(sse_func, orig_func, 7, 3, true, true);
+ run_volume_test(sse_func, orig_func, 6, 2, true, true);
+ run_volume_test(sse_func, orig_func, 6, 3, true, true);
}
END_TEST
#endif /* defined (__i386__) || defined (__amd64__) */
@@ -175,12 +174,12 @@ START_TEST (svolume_arm_test) {
pa_log_debug("Checking ARM svolume");
for (i = 1; i <= 3; i++) {
- for (j = 0; j < 7; j++)
- run_volume_test(arm_func, orig_func, j, i, true, false);
+ for (j = 0; j < 7; j += i)
+ run_volume_test(arm_func, orig_func, j, i, true, j == 0);
}
run_volume_test(arm_func, orig_func, 7, 1, true, true);
- run_volume_test(arm_func, orig_func, 7, 2, true, true);
- run_volume_test(arm_func, orig_func, 7, 3, true, true);
+ run_volume_test(arm_func, orig_func, 6, 2, true, true);
+ run_volume_test(arm_func, orig_func, 6, 3, true, true);
}
END_TEST
#endif /* defined (__arm__) && defined (__linux__) */
@@ -207,11 +206,11 @@ START_TEST (svolume_orc_test) {
pa_log_debug("Checking Orc svolume");
for (i = 1; i <= 2; i++) {
- for (j = 0; j < 7; j++)
- run_volume_test(orc_func, orig_func, j, i, true, false);
+ for (j = 0; j < 7; j += i)
+ run_volume_test(orc_func, orig_func, j, i, true, j == 0);
}
run_volume_test(orc_func, orig_func, 7, 1, true, true);
- run_volume_test(orc_func, orig_func, 7, 2, true, true);
+ run_volume_test(orc_func, orig_func, 6, 2, true, true);
}
END_TEST
--
2.45.0

View File

@ -1,122 +0,0 @@
From 832d7ac1144416306de1b6990d70115079bd1935 Mon Sep 17 00:00:00 2001
From: Hui Wang <hui.wang@canonical.com>
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 <hui.wang@canonical.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/355>
---
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

View File

@ -1,94 +0,0 @@
From e50ec0deb7c20d1daa26cc7eab5a1ff75b9f7bf8 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
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

View File

@ -1 +0,0 @@
a834775d9382b055504e5ee7625dc50768daac29329531deb6597bf05e06c261 pulseaudio-14.0.tar.xz

View File

@ -1,12 +0,0 @@
--- 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

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

View File

@ -0,0 +1,14 @@
diff --git a/src/daemon/start-pulseaudio-x11.in b/src/daemon/start-pulseaudio-x11.in
index 722a639c0..7cdf14e4d 100755
--- a/src/daemon/start-pulseaudio-x11.in
+++ b/src/daemon/start-pulseaudio-x11.in
@@ -17,6 +17,9 @@
set -e
+# probe to test if autospawn works, else resort to starting manually
+@PACTL_BINARY@ info > /dev/null 2>&1 || /usr/bin/pulseaudio --start "$@"
+
if [ -n "$1" ] ; then
case $1 in
stop)

View File

@ -1,22 +1,30 @@
%global pa_major 14.0
%global pa_major 17.0
#global pa_minor 0
#global snap 20141103
#global gitrel 327
#global gitcommit aec811798cd883a454b9b5cd82c77831906bbd2d
#global shortcommit (c=%{gitcommit}; echo ${c:0:5})
#global snap 20200105
#global gitrel 103
#global gitcommit f5d3606fe76302c7dbdb0f6a80400df829a5f846
#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
%if 0%{?fedora}
%global enable_daemon 1
%global enable_lirc 1
%global enable_jack 1
%endif
# https://bugzilla.redhat.com/983606
%global _hardened_build 1
## support systemd activation
%global systemd 1
# gdm-hooks moved to gdm packaging f28+
%if 0%{?fedora} < 28 && 0%{?rhel} < 8
%global gdm_hooks 1
%endif
## comment to disable tests
%global tests 1
@ -26,8 +34,8 @@
Name: pulseaudio
Summary: Improved Linux Sound Server
Version: %{pa_major}%{?pa_minor:.%{pa_minor}}
Release: 4%{?snap:.%{snap}git%{shortcommit}}%{?dist}
License: LGPLv2+
Release: 6%{?snap:.%{snap}git%{shortcommit}}%{?dist}
License: LGPL-2.1-or-later
URL: http://www.freedesktop.org/wiki/Software/PulseAudio
%if 0%{?gitrel}
# git clone git://anongit.freedesktop.org/pulseaudio/pulseaudio
@ -35,7 +43,7 @@ URL: http://www.freedesktop.org/wiki/Software/PulseAudio
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
Source1: http://freedesktop.org/software/pulseaudio/releases/pulseaudio-%{version}.tar.xz.sha256sum
%endif
Source5: default.pa-for-gdm
@ -50,29 +58,40 @@ Patch201: pulseaudio-autostart.patch
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++
# https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/812
Patch1: 0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch
## upstreamable patches
BuildRequires: meson >= 0.50.0
BuildRequires: gcc
BuildRequires: g++
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
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(sndfile)
%if 0%{?systemd}
BuildRequires: pkgconfig(libsystemd)
%endif
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(fftw3f)
BuildRequires: pkgconfig(libasyncns) >= 0.1
BuildRequires: pkgconfig(gtk+-3.0)
%if 0%{?tests}
BuildRequires: pkgconfig(check)
%endif
%if 0%{?enable_daemon}
BuildRequires: libtool-ltdl-devel
BuildRequires: alsa-lib-devel
BuildRequires: avahi-devel
BuildRequires: libatomic_ops-static, libatomic_ops-devel
BuildRequires: pkgconfig(bluez) >= 5.0
BuildRequires: sbc-devel
@ -97,15 +116,13 @@ 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)
BuildRequires: pkgconfig(webrtc-audio-processing-1) >= 1.0
%endif
BuildRequires: pkgconfig(gstreamer-1.0) >= 1.16.0
BuildRequires: pkgconfig(gstreamer-app-1.0) >= 1.16.0
BuildRequires: pkgconfig(gstreamer-rtp-1.0) >= 1.16.0
# retired along with -libs-zeroconf, add Obsoletes here for lack of anything better
Obsoletes: padevchooser < 1.0
@ -113,10 +130,14 @@ 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
# Packages removed in 15.0
Obsoletes: pulseaudio-esound-compat < 15.0
Obsoletes: pulseaudio-module-gconf < 15.0
%endif
%description
@ -124,21 +145,16 @@ 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).
%if 0%{?enable_daemon}
%package qpaeq
Summary: Pulseaudio equalizer interface
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python3-qt5
Requires: python3-qt5-base
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
@ -181,22 +197,17 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
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.
%endif
%package libs
Summary: Libraries for PulseAudio clients
License: LGPLv2+
License: LGPL-2.1-or-later
Obsoletes: pulseaudio-libs-zeroconf < 1.1
%description libs
@ -205,7 +216,7 @@ to interface with a PulseAudio sound server.
%package libs-glib2
Summary: GLIB 2.x bindings for PulseAudio clients
License: LGPLv2+
License: LGPL-2.1-or-later
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description libs-glib2
@ -214,7 +225,7 @@ a GLIB 2.x based application.
%package libs-devel
Summary: Headers and libraries for PulseAudio client development
License: LGPLv2+
License: LGPL-2.1-or-later
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-libs-glib2%{?_isa} = %{version}-%{release}
%description libs-devel
@ -223,7 +234,7 @@ a PulseAudio sound server.
%package utils
Summary: PulseAudio sound server utilities
License: LGPLv2+
License: LGPL-2.1-or-later
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# when made non-multilib'd, https://bugzilla.redhat.com/891425
Obsoletes: pulseaudio-utils < 3.0-3
@ -231,31 +242,36 @@ Obsoletes: pulseaudio-utils < 3.0-3
%description utils
This package contains command line utilities for the PulseAudio sound server.
%if 0%{?gdm_hooks}
%package gdm-hooks
Summary: PulseAudio GDM integration
License: LGPL-2.1-or-later
Requires: gdm >= 1:2.22.0
# for the gdm user
Requires(pre): gdm
%description gdm-hooks
This package contains GDM integration hooks for the PulseAudio sound server.
%endif
%prep
%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}}
## upstream patches
%patch 1 -p1 -b .volume_test
## upstreamable patches
%patch201 -p1 -b .autostart
%patch 201 -p1 -b .autostart
%if 0%{?systemd}
%patch206 -p1 -b .autospawn_disable
%patch 206 -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
@ -264,38 +280,40 @@ NOCONFIGURE=1 ./bootstrap.sh
%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 \
%meson \
-D client=true \
-D valgrind=disabled \
-D systemd=%{?systemd:enabled}%{!?systemd:disabled} \
-D oss-output=enabled \
-D gtk=disabled \
%if 0%{?enable_daemon}
-D daemon=true \
-D system_user=pulse \
-D system_group=pulse \
-D access_group=pulse-access \
-D jack=%{?enable_jack:enabled}%{!?enable_jack:disabled} \
-D lirc=%{?enable_lirc:enabled}%{!?enable_lirc:disabled} \
-D tcpwrap=disabled \
-D bluez5=enabled \
-D gstreamer=enabled \
-D bluez5-gstreamer=enabled \
-D gsettings=enabled \
-D elogind=disabled \
-D soxr=%{?fedora:enabled}%{!?fedora:disabled} \
-D webrtc-aec=%{?with_webrtc:enabled}%{!?with_webrtc:disabled} \
-D consolekit=disabled \
%else
-D daemon=false \
%endif
%if 0%{?with_webrtc}
--enable-webrtc-aec \
%endif
%{!?systemd:--disable-systemd-daemon} \
%{?tests:--enable-tests}
-D tests=%{?tests:true}%{!?tests:false}
# we really should preopen here --preopen-mods=module-udev-detect.la, --force-preopen
%make_build V=1
make doxygen
%meson_build
%meson_build doxygen
%install
%make_install
%meson_install
## padsp multilib hack alert
%ifarch %{multilib_archs}
@ -312,17 +330,25 @@ sed -i -e "s|%{_libdir}/pulseaudio/libpulsedsp.so|/usr/lib/pulseaudio/libpulseds
popd
%endif
%if 0%{?enable_daemon}
# 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
%endif
%if 0%{?gdm_hooks}
install -p -m644 -D %{SOURCE5} $RPM_BUILD_ROOT%{_localstatedir}/lib/gdm/.pulse/default.pa
%endif
## 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
rm -fv $RPM_BUILD_ROOT%{_libdir}/pulseaudio/modules/module-detect.so
rm -fv $RPM_BUILD_ROOT%{_libdir}/pulseaudio/modules/liboss-util.so
rm -fv $RPM_BUILD_ROOT%{_libdir}/pulseaudio/modules/module-oss.so
%if !0%{?enable_daemon}
# only partially usable with pipewire-pulseaudio
rm -fv $RPM_BUILD_ROOT%{_bindir}/pa-info
%endif
%find_lang %{name}
@ -334,11 +360,11 @@ rm -fv $RPM_BUILD_ROOT%{_libdir}/pulse-%{pa_major}/modules/module-detect.so
# FIXME: s390x FAIL: core-util-test
%global tests_nonfatal 1
%endif
%if 0%{?fedora} || 0%{?rhel} > 7
%if 0%{?fedora} > 27
# regression'ish failures on rawhide, not worth failing build (for now) -- rex
%global tests_nonfatal 1
%endif
%make_build check || TESTS_ERROR=$?
%meson_test || TESTS_ERROR=$?
if [ "${TESTS_ERROR}" != "" ]; then
cat src/test-suite.log
%{!?tests_nonfatal:exit $TESTS_ERROR}
@ -346,6 +372,8 @@ fi
%endif
%if 0%{?enable_daemon}
%pre
getent group pulse-access >/dev/null || groupadd -r pulse-access
getent group pulse-rt >/dev/null || groupadd -r pulse-rt
@ -370,14 +398,18 @@ exit 0
%{?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
# test socket-only on f31+ -- rex
%if 0%{?fedora} < 31
%systemd_user_post pulseaudio.service
%endif
%systemd_user_post pulseaudio.socket
%endif
%if 0%{?systemd}
%preun
%if 0%{?fedora} < 31
%systemd_user_preun pulseaudio.service
%endif
%systemd_user_preun pulseaudio.socket
%endif
@ -391,14 +423,17 @@ exit 0
systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || :
%endif
%endif
%if 0%{?enable_daemon}
%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}/*
%{bash_completionsdir}/pulseaudio
%if 0%{?systemd}
%{_userunitdir}/pulseaudio.service
%{_userunitdir}/pulseaudio.socket
@ -406,95 +441,88 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || :
%{_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
%dir %{_libdir}/pulseaudio/
%dir %{_libdir}/pulseaudio/modules/
%{_libdir}/pulseaudio/modules/libalsa-util.so
%{_libdir}/pulseaudio/modules/libcli.so
%{_libdir}/pulseaudio/modules/libprotocol-cli.so
%{_libdir}/pulseaudio/modules/libprotocol-http.so
%{_libdir}/pulseaudio/modules/libprotocol-native.so
%{_libdir}/pulseaudio/modules/libprotocol-simple.so
%{_libdir}/pulseaudio/modules/librtp.so
%if 0%{?with_webrtc}
%{_libdir}/pulse-%{pa_major}/modules/libwebrtc-util.so
%{_libdir}/pulseaudio/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
%{_libdir}/pulseaudio/modules/module-allow-passthrough.so
%{_libdir}/pulseaudio/modules/module-alsa-sink.so
%{_libdir}/pulseaudio/modules/module-alsa-source.so
%{_libdir}/pulseaudio/modules/module-alsa-card.so
%{_libdir}/pulseaudio/modules/module-cli-protocol-tcp.so
%{_libdir}/pulseaudio/modules/module-cli-protocol-unix.so
%{_libdir}/pulseaudio/modules/module-cli.so
%{_libdir}/pulseaudio/modules/module-combine.so
%{_libdir}/pulseaudio/modules/module-combine-sink.so
%{_libdir}/pulseaudio/modules/module-dbus-protocol.so
%{_libdir}/pulseaudio/modules/module-filter-apply.so
%{_libdir}/pulseaudio/modules/module-filter-heuristics.so
%{_libdir}/pulseaudio/modules/module-device-manager.so
%{_libdir}/pulseaudio/modules/module-loopback.so
%{_libdir}/pulseaudio/modules/module-udev-detect.so
%{_libdir}/pulseaudio/modules/module-hal-detect.so
%{_libdir}/pulseaudio/modules/module-http-protocol-tcp.so
%{_libdir}/pulseaudio/modules/module-http-protocol-unix.so
%{_libdir}/pulseaudio/modules/module-match.so
%{_libdir}/pulseaudio/modules/module-mmkbd-evdev.so
%{_libdir}/pulseaudio/modules/module-native-protocol-fd.so
%{_libdir}/pulseaudio/modules/module-native-protocol-tcp.so
%{_libdir}/pulseaudio/modules/module-native-protocol-unix.so
%{_libdir}/pulseaudio/modules/module-null-sink.so
%{_libdir}/pulseaudio/modules/module-null-source.so
%{_libdir}/pulseaudio/modules/module-pipe-sink.so
%{_libdir}/pulseaudio/modules/module-pipe-source.so
%{_libdir}/pulseaudio/modules/module-remap-source.so
%{_libdir}/pulseaudio/modules/module-rescue-streams.so
%{_libdir}/pulseaudio/modules/module-role-ducking.so
%{_libdir}/pulseaudio/modules/module-rtp-recv.so
%{_libdir}/pulseaudio/modules/module-rtp-send.so
%{_libdir}/pulseaudio/modules/module-simple-protocol-tcp.so
%{_libdir}/pulseaudio/modules/module-simple-protocol-unix.so
%{_libdir}/pulseaudio/modules/module-sine.so
%{_libdir}/pulseaudio/modules/module-switch-on-port-available.so
%{_libdir}/pulseaudio/modules/module-systemd-login.so
%{_libdir}/pulseaudio/modules/module-tunnel-sink-new.so
%{_libdir}/pulseaudio/modules/module-tunnel-sink.so
%{_libdir}/pulseaudio/modules/module-tunnel-source-new.so
%{_libdir}/pulseaudio/modules/module-tunnel-source.so
%{_libdir}/pulseaudio/modules/module-volume-restore.so
%{_libdir}/pulseaudio/modules/module-suspend-on-idle.so
%{_libdir}/pulseaudio/modules/module-default-device-restore.so
%{_libdir}/pulseaudio/modules/module-device-restore.so
%{_libdir}/pulseaudio/modules/module-stream-restore.so
%{_libdir}/pulseaudio/modules/module-card-restore.so
%{_libdir}/pulseaudio/modules/module-ladspa-sink.so
%{_libdir}/pulseaudio/modules/module-remap-sink.so
%{_libdir}/pulseaudio/modules/module-always-sink.so
%{_libdir}/pulseaudio/modules/module-always-source.so
%{_libdir}/pulseaudio/modules/module-position-event-sounds.so
%{_libdir}/pulseaudio/modules/module-augment-properties.so
%{_libdir}/pulseaudio/modules/module-role-cork.so
%{_libdir}/pulseaudio/modules/module-sine-source.so
%{_libdir}/pulseaudio/modules/module-intended-roles.so
%{_libdir}/pulseaudio/modules/module-rygel-media-server.so
%{_libdir}/pulseaudio/modules/module-echo-cancel.so
%{_libdir}/pulseaudio/modules/module-switch-on-connect.so
%{_libdir}/pulseaudio/modules/module-virtual-sink.so
%{_libdir}/pulseaudio/modules/module-virtual-source.so
%{_libdir}/pulseaudio/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/
%{_datadir}/dbus-1/system.d/pulseaudio-system.conf
%{_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
@ -504,63 +532,60 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || :
%files qpaeq
%{_bindir}/qpaeq
%{_libdir}/pulse-%{pa_major}/modules/module-equalizer-sink.so
%files esound-compat
%{_bindir}/esdcompat
%{_mandir}/man1/esdcompat.1.gz
%{_libdir}/pulseaudio/modules/module-equalizer-sink.so
%if 0%{?enable_lirc}
%files module-lirc
%{_libdir}/pulse-%{pa_major}/modules/module-lirc.so
%{_libdir}/pulseaudio/modules/module-lirc.so
%endif
%files module-x11
%{_sysconfdir}/xdg/autostart/pulseaudio.desktop
%config(noreplace) %{_sysconfdir}/xdg/autostart/pulseaudio.desktop
%config(noreplace) %{_sysconfdir}/xdg/Xwayland-session.d/00-pulseaudio-x11
%{_userunitdir}/pulseaudio-x11.service
#{_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
%{_libdir}/pulseaudio/modules/module-x11-bell.so
%{_libdir}/pulseaudio/modules/module-x11-publish.so
%{_libdir}/pulseaudio/modules/module-x11-xsmp.so
%{_libdir}/pulseaudio/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
%{_libdir}/pulseaudio/modules/libavahi-wrap.so
%{_libdir}/pulseaudio/modules/module-zeroconf-publish.so
%{_libdir}/pulseaudio/modules/module-zeroconf-discover.so
%{_libdir}/pulseaudio/modules/libraop.so
%{_libdir}/pulseaudio/modules/module-raop-discover.so
%{_libdir}/pulseaudio/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
%{_libdir}/pulseaudio/modules/module-jackdbus-detect.so
%{_libdir}/pulseaudio/modules/module-jack-sink.so
%{_libdir}/pulseaudio/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
%{_libdir}/pulseaudio/modules/libbluez*-util.so
%{_libdir}/pulseaudio/modules/module-bluez*-device.so
%{_libdir}/pulseaudio/modules/module-bluez*-discover.so
%{_libdir}/pulseaudio/modules/module-bluetooth-discover.so
%{_libdir}/pulseaudio/modules/module-bluetooth-policy.so
%files module-gsettings
%{_libdir}/pulse-%{pa_major}/modules/module-gsettings.so
%{_libdir}/pulseaudio/modules/module-gsettings.so
%{_libexecdir}/pulse/gsettings-helper
%{_datadir}/GConf/gsettings/pulseaudio.convert
%{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml
%endif
%ldconfig_scriptlets libs
%files libs -f %{name}.lang
%doc README LICENSE GPL LGPL
%doc README
%license LICENSE GPL LGPL
%dir %{_sysconfdir}/pulse/
%config(noreplace) %{_sysconfdir}/pulse/client.conf
%{_libdir}/libpulse.so.0*
@ -569,13 +594,14 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || :
%{_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
%doc %{_vpath_builddir}/doxygen/html
%{_includedir}/pulse/
%{_libdir}/libpulse.so
%{_libdir}/libpulse-mainloop-glib.so
@ -595,7 +621,6 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || :
%files utils
%{_bindir}/pacat
%{_bindir}/pacmd
%{_bindir}/pactl
%{_bindir}/paplay
%{_bindir}/parec
@ -606,59 +631,238 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || :
%ifarch %{multilib_archs}
%{_bindir}/padsp-32
%endif
%if 0%{?enable_daemon}
%{_bindir}/pacmd
%{_bindir}/pasuspender
%endif
%{_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*
%if 0%{?enable_daemon}
%{_mandir}/man1/pacmd.1*
%{_mandir}/man1/pasuspender.1*
%endif
%{_mandir}/man5/pulse-client.conf.5*
%{bash_completionsdir}/pacat
%{bash_completionsdir}/pactl
%{bash_completionsdir}/padsp
%{bash_completionsdir}/paplay
%{bash_completionsdir}/parec
%{bash_completionsdir}/parecord
%if 0%{?enable_daemon}
%{bash_completionsdir}/pacmd
%{bash_completionsdir}/pasuspender
%endif
%{_datadir}/zsh/site-functions/_pulseaudio
%if 0%{?gdm_hooks}
%files gdm-hooks
%attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.pulse
%attr(0600, gdm, gdm) %{_localstatedir}/lib/gdm/.pulse/default.pa
%endif
%changelog
* Fri Jun 17 2022 Wim Taymans <wtaymans@redhat.com> - 14.0-4
- Add patch to avoid bluez warning.
- Resolves: rhbz#1969944
* Thu Dec 05 2024 Wim Taymans <wtaymans@redhat.com> - 17.0-6
- Fix license fields some more
Resolves: DESKTOP-1151
* Thu May 12 2022 Wim Taymans <wtaymans@redhat.com> - 14.0-3
- Add patch for profile switching
- Resolves: rhbz#2052011. rhbz#2073877
* Thu Dec 05 2024 Wim Taymans <wtaymans@redhat.com> - 17.0-5
- Fix license field
Resolves: DESKTOP-1151
* Wed Feb 03 2021 Wim Taymans <wtaymans@redhat.com> - 14.0-2
- Add pulseaudio-daemon' Provides + Conflicts only on fedora
- Resolves: rhbz#1924094
* Tue Nov 19 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 17.0-4
- Do not build daemon on RHEL
Resolves: DESKTOP-1151
* Thu Dec 10 2020 Wim Taymans <wtaymans@redhat.com> - 14.0-1
- Update to 14.0
- Add pulseaudio-daemon' Provides + Conflicts to support
swapping with PipeWire
- Resolves: rhbz#1906322
* Wed Sep 04 2024 Miroslav Suchý <msuchy@redhat.com> - 17.0-3
- convert license to SPDX
* Mon May 11 2020 Wim Taymans <wtaymans@redhat.com> - 13.99.1-1
- Update to 13.99.1
- Resolves: rhbz#1817378
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 17.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Sep 12 2019 Wim Taymans <wtaymans@redhat.com> - 11.1-23
- Add xauthority parameter to X11 modules
- Fix compilation against newer alsa-lib
- Resolves: rhbz#1723065
* Sat May 18 2024 Teoh Han Hui <teohhanhui@gmail.com> - 17.0-1
- 17.0
* Tue Sep 04 2018 Wim Taymans <wtaymans@redhat.com> - 11.1-22
- Use python3 version of qt5
- Resolves: rhbz#1591134
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 16.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Sep 03 2018 Wim Taymans <wtaymans@redhat.com> - 11.1-21
- Fix port to qt5.
- Resolves: rhbz#1591134
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 16.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 13 2018 Petr Viktorin <pviktori@redhat.com> - 11.1-20
- Fix dbus-python dependency
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 16.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 22 2018 Than Ngo <than@redhat.com> - 11.1-19
- fixed bz#1580853, FTBFS
* Thu Jan 26 2023 Wim Taymans <wtaymans@redhat.com> - 16.1-4
- Add padsp again (rhbz#2120847)
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 16.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Sep 20 2022 Rex Dieter <rdieter@fedoraproject.org> - 16.1-2
- rebuild for libsndfile (#2128041)
* Thu Jul 21 2022 Rex Dieter <rdieter@fedoraproject.org> - 16.1-1
- 16.1
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 15.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 15.0-4
- Rebuilt with OpenSSL 3.0.0
* Fri Sep 10 2021 Rex Dieter <rdieter@fedoraproject.org> - 15.0-3
- fix autostart.patch (#2001664)
* Wed Sep 08 2021 Wim Taymans <wtaymans@redhat.com> - 15.0-2
- Obsoletes: pulseaudio-esound-compat and pulseaudio-module-gconf
- Resolves: #2001334
* Wed Jul 28 2021 Wim Taymans <wtaymans@redhat.com> - 15.0-1
- Update to 15.0
- convert to meson build
- esound, gconf, oss are no longer supported
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 14.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sat Feb 06 2021 Rex Dieter <rdieter@fedoraproject.org> - 14.2-3
- -utils: move appropriate bash completions here (#1925706)
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 14.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jan 18 2021 Rex Dieter <rdieter@fedoraproject.org> - 14.2-1
- 14.2
* Wed Jan 13 2021 Rex Dieter <rdieter@fedoraproject.org> - 14.1-1
- 14.1
* Tue Jan 12 2021 Wim Taymans <wtaymans@redhat.com> - 14.0-3
- Move enable_ switches next to the other switches on top
- Only enable gconf on fedora
* Tue Nov 24 2020 Neal Gompa <ngompa13@gmail.com> - 14.0-2
- Add 'pulseaudio-daemon' Provides + Conflicts to support swapping with PipeWire
* Mon Nov 23 2020 Rex Dieter <rdieter@fedoraproject.org> - 14.0-1
- 14.0
* Sun Nov 01 2020 Rex Dieter <rdieter@fedoraproject.org> - 13.99.3-1
- 13.99.3
* Tue Sep 22 2020 Rex Dieter <rdieter@fedoraproject.org> - 13.99.2-1
- 13.99.2
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 13.99.1-6
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 13.99.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jun 15 2020 Wim Taymans <wtaymans@redhat.com> - 13.99.1-4
- Add patch to fix crash with profile name (#1817092)
* Tue Mar 31 2020 Wim Taymans <wtaymans@redhat.com> - 13.99.1-3
- Add more UCM patches (#1818883)
* Fri Mar 20 2020 Wim Taymans <wtaymans@redhat.com> - 13.99.1-2
- Add some more UCM patches
- Fix missing UCM mixers crash (#1815437)
* Fri Feb 14 2020 Rex Dieter <rdieter@fedoraproject.org> - 13.99.1-1
- 13.99.1
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 13.0-3.20200105gitf5d36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jan 08 2020 Jaroslav Kysela <perex@perex.cz> - 13.0-2
- Update to upstream gitsnapshot
- ALSA UCM fixes
- active_port sink selection fixes
* Fri Sep 13 2019 Rex Dieter <rdieter@fedoraproject.org> - 13.0-1
- 13.0
* Mon Sep 02 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.99.3-1
- pulseaudio-12.99.3
* Wed Aug 07 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.99.2-2
- -qpaeq: use python3 (#1738047)
* Tue Aug 06 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.99.2-1
- pulseaudio-12.99.2
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 12.99.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Jul 09 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.99.1-1
- pulseaudio-12.99.1
* Wed Jul 03 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.2-7
- alsa-sink: clear pollfd revents before poll
* Mon Jun 17 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.2-6
- pull in upstream patch for alsa include paths
* Thu May 09 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.2-5
- Use systemd presets to enable user units
- conditionals: simplify and support rhel8
* Wed Apr 10 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.2-4
- test using only socket activation (f31+ only for now)
* Tue Feb 12 2019 Rex Dieter <rdieter@fedoraproject.org> - 12.2-3
- qpaeq_python2.patch
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 12.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jul 16 2018 Rex Dieter <rdieter@fedoraproject.org> - 12.2-1
- pulseaudio-12.2
* Sat Jul 14 2018 Rex Dieter <rdieter@fedoraproject.org> - 12.1-1
- pulseaudio-12.1
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 12.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jul 05 2018 Rex Dieter <rdieter@fedoraproject.org> - 12.0-3
- ladspa-sink-fix-search-path.patch (#1594568, fdo#107078)
* Sun Jul 01 2018 Rex Dieter <rdieter@fedoraproject.org> - 12.0-2
- switch-on-port-available-ignore-bluetooth-cards.patch (#1594596, fdo#107044)
- use upstreamed exit-idle-time.patch
* Thu Jun 21 2018 Rex Dieter <rdieter@fedoraproject.org> - 12.0-1
- pulseaudio-12.0 is available (#1593489)
- -libs: use %%license
* Sun May 13 2018 Rex Dieter <rdieter@fedoraproject.org> - 11.99.1-1
- 11.99.1 (#1577603)
- use %%ldconfig_scriptlets
- new pulseaudio--module-gsettings subpkg
* Tue May 08 2018 Rex Dieter <rdieter@fedoraproject.org> - 11.1-21
- drop unused getaffinity,memfd patches
- include experimental bluetooth patches only on rawhide
* Mon Apr 23 2018 Hans de Goede <hdegoede@redhat.com> - 11.1-20
- Fix Intel LPE HDMI problems:
- Update to upstream gitsnapshot which contains a fix for the crash caused
by patch93 (and contains patch93 fixing the Intel LPE HDMI pa crash)
- Fix-realtime-scheduling-on-byt-cht.patch, Fix-Intel-HDMI-LPE-problems.patch:
drop both, both fixes are included in the git snapshot
* Fri Mar 23 2018 Iryna Shcherbina <ishcherb@redhat.com> - 11.1-19
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Wed Mar 21 2018 Rex Dieter <rdieter@fedoraproject.org> - 11.1-18
- manually package sockets.target.wants/pulseaudio.socket to help

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (pulseaudio-17.0.tar.xz) = be0aec46204d9c9188a796fbe41b4cf6f0f5e6b16fa08ce359b8f0f51253f0ade364b89448bbf5faa2af7e59deb6c72194734c3233944250dcfd4f31968a5e97
SHA512 (pulseaudio-17.0.tar.xz.sha256sum) = cd0e3d006eda69a8691c73456da5a70a8493b202c9664c6ff0a64039493056a993032a23e41119eb78f757b4f5a12d55f90713342b048464f45732b298d5c03b