path: root/configure.ac
diff options
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-10-21 17:17:49 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-10-21 17:19:52 -0400
commit6eefae48229c76e9396602f39903ed9c396d2e3c (patch)
tree1077c249e329edc09f2280d38432c493427f992e /configure.ac
parentrequire efl >= 1.16 for wayland support (diff)
add hacks to work around pulseaudio+xwayland integration deadlocks
enlightenment is (I think) the first wayland compositor to run with in-process pulseaudio integration for audio playback and not just mixer support. hooray. this results in a fun issue: if DISPLAY is set, as it must be for x11 clients to function, pulseaudio will unconditionally attempt to use a blocking socket connection to create a connection to the running xserver. the only exception here is if x11 support has been compiled out of pulseaudio, but probably no distro will do that ever. so, what happens when the compositor thread tries to create a socket connection to the xserver that the compositor thread has not yet started? absolutely nothing. forever. the easiest solution which continues to provide the key press sounds that everyone loves is to ensure that the pulseaudio connection is created before DISPLAY is ever set, namely in the xwayland module init. this will now occur automatically now in the case when the mixer module detects pulseaudio support. TL;DR: don't disable mixer module if you use xwayland
Notes: TIL mutter apparently does this too but doesn't deadlock
Diffstat (limited to 'configure.ac')
1 files changed, 2 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index cbcbac1c1..fcfeebd13 100644
--- a/configure.ac
+++ b/configure.ac
@@ -682,7 +682,7 @@ define([CHECK_MODULE_MIXER],
AC_E_CHECK_PKG(ALSA, [alsa >= 1.0.8],
[ ], [ ])
AC_E_CHECK_PKG([PULSE], [libpulse-simple libpulse],
- [ ], [ ])
+ [AC_DEFINE_UNQUOTED([HAVE_PULSE], [1], [have pulseaudio])], [ ])
@@ -837,7 +837,7 @@ HAVE_XWAYLAND_DEPS=false
if test "x${have_wayland}" = "xyes"; then
- AC_E_CHECK_PKG(XWAYLAND, [ ecore >= ${efl_version} ecore-x >= ${efl_version} ], [HAVE_XWAYLAND_DEPS=true], [HAVE_XWAYLAND_DEPS=false])
+ AC_E_CHECK_PKG(XWAYLAND, [ ecore >= ${efl_version} ecore-x >= ${efl_version} ecore-audio >= ${efl_version} ], [HAVE_XWAYLAND_DEPS=true], [HAVE_XWAYLAND_DEPS=false])
AC_PATH_PROG([XWAYLAND_BIN], [Xwayland], [false])