diff --git a/.gitignore b/.gitignore index d5bc8e1..dc82740 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/pulseaudio-16.1.tar.xz +SOURCES/pulseaudio-17.0.tar.xz diff --git a/.pulseaudio.metadata b/.pulseaudio.metadata index e76ce60..25392a4 100644 --- a/.pulseaudio.metadata +++ b/.pulseaudio.metadata @@ -1 +1 @@ -7bf3845b522a1da263b6b84a0bc5aa761e49bc87 SOURCES/pulseaudio-16.1.tar.xz +1b19adc2d546d5775bb05c1a8cd52f68a9c9def1 SOURCES/pulseaudio-17.0.tar.xz diff --git a/SOURCES/0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch b/SOURCES/0001-tests-Don-t-run-volume-tests-with-impossible-alignme.patch new file mode 100644 index 0000000..7e91999 --- /dev/null +++ b/SOURCES/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/pulseaudio-16.1.tar.xz.sha256sum b/SOURCES/pulseaudio-16.1.tar.xz.sha256sum deleted file mode 100644 index 2caba28..0000000 --- a/SOURCES/pulseaudio-16.1.tar.xz.sha256sum +++ /dev/null @@ -1 +0,0 @@ -8eef32ce91d47979f95fd9a935e738cd7eb7463430dabc72863251751e504ae4 *pulseaudio-16.1.tar.xz diff --git a/SOURCES/pulseaudio-17.0.tar.xz.sha256sum b/SOURCES/pulseaudio-17.0.tar.xz.sha256sum new file mode 100644 index 0000000..f92669f --- /dev/null +++ b/SOURCES/pulseaudio-17.0.tar.xz.sha256sum @@ -0,0 +1 @@ +053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5 *pulseaudio-17.0.tar.xz diff --git a/SPECS/pulseaudio.spec b/SPECS/pulseaudio.spec index e22bf8d..a40a5ca 100644 --- a/SPECS/pulseaudio.spec +++ b/SPECS/pulseaudio.spec @@ -1,19 +1,17 @@ -%global pa_major 16.1 +%global pa_major 17.0 #global pa_minor 0 #global snap 20200105 #global gitrel 103 #global gitcommit f5d3606fe76302c7dbdb0f6a80400df829a5f846 -#global shortcommit %(c=%{gitcommit}; echo ${c:0:5}) +#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 -%global with_webrtc 1 %endif # https://bugzilla.redhat.com/983606 @@ -36,8 +34,8 @@ Name: pulseaudio Summary: Improved Linux Sound Server Version: %{pa_major}%{?pa_minor:.%{pa_minor}} -Release: 8%{?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 @@ -61,6 +59,9 @@ Patch206: pulseaudio-11.1-autospawn_disable.patch ## upstream patches +# 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 @@ -69,15 +70,27 @@ 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: 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: glib2-devel -BuildRequires: gtk3-devel BuildRequires: avahi-devel BuildRequires: libatomic_ops-static, libatomic_ops-devel BuildRequires: pkgconfig(bluez) >= 5.0 @@ -103,14 +116,9 @@ 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 @@ -130,11 +138,15 @@ Conflicts: pulseaudio-daemon Obsoletes: pulseaudio-esound-compat < 15.0 Obsoletes: pulseaudio-module-gconf < 15.0 +%endif + %description PulseAudio is a sound server for Linux and other Unix like operating systems. It is intended to be an improved drop-in replacement for the Enlightened Sound Daemon (ESOUND). +%if 0%{?enable_daemon} + %package qpaeq Summary: Pulseaudio equalizer interface Requires: %{name}%{?_isa} = %{version}-%{release} @@ -191,9 +203,11 @@ 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 @@ -202,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 @@ -211,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 @@ -220,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,7 +245,7 @@ This package contains command line utilities for the PulseAudio sound server. %if 0%{?gdm_hooks} %package gdm-hooks Summary: PulseAudio GDM integration -License: LGPLv2+ +License: LGPL-2.1-or-later Requires: gdm >= 1:2.22.0 # for the gdm user Requires(pre): gdm @@ -245,18 +259,15 @@ This package contains GDM integration hooks for the PulseAudio sound server. %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 -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 @@ -270,10 +281,16 @@ sed -i.PACKAGE_VERSION -e "s|^PACKAGE_VERSION=.*|PACKAGE_VERSION=\'%{version}\'| %build %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 oss-output=enabled \ -D jack=%{?enable_jack:enabled}%{!?enable_jack:disabled} \ -D lirc=%{?enable_lirc:enabled}%{!?enable_lirc:disabled} \ -D tcpwrap=disabled \ @@ -282,11 +299,12 @@ sed -i.PACKAGE_VERSION -e "s|^PACKAGE_VERSION=.*|PACKAGE_VERSION=\'%{version}\'| -D bluez5-gstreamer=enabled \ -D gsettings=enabled \ -D elogind=disabled \ - -D valgrind=disabled \ - -D gtk=disabled \ -D soxr=%{?fedora:enabled}%{!?fedora:disabled} \ -D webrtc-aec=%{?with_webrtc:enabled}%{!?with_webrtc:disabled} \ - -D systemd=%{?systemd:enabled}%{!?systemd:disabled} \ + -D consolekit=disabled \ +%else + -D daemon=false \ +%endif -D tests=%{?tests:true}%{!?tests:false} # we really should preopen here --preopen-mods=module-udev-detect.la, --force-preopen @@ -312,23 +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}/pulseaudio/modules/*.la # PA_MODULE_DEPRECATED("Please use module-udev-detect instead of module-detect!"); 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} @@ -352,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 @@ -401,13 +423,16 @@ 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}/pulseaudio %if 0%{?systemd} %{_userunitdir}/pulseaudio.service @@ -479,7 +504,6 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || : %{_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-console-kit.so %{_libdir}/pulseaudio/modules/module-position-event-sounds.so %{_libdir}/pulseaudio/modules/module-augment-properties.so %{_libdir}/pulseaudio/modules/module-role-cork.so @@ -495,10 +519,10 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || : %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 @@ -555,6 +579,8 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || : %{_datadir}/GConf/gsettings/pulseaudio.convert %{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml +%endif + %ldconfig_scriptlets libs %files libs -f %{name}.lang @@ -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,25 +631,34 @@ 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}/pacmd %{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 @@ -634,8 +668,26 @@ systemctl --no-reload preset --global pulseaudio.socket >/dev/null 2>&1 || : %changelog -* Mon Jun 24 2024 Troy Dawson - 16.1-8 -- Bump release for June 2024 mass rebuild +* Thu Dec 05 2024 Wim Taymans - 17.0-6 +- Fix license fields some more + Resolves: DESKTOP-1151 + +* Thu Dec 05 2024 Wim Taymans - 17.0-5 +- Fix license field + Resolves: DESKTOP-1151 + +* Tue Nov 19 2024 Yaakov Selkowitz - 17.0-4 +- Do not build daemon on RHEL + Resolves: DESKTOP-1151 + +* Wed Sep 04 2024 Miroslav Suchý - 17.0-3 +- convert license to SPDX + +* Fri Jul 19 2024 Fedora Release Engineering - 17.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat May 18 2024 Teoh Han Hui - 17.0-1 +- 17.0 * Fri Jan 26 2024 Fedora Release Engineering - 16.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild