mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-25 00:00:17 +01:00
Check for X even if X11 autolaunching is disabled
DBUS_ENABLE_X11_AUTOLAUNCH obviously requires DBUS_BUILD_X11. However, the converse is not true. If DBUS_BUILD_X11 is defined, dbus-launch will be able to connect to the X server to determine when the session ends; most distributors will want this, but it can be disabled with the standard Autoconf option --without-x. If DBUS_ENABLE_X11_AUTOLAUNCH is *also* defined, dbus-launch and libdbus will be willing to perform autolaunch. Again, most distributors will want this, but it can be disabled with --disable-x11-autolaunch. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=19997 Reviewed-by: Colin Walters <walters@verbum.org>
This commit is contained in:
parent
2bfac1b73d
commit
cea055514a
5 changed files with 24 additions and 11 deletions
|
|
@ -83,6 +83,11 @@
|
|||
#endif
|
||||
|
||||
#cmakedefine DBUS_BUILD_X11 1
|
||||
/* For the moment, the cmake build system doesn't have an equivalent of
|
||||
* the autoconf build system's --disable-x11-autolaunch */
|
||||
#ifdef DBUS_BUILD_X11
|
||||
# define DBUS_ENABLE_X11_AUTOLAUNCH 1
|
||||
#endif
|
||||
|
||||
#define _DBUS_VA_COPY_ASSIGN(a1,a2) { a1 = a2; }
|
||||
|
||||
|
|
|
|||
13
configure.ac
13
configure.ac
|
|
@ -1075,9 +1075,6 @@ if test "x$dbus_win" = xyes; then
|
|||
fi
|
||||
|
||||
enable_x11_autolaunch=no
|
||||
fi
|
||||
|
||||
if test "x$enable_x11_autolaunch" = xno; then
|
||||
have_x11=no
|
||||
else
|
||||
AC_PATH_XTRA
|
||||
|
|
@ -1095,11 +1092,17 @@ if test "x$enable_x11_autolaunch,$have_x11" = xyes,no; then
|
|||
AC_MSG_ERROR([X11 auto-launch requires X headers/libraries])
|
||||
else
|
||||
# move from "auto" to "yes" or "no" if necessary
|
||||
enable_x11_autolaunch="$have_x11"
|
||||
if test "x$enable_x11_autolaunch" != xno; then
|
||||
enable_x11_autolaunch="$have_x11"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$have_x11" = xyes ; then
|
||||
AC_DEFINE([DBUS_BUILD_X11], [1], [Define to build X11 functionality])
|
||||
fi
|
||||
|
||||
if test "x$enable_x11_autolaunch" = xyes ; then
|
||||
AC_DEFINE([DBUS_BUILD_X11], [1], [Define to enable X11 auto-launch])
|
||||
AC_DEFINE([DBUS_ENABLE_X11_AUTOLAUNCH], [1], [Define to enable X11 auto-launch])
|
||||
fi
|
||||
|
||||
AC_SUBST([DBUS_X_CFLAGS])
|
||||
|
|
|
|||
|
|
@ -3257,7 +3257,7 @@ _dbus_get_autolaunch_address (const char *scope,
|
|||
DBusString *address,
|
||||
DBusError *error)
|
||||
{
|
||||
#ifdef DBUS_BUILD_X11
|
||||
#ifdef DBUS_ENABLE_X11_AUTOLAUNCH
|
||||
/* Perform X11-based autolaunch. (We also support launchd-based autolaunch,
|
||||
* but that's done elsewhere, and if it worked, this function wouldn't
|
||||
* be called.) */
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ main (int argc, char *argv[])
|
|||
|
||||
conn = dbus_bus_get (DBUS_BUS_SESSION, &error);
|
||||
|
||||
#ifdef DBUS_BUILD_X11
|
||||
#ifdef DBUS_ENABLE_X11_AUTOLAUNCH
|
||||
if (dbus_error_is_set (&error))
|
||||
{
|
||||
fprintf (stderr, "*** Failed to autolaunch session bus: %s\n",
|
||||
|
|
|
|||
|
|
@ -917,7 +917,11 @@ main (int argc, char **argv)
|
|||
fprintf (stderr, "Autolaunch requested, but X11 support not compiled in.\n"
|
||||
"Cannot continue.\n");
|
||||
exit (1);
|
||||
#else
|
||||
#else /* DBUS_BUILD_X11 */
|
||||
#ifndef DBUS_ENABLE_X11_AUTOLAUNCH
|
||||
fprintf (stderr, "X11 autolaunch support disabled at compile time.\n");
|
||||
exit (1);
|
||||
#else /* DBUS_ENABLE_X11_AUTOLAUNCH */
|
||||
char *address;
|
||||
pid_t pid;
|
||||
long wid;
|
||||
|
|
@ -954,11 +958,12 @@ main (int argc, char **argv)
|
|||
bourne_shell_syntax, binary_syntax, argc, argv, remaining_args);
|
||||
exit (0);
|
||||
}
|
||||
#endif /* DBUS_ENABLE_X11_AUTOLAUNCH */
|
||||
}
|
||||
else if (read_machine_uuid_if_needed())
|
||||
else if (read_machine_uuid_if_needed())
|
||||
{
|
||||
x11_init();
|
||||
#endif
|
||||
#endif /* DBUS_BUILD_X11 */
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1177,7 +1182,7 @@ main (int argc, char **argv)
|
|||
|
||||
close (bus_pid_to_launcher_pipe[READ_END]);
|
||||
|
||||
#ifdef DBUS_BUILD_X11
|
||||
#ifdef DBUS_ENABLE_X11_AUTOLAUNCH
|
||||
if (xdisplay != NULL)
|
||||
{
|
||||
verbose("Saving x11 address\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue