summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/packagekit-base/files/packagekit-base-elogind-support.patch')
-rw-r--r--app-admin/packagekit-base/files/packagekit-base-elogind-support.patch182
1 files changed, 182 insertions, 0 deletions
diff --git a/app-admin/packagekit-base/files/packagekit-base-elogind-support.patch b/app-admin/packagekit-base/files/packagekit-base-elogind-support.patch
new file mode 100644
index 000000000000..bed2a0de4494
--- /dev/null
+++ b/app-admin/packagekit-base/files/packagekit-base-elogind-support.patch
@@ -0,0 +1,182 @@
+--- 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,22 @@
+ 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])
++fi
++
++dnl ---------------------------------------------------------------------------
++dnl --- Is systemd/sd-login.h, either from systemd or elogind, available?
++dnl ---------------------------------------------------------------------------
++if test "x$have_systemd" != "xno" -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 */