From 7f21bce01e0497cee977c5edc9f67c3e5de89482 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 15:26:27 +0000 Subject: [PATCH] import UBI pulseaudio-17.0-6.el10 --- .gitignore | 2 +- .pulseaudio.metadata | 1 - ...volume-tests-with-impossible-alignme.patch | 105 +++ ...namic-priority-bonus-base-for-alsa-p.patch | 122 --- ...-NameHasOwner-before-using-org.bluez.patch | 94 --- SOURCES/pulseaudio-14.0.tar.xz.sha256 | 1 - SOURCES/pulseaudio-autostart.patch | 12 - .../default.pa-for-gdm => default.pa-for-gdm | 0 ...=> pulseaudio-11.1-autospawn_disable.patch | 0 pulseaudio-17.0.tar.xz.sha256sum | 1 + pulseaudio-autostart.patch | 14 + SPECS/pulseaudio.spec => pulseaudio.spec | 694 +++++++++++------- sources | 1 + 13 files changed, 571 insertions(+), 476 deletions(-) delete mode 100644 .pulseaudio.metadata create mode 100644 0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch delete mode 100644 SOURCES/0001-alsa-card-add-dynamic-priority-bonus-base-for-alsa-p.patch delete mode 100644 SOURCES/0001-bluez5-do-NameHasOwner-before-using-org.bluez.patch delete mode 100644 SOURCES/pulseaudio-14.0.tar.xz.sha256 delete mode 100644 SOURCES/pulseaudio-autostart.patch rename SOURCES/default.pa-for-gdm => default.pa-for-gdm (100%) rename SOURCES/pulseaudio-11.1-autospawn_disable.patch => pulseaudio-11.1-autospawn_disable.patch (100%) create mode 100644 pulseaudio-17.0.tar.xz.sha256sum create mode 100644 pulseaudio-autostart.patch rename SPECS/pulseaudio.spec => pulseaudio.spec (62%) create mode 100644 sources diff --git a/.gitignore b/.gitignore index 83307ff..fbb69fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/pulseaudio-14.0.tar.xz +pulseaudio-17.0.tar.xz diff --git a/.pulseaudio.metadata b/.pulseaudio.metadata deleted file mode 100644 index d2bbcd1..0000000 --- a/.pulseaudio.metadata +++ /dev/null @@ -1 +0,0 @@ -c37a8551993ed045b3fa55176c9d1df4d2ed17a1 SOURCES/pulseaudio-14.0.tar.xz diff --git a/0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch b/0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch new file mode 100644 index 0000000..7e91999 --- /dev/null +++ b/0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch @@ -0,0 +1,105 @@ +From 84f5b742e39ba3e375bac9144e0243b7331f4019 Mon Sep 17 00:00:00 2001 +From: Arun Raghavan +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: +--- + 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 + 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 deleted file mode 100644 index 5f6177e..0000000 --- a/SOURCES/0001-alsa-card-add-dynamic-priority-bonus-base-for-alsa-p.patch +++ /dev/null @@ -1,122 +0,0 @@ -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 deleted file mode 100644 index b57733f..0000000 --- a/SOURCES/0001-bluez5-do-NameHasOwner-before-using-org.bluez.patch +++ /dev/null @@ -1,94 +0,0 @@ -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/pulseaudio-14.0.tar.xz.sha256 b/SOURCES/pulseaudio-14.0.tar.xz.sha256 deleted file mode 100644 index 106880d..0000000 --- a/SOURCES/pulseaudio-14.0.tar.xz.sha256 +++ /dev/null @@ -1 +0,0 @@ -a834775d9382b055504e5ee7625dc50768daac29329531deb6597bf05e06c261 pulseaudio-14.0.tar.xz diff --git a/SOURCES/pulseaudio-autostart.patch b/SOURCES/pulseaudio-autostart.patch deleted file mode 100644 index 6b18fce..0000000 --- a/SOURCES/pulseaudio-autostart.patch +++ /dev/null @@ -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 diff --git a/SOURCES/default.pa-for-gdm b/default.pa-for-gdm similarity index 100% rename from SOURCES/default.pa-for-gdm rename to default.pa-for-gdm diff --git a/SOURCES/pulseaudio-11.1-autospawn_disable.patch b/pulseaudio-11.1-autospawn_disable.patch similarity index 100% rename from SOURCES/pulseaudio-11.1-autospawn_disable.patch rename to pulseaudio-11.1-autospawn_disable.patch diff --git a/pulseaudio-17.0.tar.xz.sha256sum b/pulseaudio-17.0.tar.xz.sha256sum new file mode 100644 index 0000000..f92669f --- /dev/null +++ b/pulseaudio-17.0.tar.xz.sha256sum @@ -0,0 +1 @@ +053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5 *pulseaudio-17.0.tar.xz diff --git a/pulseaudio-autostart.patch b/pulseaudio-autostart.patch new file mode 100644 index 0000000..ceaa98f --- /dev/null +++ b/pulseaudio-autostart.patch @@ -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) diff --git a/SPECS/pulseaudio.spec b/pulseaudio.spec similarity index 62% rename from SPECS/pulseaudio.spec rename to pulseaudio.spec index 358deb0..a40a5ca 100644 --- a/SPECS/pulseaudio.spec +++ b/pulseaudio.spec @@ -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 - 14.0-4 -- Add patch to avoid bluez warning. -- Resolves: rhbz#1969944 +* Thu Dec 05 2024 Wim Taymans - 17.0-6 +- Fix license fields some more + Resolves: DESKTOP-1151 -* Thu May 12 2022 Wim Taymans - 14.0-3 -- Add patch for profile switching -- Resolves: rhbz#2052011. rhbz#2073877 +* Thu Dec 05 2024 Wim Taymans - 17.0-5 +- Fix license field + Resolves: DESKTOP-1151 -* Wed Feb 03 2021 Wim Taymans - 14.0-2 -- Add pulseaudio-daemon' Provides + Conflicts only on fedora -- Resolves: rhbz#1924094 +* Tue Nov 19 2024 Yaakov Selkowitz - 17.0-4 +- Do not build daemon on RHEL + Resolves: DESKTOP-1151 -* 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 +* Wed Sep 04 2024 Miroslav Suchý - 17.0-3 +- convert license to SPDX -* Mon May 11 2020 Wim Taymans - 13.99.1-1 -- Update to 13.99.1 -- Resolves: rhbz#1817378 +* Fri Jul 19 2024 Fedora Release Engineering - 17.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild -* Thu Sep 12 2019 Wim Taymans - 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 - 17.0-1 +- 17.0 -* Tue Sep 04 2018 Wim Taymans - 11.1-22 -- Use python3 version of qt5 -- Resolves: rhbz#1591134 +* Fri Jan 26 2024 Fedora Release Engineering - 16.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Mon Sep 03 2018 Wim Taymans - 11.1-21 -- Fix port to qt5. -- Resolves: rhbz#1591134 +* Sun Jan 21 2024 Fedora Release Engineering - 16.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Fri Jul 13 2018 Petr Viktorin - 11.1-20 -- Fix dbus-python dependency +* Fri Jul 21 2023 Fedora Release Engineering - 16.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Fri Jun 22 2018 Than Ngo - 11.1-19 -- fixed bz#1580853, FTBFS +* Thu Jan 26 2023 Wim Taymans - 16.1-4 +- Add padsp again (rhbz#2120847) + +* Fri Jan 20 2023 Fedora Release Engineering - 16.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Sep 20 2022 Rex Dieter - 16.1-2 +- rebuild for libsndfile (#2128041) + +* Thu Jul 21 2022 Rex Dieter - 16.1-1 +- 16.1 + +* Fri Jan 21 2022 Fedora Release Engineering - 15.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Sahana Prasad - 15.0-4 +- Rebuilt with OpenSSL 3.0.0 + +* Fri Sep 10 2021 Rex Dieter - 15.0-3 +- fix autostart.patch (#2001664) + +* Wed Sep 08 2021 Wim Taymans - 15.0-2 +- Obsoletes: pulseaudio-esound-compat and pulseaudio-module-gconf +- Resolves: #2001334 + +* Wed Jul 28 2021 Wim Taymans - 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 - 14.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Feb 06 2021 Rex Dieter - 14.2-3 +- -utils: move appropriate bash completions here (#1925706) + +* Wed Jan 27 2021 Fedora Release Engineering - 14.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 18 2021 Rex Dieter - 14.2-1 +- 14.2 + +* Wed Jan 13 2021 Rex Dieter - 14.1-1 +- 14.1 + +* Tue Jan 12 2021 Wim Taymans - 14.0-3 +- Move enable_ switches next to the other switches on top +- Only enable gconf on fedora + +* Tue Nov 24 2020 Neal Gompa - 14.0-2 +- Add 'pulseaudio-daemon' Provides + Conflicts to support swapping with PipeWire + +* Mon Nov 23 2020 Rex Dieter - 14.0-1 +- 14.0 + +* Sun Nov 01 2020 Rex Dieter - 13.99.3-1 +- 13.99.3 + +* Tue Sep 22 2020 Rex Dieter - 13.99.2-1 +- 13.99.2 + +* Sat Aug 01 2020 Fedora Release Engineering - 13.99.1-6 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 13.99.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 15 2020 Wim Taymans - 13.99.1-4 +- Add patch to fix crash with profile name (#1817092) + +* Tue Mar 31 2020 Wim Taymans - 13.99.1-3 +- Add more UCM patches (#1818883) + +* Fri Mar 20 2020 Wim Taymans - 13.99.1-2 +- Add some more UCM patches +- Fix missing UCM mixers crash (#1815437) + +* Fri Feb 14 2020 Rex Dieter - 13.99.1-1 +- 13.99.1 + +* Thu Jan 30 2020 Fedora Release Engineering - 13.0-3.20200105gitf5d36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 08 2020 Jaroslav Kysela - 13.0-2 +- Update to upstream gitsnapshot +- ALSA UCM fixes +- active_port sink selection fixes + +* Fri Sep 13 2019 Rex Dieter - 13.0-1 +- 13.0 + +* Mon Sep 02 2019 Rex Dieter - 12.99.3-1 +- pulseaudio-12.99.3 + +* Wed Aug 07 2019 Rex Dieter - 12.99.2-2 +- -qpaeq: use python3 (#1738047) + +* Tue Aug 06 2019 Rex Dieter - 12.99.2-1 +- pulseaudio-12.99.2 + +* Fri Jul 26 2019 Fedora Release Engineering - 12.99.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jul 09 2019 Rex Dieter - 12.99.1-1 +- pulseaudio-12.99.1 + +* Wed Jul 03 2019 Rex Dieter - 12.2-7 +- alsa-sink: clear pollfd revents before poll + +* Mon Jun 17 2019 Rex Dieter - 12.2-6 +- pull in upstream patch for alsa include paths + +* Thu May 09 2019 Rex Dieter - 12.2-5 +- Use systemd presets to enable user units +- conditionals: simplify and support rhel8 + +* Wed Apr 10 2019 Rex Dieter - 12.2-4 +- test using only socket activation (f31+ only for now) + +* Tue Feb 12 2019 Rex Dieter - 12.2-3 +- qpaeq_python2.patch + +* Sat Feb 02 2019 Fedora Release Engineering - 12.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jul 16 2018 Rex Dieter - 12.2-1 +- pulseaudio-12.2 + +* Sat Jul 14 2018 Rex Dieter - 12.1-1 +- pulseaudio-12.1 + +* Fri Jul 13 2018 Fedora Release Engineering - 12.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jul 05 2018 Rex Dieter - 12.0-3 +- ladspa-sink-fix-search-path.patch (#1594568, fdo#107078) + +* Sun Jul 01 2018 Rex Dieter - 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 - 12.0-1 +- pulseaudio-12.0 is available (#1593489) +- -libs: use %%license + +* Sun May 13 2018 Rex Dieter - 11.99.1-1 +- 11.99.1 (#1577603) +- use %%ldconfig_scriptlets +- new pulseaudio--module-gsettings subpkg + +* Tue May 08 2018 Rex Dieter - 11.1-21 +- drop unused getaffinity,memfd patches +- include experimental bluetooth patches only on rawhide + +* Mon Apr 23 2018 Hans de Goede - 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 - 11.1-19 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) * Wed Mar 21 2018 Rex Dieter - 11.1-18 - manually package sockets.target.wants/pulseaudio.socket to help diff --git a/sources b/sources new file mode 100644 index 0000000..ab6292b --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (pulseaudio-17.0.tar.xz) = be0aec46204d9c9188a796fbe41b4cf6f0f5e6b16fa08ce359b8f0f51253f0ade364b89448bbf5faa2af7e59deb6c72194734c3233944250dcfd4f31968a5e97