diff --git a/pa-set-exit-idle-time-to-0-when-we-detect-a-session.patch b/pa-set-exit-idle-time-to-0-when-we-detect-a-session.patch deleted file mode 100644 index 6e350bf..0000000 --- a/pa-set-exit-idle-time-to-0-when-we-detect-a-session.patch +++ /dev/null @@ -1,113 +0,0 @@ -From: Tanu Kaskinen -Subject: [PATCH] set exit-idle-time to 0 when we detect a session -Date: Wed, 28 Feb 2018 18:16:03 +0200 -Message-Id: <20180228161603.30746-1-tanuk@iki.fi> - -As the comments explain, this fixes relogin problems on some systems -that remove our sockets on logout without terminating the daemon. ---- - - src/modules/module-console-kit.c | 13 +++++++++++++ - src/modules/module-systemd-login.c | 14 ++++++++++++++ - src/modules/x11/module-x11-xsmp.c | 13 +++++++++++++ - src/pulsecore/core.c | 10 ++++++++++ - src/pulsecore/core.h | 2 ++ - 5 files changed, 52 insertions(+) - ---- a/src/modules/module-console-kit.c -+++ b/src/modules/module-console-kit.c -@@ -120,6 +120,19 @@ static void add_session(struct userdata - - pa_log_debug("Added new session %s", id); - -+ /* Positive exit_idle_time is only useful when we have no session tracking -+ * capability, so we can set it to 0 now that we have detected a session. -+ * The benefit of setting exit_idle_time to 0 is that pulseaudio will exit -+ * immediately when the session ends. That in turn is useful, because some -+ * systems (those that use pam_systemd but don't use systemd for managing -+ * pulseaudio) clean $XDG_RUNTIME_DIR on logout, but fail to terminate all -+ * services that depend on the files in $XDG_RUNTIME_DIR. The directory -+ * contains our sockets, and if the sockets are removed without terminating -+ * pulseaudio, a quick relogin will likely cause trouble, because a new -+ * instance will be spawned while the old instance is still running. */ -+ if (u->core->exit_idle_time > 0) -+ pa_core_set_exit_idle_time(u->core, 0); -+ - fail: - - if (m) ---- a/src/modules/module-systemd-login.c -+++ b/src/modules/module-systemd-login.c -@@ -86,6 +86,20 @@ static int add_session(struct userdata * - pa_hashmap_put(u->sessions, session->id, session); - - pa_log_debug("Added new session %s", id); -+ -+ /* Positive exit_idle_time is only useful when we have no session tracking -+ * capability, so we can set it to 0 now that we have detected a session. -+ * The benefit of setting exit_idle_time to 0 is that pulseaudio will exit -+ * immediately when the session ends. That in turn is useful, because some -+ * systems (those that use pam_systemd but don't use systemd for managing -+ * pulseaudio) clean $XDG_RUNTIME_DIR on logout, but fail to terminate all -+ * services that depend on the files in $XDG_RUNTIME_DIR. The directory -+ * contains our sockets, and if the sockets are removed without terminating -+ * pulseaudio, a quick relogin will likely cause trouble, because a new -+ * instance will be spawned while the old instance is still running. */ -+ if (u->core->exit_idle_time > 0) -+ pa_core_set_exit_idle_time(u->core, 0); -+ - return 0; - } - ---- a/src/modules/x11/module-x11-xsmp.c -+++ b/src/modules/x11/module-x11-xsmp.c -@@ -208,6 +208,19 @@ int pa__init(pa_module*m) { - if (!u->client) - goto fail; - -+ /* Positive exit_idle_time is only useful when we have no session tracking -+ * capability, so we can set it to 0 now that we have detected a session. -+ * The benefit of setting exit_idle_time to 0 is that pulseaudio will exit -+ * immediately when the session ends. That in turn is useful, because some -+ * systems (those that use pam_systemd but don't use systemd for managing -+ * pulseaudio) clean $XDG_RUNTIME_DIR on logout, but fail to terminate all -+ * services that depend on the files in $XDG_RUNTIME_DIR. The directory -+ * contains our sockets, and if the sockets are removed without terminating -+ * pulseaudio, a quick relogin will likely cause trouble, because a new -+ * instance will be spawned while the old instance is still running. */ -+ if (u->core->exit_idle_time > 0) -+ pa_core_set_exit_idle_time(u->core, 0); -+ - pa_modargs_free(ma); - - return 0; ---- a/src/pulsecore/core.c -+++ b/src/pulsecore/core.c -@@ -426,6 +426,16 @@ void pa_core_update_default_source(pa_co - pa_hook_fire(&core->hooks[PA_CORE_HOOK_DEFAULT_SOURCE_CHANGED], core->default_source); - } - -+void pa_core_set_exit_idle_time(pa_core *core, int time) { -+ pa_assert(core); -+ -+ if (time == core->exit_idle_time) -+ return; -+ -+ pa_log_info("exit_idle_time: %i -> %i", core->exit_idle_time, time); -+ core->exit_idle_time = time; -+} -+ - static void exit_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) { - pa_core *c = userdata; - pa_assert(c->exit_event == e); ---- a/src/pulsecore/core.h -+++ b/src/pulsecore/core.h -@@ -254,6 +254,8 @@ void pa_core_set_configured_default_sour - void pa_core_update_default_sink(pa_core *core); - void pa_core_update_default_source(pa_core *core); - -+void pa_core_set_exit_idle_time(pa_core *core, int time); -+ - /* Check whether no one is connected to this core */ - void pa_core_check_idle(pa_core *c); - diff --git a/pulseaudio-12.2.tar.xz b/pulseaudio-12.2.tar.xz deleted file mode 100644 index f1b0980..0000000 --- a/pulseaudio-12.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:809668ffc296043779c984f53461c2b3987a45b7a25eb2f0a1d11d9f23ba4055 -size 1665092 diff --git a/pulseaudio-13.0.tar.xz b/pulseaudio-13.0.tar.xz new file mode 100644 index 0000000..64ad314 --- /dev/null +++ b/pulseaudio-13.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:961b23ca1acfd28f2bc87414c27bb40e12436efcf2158d29721b1e89f3f28057 +size 1901768 diff --git a/pulseaudio-alsa.patch b/pulseaudio-alsa.patch deleted file mode 100644 index 1d4cbef..0000000 --- a/pulseaudio-alsa.patch +++ /dev/null @@ -1,123 +0,0 @@ ---- - configure.ac | 2 +- - src/modules/alsa/alsa-mixer.c | 2 +- - src/modules/alsa/alsa-mixer.h | 2 +- - src/modules/alsa/alsa-sink.c | 2 +- - src/modules/alsa/alsa-source.c | 2 +- - src/modules/alsa/alsa-ucm.c | 2 +- - src/modules/alsa/alsa-ucm.h | 2 +- - src/modules/alsa/alsa-util.c | 2 +- - src/modules/alsa/alsa-util.h | 2 +- - src/modules/alsa/module-alsa-source.c | 2 +- - 10 files changed, 10 insertions(+), 10 deletions(-) - ---- a/src/modules/alsa/alsa-mixer.c -+++ b/src/modules/alsa/alsa-mixer.c -@@ -23,7 +23,7 @@ - #endif - - #include --#include -+#include - #include - - #ifdef HAVE_VALGRIND_MEMCHECK_H ---- a/src/modules/alsa/alsa-mixer.h -+++ b/src/modules/alsa/alsa-mixer.h -@@ -21,7 +21,7 @@ - along with PulseAudio; if not, see . - ***/ - --#include -+#include - - #include - #include ---- a/src/modules/alsa/alsa-sink.c -+++ b/src/modules/alsa/alsa-sink.c -@@ -25,7 +25,7 @@ - #include - #include - --#include -+#include - - #ifdef HAVE_VALGRIND_MEMCHECK_H - #include ---- a/src/modules/alsa/alsa-source.c -+++ b/src/modules/alsa/alsa-source.c -@@ -25,7 +25,7 @@ - #include - #include - --#include -+#include - - #include - #include ---- a/src/modules/alsa/alsa-ucm.c -+++ b/src/modules/alsa/alsa-ucm.c -@@ -27,7 +27,7 @@ - #include - #include - #include --#include -+#include - - #ifdef HAVE_VALGRIND_MEMCHECK_H - #include ---- a/src/modules/alsa/alsa-util.c -+++ b/src/modules/alsa/alsa-util.c -@@ -23,7 +23,7 @@ - #endif - - #include --#include -+#include - - #include - #include ---- a/src/modules/alsa/alsa-util.h -+++ b/src/modules/alsa/alsa-util.h -@@ -21,7 +21,7 @@ - along with PulseAudio; if not, see . - ***/ - --#include -+#include - - #include - #include ---- a/src/modules/alsa/module-alsa-source.c -+++ b/src/modules/alsa/module-alsa-source.c -@@ -24,7 +24,7 @@ - - #include - --#include -+#include - - #ifdef HAVE_VALGRIND_MEMCHECK_H - #include ---- a/configure.ac -+++ b/configure.ac -@@ -833,7 +833,7 @@ AS_IF([test "x$enable_alsa" = "xyes" && - AS_IF([test "x$HAVE_ALSA" = "x1"], - [ - save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS" -- AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0) -+ AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0) - CPPFLAGS="$save_CPPFLAGS" - ], - HAVE_ALSA_UCM=0) ---- a/src/modules/alsa/alsa-ucm.h -+++ b/src/modules/alsa/alsa-ucm.h -@@ -23,7 +23,7 @@ - ***/ - - #ifdef HAVE_ALSA_UCM --#include -+#include - #else - typedef void snd_use_case_mgr_t; - #endif diff --git a/pulseaudio-old-systemd-workaround.patch b/pulseaudio-old-systemd-workaround.patch new file mode 100644 index 0000000..4ab5b9d --- /dev/null +++ b/pulseaudio-old-systemd-workaround.patch @@ -0,0 +1,15 @@ +--- + src/daemon/systemd/user/pulseaudio.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/daemon/systemd/user/pulseaudio.service.in ++++ b/src/daemon/systemd/user/pulseaudio.service.in +@@ -24,7 +24,7 @@ NoNewPrivileges=yes + Restart=on-failure + RestrictNamespaces=yes + SystemCallArchitectures=native +-SystemCallFilter=@system-service ++# SystemCallFilter=@system-service + # Note that notify will only work if --daemonize=no + Type=notify + UMask=0077 diff --git a/pulseaudio.changes b/pulseaudio.changes index 2fbe1b9..a7aa25c 100644 --- a/pulseaudio.changes +++ b/pulseaudio.changes @@ -1,3 +1,64 @@ +------------------------------------------------------------------- +Mon Sep 16 08:42:14 UTC 2019 - Bjørn Lie + +- Update to version 13.0: + * Added support for Dolby TrueHD and DTS-HD Master Audio + * Improved initial card profile selection for ALSA cards + * Bluetooth card profile choices aren't persistent any more by + default. + * Added support for SteelSeries Arctis 5 USB headset. + * New "max_latency_msec" module argument for module-loopback. + * New "stream_name" module argument for module-rtp-send. + * Fixed S/PDIF for CMEDIA USB2.0 High-Speed True HD Audio. + * Use source sample spec and channel map by default in + module-loopback. + * New "avoid_resampling" module argument for module-udev-detect + and module-alsa-card. + * "avoid_resampling" also tries to avoid format conversion if the + ALSA device supports it. + * New function to enable realtime scheduling for client threads. + * Removed BlueZ 4 support. + * Dropped intltool. + * Introduction of the Meson build system. + * Const-ification of parameters across headers. + * Minor bug-fixes, bindings updates. + * Updated translations. +- Update drvver to 13.0. + +------------------------------------------------------------------- +Sat Sep 7 23:14:50 UTC 2019 - Bjørn Lie + +- Use make_build macros. + +------------------------------------------------------------------- +Tue Aug 27 15:43:10 CEST 2019 - tiwai@suse.de + +- Workaround for old systemd on Leap 15.x, as the recent hardening + relies on the new systemd: + pulseaudio-old-systemd-workaround.patch + +------------------------------------------------------------------- +Tue Aug 6 20:18:24 UTC 2019 - Ondrej Holecek + +- Update to 13 RC2 (12.99.2) + * Added support for Dolby TrueHD and DTS-HD Master Audio + * Improved initial card profile selection for ALSA cards + * Bluetooth card profile choices aren't persistent any more by default + * Added support for SteelSeries Arctis 5 USB headset + * New "max_latency_msec" module argument for module-loopback + * New "stream_name" module argument for module-rtp-send + * Fixed S/PDIF for CMEDIA USB2.0 High-Speed True HD Audio + * Use source sample spec and channel map by default in module-loopback + * New "avoid_resampling" module argument for module-udev-detect and module-alsa-card + * New function to enable realtime scheduling for client threads + * Removed BlueZ 4 support + * Dropped intltool + * Some initial work on a Meson build system + * https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/13.0/ +- Removed patches already included in the source: + pulseaudio-alsa.patch + pa-set-exit-idle-time-to-0-when-we-detect-a-session.patch + ------------------------------------------------------------------- Thu Jul 11 17:50:21 UTC 2019 - Antoine Belvire diff --git a/pulseaudio.spec b/pulseaudio.spec index 5301bc7..7179646 100644 --- a/pulseaudio.spec +++ b/pulseaudio.spec @@ -21,12 +21,12 @@ %define _fillupdir /var/adm/fillup-templates %endif -%define drvver 12.2 +%define drvver 13.0 %define soname 0 %define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d %define _bashcompletionsdir %{_datadir}/bash-completion/completions Name: pulseaudio -Version: 12.2 +Version: 13.0 Release: 0 Summary: A Networked Sound Server License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -45,17 +45,16 @@ Source99: baselibs.conf Patch0: disabled-start.diff Patch1: suppress-socket-error-msg.diff Patch2: pulseaudio-wrong-memset.patch -Patch3: pulseaudio-alsa.patch -Patch4: pa-set-exit-idle-time-to-0-when-we-detect-a-session.patch # PATCH-FIX-OPENSUSE qpaeq-shebang.patch Avoid rpmlint error due to using env python shebang Patch5: qpaeq-shebang.patch +# PATCH-FIX-OPENSUSE Workaround for old systemd on Leap 15.x +Patch6: pulseaudio-old-systemd-workaround.patch BuildRequires: alsa-devel >= 1.0.19 BuildRequires: bluez-devel >= 5 BuildRequires: doxygen BuildRequires: fdupes BuildRequires: fftw3-devel >= 3.0 BuildRequires: gcc-c++ -BuildRequires: intltool BuildRequires: jack-devel BuildRequires: libatomic_ops-devel >= 1.2 BuildRequires: libavahi-devel @@ -88,6 +87,7 @@ BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x11-xcb) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xtst) + Requires: rtkit Requires: udev >= 146 ## needs the same liborc version which was used to build against @@ -95,7 +95,6 @@ Requires: udev >= 146 Requires(post): %fillup_prereq Requires(pre): group(audio) Requires(pre): shadow -Recommends: %{name}-bash-completion Recommends: %{name}-lang Recommends: alsa-plugins-pulse Suggests: libsoxr0 >= 0.1.1 @@ -319,6 +318,7 @@ Summary: PulseAudio Bash completion Group: System/Shells Requires: %{name}-utils = %{version} Requires: bash-completion +Supplements: packageand(pulseaudio:bash) %description bash-completion Optional dependency offering bash completion for various PulseAudio utilities @@ -328,6 +328,7 @@ Summary: PulseAudio zsh completion Group: System/Shells Requires: %{name}-utils = %{version} Requires: zsh +Supplements: packageand(pulseaudio:zsh) %description zsh-completion Optional dependency offering zsh completion for various PulseAudio utilities @@ -339,9 +340,11 @@ Optional dependency offering zsh completion for various PulseAudio utilities %patch0 %patch1 -p1 %patch2 -%patch3 -p1 -%patch4 -p1 %patch5 +# workaround for Leap 15.x +%if 0%{?suse_version} < 1550 +%patch6 -p1 +%endif %build %define _lto_cflags %{nil} @@ -350,33 +353,33 @@ echo 'HTML_TIMESTAMP=NO' >> doxygen/doxygen.conf.in export LDFLAGS="-pie" export CFLAGS="%{optflags} -fPIE" %configure \ - --disable-static \ - --disable-rpath \ + --disable-static \ + --disable-rpath \ %ifarch armv5tel armv6hl - --disable-neon-opt \ + --disable-neon-opt \ %endif - --with-system-user=pulse \ - --with-system-group=pulse \ - --with-access-group=pulse-access \ - --disable-hal-compat \ - --disable-bluez4 \ - --enable-webrtc-aec \ - --enable-adrian-aec \ - --enable-gconf \ - --enable-gsettings \ - --with-udev-rules-dir=%{_udevrulesdir} \ - --with-pulsedsp-location='%{_prefix}/\\$$LIB/pulseaudio' \ - --with-systemduserunitdir=%{_userunitdir} - -make %{?_smp_mflags} V=1 -make %{?_smp_mflags} doxygen + --with-system-user=pulse \ + --with-system-group=pulse \ + --with-access-group=pulse-access \ + --disable-hal-compat \ + --disable-bluez4 \ + --enable-webrtc-aec \ + --enable-adrian-aec \ + --enable-gconf \ + --enable-gsettings \ + --with-udev-rules-dir=%{_udevrulesdir} \ + --with-pulsedsp-location='%{_prefix}/\\$$LIB/pulseaudio' \ + --with-systemduserunitdir=%{_userunitdir} \ + %{nil} +%make_build +%make_build doxygen %install %make_install rm -rf \ - "%{buildroot}%{_libdir}"/*.la \ - "%{buildroot}%{_libdir}/pulse-%{drvver}/modules"/*.la \ - "%{buildroot}%{_libdir}/pulseaudio"/*.la + "%{buildroot}%{_libdir}"/*.la \ + "%{buildroot}%{_libdir}/pulse-%{drvver}/modules"/*.la \ + "%{buildroot}%{_libdir}/pulseaudio"/*.la # configure --disable-static had no effect; delete manually. rm -rf "%{buildroot}%{_libdir}"/*.a @@ -690,6 +693,7 @@ exit 0 %{_libdir}/pulse-%{drvver}/modules/module-zeroconf-publish.so %files utils +%{_bindir}/pa-info %{_bindir}/pacat %{_bindir}/pacmd %{_bindir}/pactl