use better upstream patch for exit-idle-time
use %%license, %%ldconfig_scriptlets
This commit is contained in:
parent
f9e5f72e45
commit
79fe25c1db
102
pulseaudio-11.1-exit_idle_time-2.patch
Normal file
102
pulseaudio-11.1-exit_idle_time-2.patch
Normal file
@ -0,0 +1,102 @@
|
||||
diff -up pulseaudio-11.1/src/modules/module-console-kit.c.foo pulseaudio-11.1/src/modules/module-console-kit.c
|
||||
--- pulseaudio-11.1/src/modules/module-console-kit.c.foo 2016-08-23 07:50:10.000000000 -0500
|
||||
+++ pulseaudio-11.1/src/modules/module-console-kit.c 2018-02-28 11:01:50.138465311 -0600
|
||||
@@ -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)
|
||||
diff -up pulseaudio-11.1/src/modules/module-systemd-login.c.foo pulseaudio-11.1/src/modules/module-systemd-login.c
|
||||
--- pulseaudio-11.1/src/modules/module-systemd-login.c.foo 2018-02-28 11:01:50.138465311 -0600
|
||||
+++ pulseaudio-11.1/src/modules/module-systemd-login.c 2018-02-28 11:03:06.053396460 -0600
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
diff -up pulseaudio-11.1/src/modules/x11/module-x11-xsmp.c.foo pulseaudio-11.1/src/modules/x11/module-x11-xsmp.c
|
||||
--- pulseaudio-11.1/src/modules/x11/module-x11-xsmp.c.foo 2016-08-23 07:50:10.000000000 -0500
|
||||
+++ pulseaudio-11.1/src/modules/x11/module-x11-xsmp.c 2018-02-28 11:01:50.138465311 -0600
|
||||
@@ -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;
|
||||
diff -up pulseaudio-11.1/src/pulsecore/core.c.foo pulseaudio-11.1/src/pulsecore/core.c
|
||||
--- pulseaudio-11.1/src/pulsecore/core.c.foo 2018-02-28 11:01:50.137465298 -0600
|
||||
+++ pulseaudio-11.1/src/pulsecore/core.c 2018-02-28 11:01:50.139465323 -0600
|
||||
@@ -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);
|
||||
diff -up pulseaudio-11.1/src/pulsecore/core.h.foo pulseaudio-11.1/src/pulsecore/core.h
|
||||
--- pulseaudio-11.1/src/pulsecore/core.h.foo 2018-02-28 11:01:50.120465090 -0600
|
||||
+++ pulseaudio-11.1/src/pulsecore/core.h 2018-02-28 11:01:50.139465323 -0600
|
||||
@@ -255,6 +255,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);
|
||||
|
||||
@ -59,9 +59,8 @@ Patch202: pulseaudio-9.0-disable_flat_volumes.patch
|
||||
# see also https://bugs.freedesktop.org/show_bug.cgi?id=96638
|
||||
Patch203: pulseaudio-8.99.2-getaffinity.patch
|
||||
|
||||
# reduce exit-idle-time 20 -> 4
|
||||
# to mitigate http://bugzilla.redhat.com/1510301
|
||||
Patch204: pulseaudio-11.1-exit_idle_time.patch
|
||||
# upstreamed exit_idle_time solution, set to 0 in managed environments
|
||||
Patch204: pulseaudio-11.1-exit_idle_time-2.patch
|
||||
|
||||
# workaround rawhide build failures, avoid dup'd memfd_create declaration
|
||||
# https://bugs.freedesktop.org/show_bug.cgi?id=104733
|
||||
@ -429,8 +428,7 @@ if ! getent passwd pulse >/dev/null ; then
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%posttrans
|
||||
# handle renamed module-cork-music-on-phone => module-role-cork
|
||||
@ -440,7 +438,8 @@ exit 0
|
||||
) ||:
|
||||
|
||||
%files
|
||||
%doc README LICENSE GPL LGPL
|
||||
%doc README
|
||||
%license LICENSE GPL LGPL
|
||||
%config(noreplace) %{_sysconfdir}/pulse/daemon.conf
|
||||
%config(noreplace) %{_sysconfdir}/pulse/default.pa
|
||||
%config(noreplace) %{_sysconfdir}/pulse/system.pa
|
||||
@ -668,8 +667,10 @@ exit 0
|
||||
|
||||
|
||||
%changelog
|
||||
* Sun Feb 25 2018 Rex Dieter <rdieter@fedoraproject.org> - 11.1-12
|
||||
* Wed Feb 28 2018 Rex Dieter <rdieter@fedoraproject.org> - 11.1-12
|
||||
- BR: gcc-c++
|
||||
- use %%license, %%ldconfig_scriptlets
|
||||
- use better upstream patch for exit-idle-time
|
||||
|
||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 11.1-11
|
||||
- Escape macros in %%changelog
|
||||
|
||||
Loading…
Reference in New Issue
Block a user