udisks2/systemd-dynamic-check.diff

50 lines
1.6 KiB
Diff

commit ce5a67127223e99ffdbf9cb697537c689e2fe364
Author: Vincent Untz <vuntz@gnome.org>
Date: Tue Sep 25 10:55:31 2012 +0200
Fix same seat detection if built with systemd, but not booted with it
If we haven't booted with systemd, then we can only assume it's always
the same seat.
Based on patch by Takashi Iwai <tiwai@suse.com>.
https://bugzilla.novell.com/show_bug.cgi?id=769570
diff --git a/configure.ac b/configure.ac
index 994fd1a..93c715e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -145,7 +145,7 @@ AC_SUBST(LIBATASMART_CFLAGS)
AC_SUBST(LIBATASMART_LIBS)
PKG_CHECK_MODULES(LIBSYSTEMD_LOGIN,
- [libsystemd-login >= 44],
+ [libsystemd-login >= 44 libsystemd-daemon],
have_libsystemd_login=yes,
have_libsystemd_login=no)
AM_CONDITIONAL(HAVE_LIBSYSTEMD_LOGIN, test x$have_libsystemd_login = xyes)
diff --git a/src/udisksdaemonutil.c b/src/udisksdaemonutil.c
index ef925f5..69cd8a5 100644
--- a/src/udisksdaemonutil.c
+++ b/src/udisksdaemonutil.c
@@ -42,6 +42,7 @@
#include "udiskslinuxdriveobject.h"
#if defined(HAVE_LIBSYSTEMD_LOGIN)
+#include <systemd/sd-daemon.h>
#include <systemd/sd-login.h>
#endif
@@ -1021,6 +1022,10 @@ udisks_daemon_util_on_same_seat (UDisksDaemon *daemon,
UDisksObject *drive_object = NULL;
UDisksDrive *drive = NULL;
+ /* if we haven't booted with systemd, assume it's always the same seat */
+ if (sd_booted () <= 0)
+ return TRUE;
+
if (UDISKS_IS_LINUX_BLOCK_OBJECT (object))
{
UDisksLinuxBlockObject *linux_block_object;