You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-admin/packagekit-base/files/packagekit-base-elogind-sup...

185 lines
5.7 KiB

--- a/config.h.in 2017-06-07 16:38:45.046910693 +0200
+++ b/config.h.in 2017-06-07 16:39:06.973911120 +0200
@@ -78,8 +78,8 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Build systemd code */
-#undef HAVE_SYSTEMD
+/* Build systemd-login code */
+#undef HAVE_SYSTEMD_SD_LOGIN_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
--- a/configure.ac 2017-06-06 09:03:57.171355965 +0200
+++ b/configure.ac 2017-06-06 09:55:11.242384458 +0200
@@ -254,7 +254,6 @@
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[has_systemdsystemunitdir=$with_systemdsystemunitdir],
[has_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
- AC_DEFINE(HAVE_SYSTEMD,1,[Build systemd code])
AC_SUBST([systemdsystemunitdir], [$has_systemdsystemunitdir])
fi
AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$has_systemdsystemunitdir"])
@@ -267,6 +266,24 @@
AM_CONDITIONAL(ENABLE_OFFLINE_UPDATE, [test x$enable_systemd = xyes -a x$enable_offline_update = xyes])
dnl ---------------------------------------------------------------------------
+dnl - Use elogind instead of systemd-login
+dnl ---------------------------------------------------------------------------
+AC_ARG_ENABLE(elogind, AS_HELP_STRING([--enable-elogind],[enable elogind session tracker]),
+ enable_elogind=$enableval,enable_elogind=no)
+if test x$enable_elogind = xyes; then
+ PKG_CHECK_MODULES(ELOGIND, [libelogind >= 229.4], [have_elogind=yes], [have_elogind=no])
+else
+ have_elogind=no
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl --- Is systemd/sd-login.h, either from systemd or elogind, available?
+dnl ---------------------------------------------------------------------------
+if test -n "$has_systemdsystemunitdir" -o "x$have_elogind" != "xno" ; then
+ AC_DEFINE(HAVE_SYSTEMD_SD_LOGIN_H,1,[Build systemd-login code])
+fi
+
+dnl ---------------------------------------------------------------------------
dnl - Generate man pages ? (default enabled)
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(man_pages, AS_HELP_STRING([--disable-man-pages],[Disable man pages generation]), enable_man_pages=$enableval)
@@ -629,6 +644,7 @@
cflags: ${CFLAGS}
cppflags: ${CPPFLAGS}
Able to run locally: ${enable_local}
+ Use elogind: ${enable_elogind}
Use systemd: ${enable_systemd}
Enable offline update: ${enable_offline_update}
Networking stacks: ${networking_apis}
--- a/src/Makefile.am 2017-06-06 10:02:19.902397328 +0200
+++ b/src/Makefile.am 2017-06-06 10:04:05.013400483 +0200
@@ -11,6 +11,7 @@
$(PYTHON_CFLAGS) \
$(NETWORK_MANAGER_CFLAGS) \
$(CONNMAN_CFLAGS) \
+ $(ELOGIND_CFLAGS) \
$(SYSTEMD_CFLAGS) \
-DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
-DBINDIR=\"$(bindir)\" \
@@ -104,6 +105,7 @@
$(POLKIT_LIBS) \
$(GIO_LIBS) \
$(ARCHIVE_LIBS) \
+ $(ELOGIND_LIBS) \
$(SYSTEMD_LIBS)
packagekit_direct_LDFLAGS = \
@@ -134,6 +136,7 @@
$(POLKIT_LIBS) \
$(GIO_LIBS) \
$(ARCHIVE_LIBS) \
+ $(ELOGIND_LIBS) \
$(SYSTEMD_LIBS)
packagekitd_LDFLAGS = \
@@ -161,6 +164,7 @@
$(POLKIT_LIBS) \
$(GIO_LIBS) \
$(ARCHIVE_LIBS) \
+ $(ELOGIND_LIBS) \
$(SYSTEMD_LIBS)
pk_self_test_CPPFLAGS = \
--- a/src/pk-engine.c 2017-06-06 09:12:23.828371176 +0200
+++ b/src/pk-engine.c 2017-06-06 09:55:47.426385545 +0200
@@ -98,7 +98,7 @@
guint owner_id;
GDBusNodeInfo *introspection;
GDBusConnection *connection;
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
GDBusProxy *logind_proxy;
gint logind_fd;
#endif
@@ -281,7 +281,7 @@
static void
pk_engine_inhibit (PkEngine *engine)
{
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
g_autoptr(GError) error = NULL;
g_autoptr(GUnixFDList) out_fd_list = NULL;
g_autoptr(GVariant) res = NULL;
@@ -331,7 +331,7 @@
static void
pk_engine_uninhibit (PkEngine *engine)
{
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
if (engine->priv->logind_fd == 0)
return;
g_debug ("closed logind fd %i", engine->priv->logind_fd);
@@ -1830,7 +1830,7 @@
}
}
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
/**
* pk_engine_proxy_logind_cb:
**/
@@ -1872,7 +1872,7 @@
/* save copy for emitting signals */
engine->priv->connection = g_object_ref (connection);
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
/* connect to logind */
g_dbus_proxy_new (connection,
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
@@ -2031,7 +2031,7 @@
if (engine->priv->connection != NULL)
g_object_unref (engine->priv->connection);
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
/* uninhibit */
if (engine->priv->logind_fd != 0)
close (engine->priv->logind_fd);
--- a/src/pk-dbus.c 2017-06-06 09:12:13.254370858 +0200
+++ b/src/pk-dbus.c 2017-06-06 10:09:17.249409857 +0200
@@ -27,7 +27,7 @@
#include <glib.h>
#include <gio/gio.h>
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
#include <systemd/sd-login.h>
#endif
@@ -177,7 +177,7 @@
return cmdline;
}
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
/**
* pk_dbus_get_session_systemd:
**/
@@ -220,7 +220,7 @@
pk_dbus_get_session (PkDbus *dbus, const gchar *sender)
{
gchar *session = NULL;
-#ifndef HAVE_SYSTEMD
+#ifndef HAVE_SYSTEMD_SD_LOGIN_H
g_autoptr(GError) error = NULL;
#endif
guint pid;
@@ -250,7 +250,7 @@
}
/* get session from systemd or ConsoleKit */
-#ifdef HAVE_SYSTEMD
+#ifdef HAVE_SYSTEMD_SD_LOGIN_H
session = pk_dbus_get_session_systemd (pid);
#else
/* get session from ConsoleKit */