commit:     bc4bc9cdeb223250a0f74aff63a37d7d45e01aa3
Author:     Denis Dupeyron <calchan <AT> gentoo <DOT> org>
AuthorDate: Fri May 24 03:56:41 2019 +0000
Commit:     Denis Dupeyron <calchan <AT> gentoo <DOT> org>
CommitDate: Fri May 24 03:56:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc4bc9cd

x11-misc/light-locker: bump to 1.9.0

Manually ported the elogind patch. Note that consolekit is no longer
supported.

Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: Denis Dupeyron <calchan <AT> gentoo.org>

 x11-misc/light-locker/Manifest                     |   1 +
 .../files/light-locker-1.9.0-elogind.patch         | 257 +++++++++++++++++++++
 x11-misc/light-locker/light-locker-1.9.0.ebuild    |  72 ++++++
 3 files changed, 330 insertions(+)

diff --git a/x11-misc/light-locker/Manifest b/x11-misc/light-locker/Manifest
index e9775ab7749..9350ca78299 100644
--- a/x11-misc/light-locker/Manifest
+++ b/x11-misc/light-locker/Manifest
@@ -1 +1,2 @@
 DIST light-locker-1.8.0.tar.bz2 449898 BLAKE2B 
d5ff454958138ec535b94492a9646dd5a4fc8196095ef3ae933d661e44eb62960ca49fe070fd88a794e2a9c5a6586317845b0d55d8cfd65107e49e31206a727a
 SHA512 
bbad73c0b82a50ddca240d5e1bd325a99d0c60364d136fe6d9d52f196319953373c9d03cf38ebd75d4498d080e96702e09fc97c35b4b69cbe963f065719549d5
+DIST v1.9.0.tar.gz 124753 BLAKE2B 
510447a5fa107988a06e92cc99d7750bc0df526356630694c5dc718460bd437879bbdcb69e0778bdb58d399aafdbea762bfda53d2e2205a1c4bade27dbff78c5
 SHA512 
c6f84b38affa20cf0bd7d2341f5a8eff36891ed55401955715a68a011c84c7f2300db670abb95a320eb40aee90885fe044ddf0a721e418ee4724af3e4f6a61a4

diff --git a/x11-misc/light-locker/files/light-locker-1.9.0-elogind.patch 
b/x11-misc/light-locker/files/light-locker-1.9.0-elogind.patch
new file mode 100644
index 00000000000..298e75844c4
--- /dev/null
+++ b/x11-misc/light-locker/files/light-locker-1.9.0-elogind.patch
@@ -0,0 +1,257 @@
+From 76afbe0757d8846d76bfed350aa9c9e4242aef86 Mon Sep 17 00:00:00 2001
+From: Denis Dupeyron <[email protected]>
+Date: Thu, 23 May 2019 13:52:12 -0600
+Subject: [PATCH] Port light-locker-1.8.0-elogind.patch
+
+---
+ README.md              |  2 ++
+ configure.ac.in        | 37 +++++++++++++++++++++++++++++++++++++
+ src/gs-listener-dbus.c | 34 +++++++++++++++++++---------------
+ src/light-locker.c     |  6 ++++++
+ 4 files changed, 64 insertions(+), 15 deletions(-)
+
+diff --git a/README.md b/README.md
+index 86b66d0..b093a4f 100644
+--- a/README.md
++++ b/README.md
+@@ -38,6 +38,8 @@ Here is a list of the different dependencies and their 
configuration flags:
+ 
+   --with-systemd: This adds the support for systemd logind. This option 
requires the development files to be installed.
+ 
++  --with-elogind: This adds support for elogind, a standalone version of 
systemd's logind daemon. Requires the elogind development files be installed. 
This option cannot be enabled at the same time as the --with-systemd option 
above.
++
+   --with-upower: This adds the support for UPower.
+ 
+   --with-mit-ext: This enables the lock-after-screensaver feature. This 
options requires the X11 Screen Saver extension development files to be 
installed.
+diff --git a/configure.ac.in b/configure.ac.in
+index f95863a..5c92191 100644
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -421,6 +421,42 @@ fi
+ AC_SUBST(SYSTEMD_CFLAGS)
+ AC_SUBST(SYSTEMD_LIBS)
+ 
++dnl 
---------------------------------------------------------------------------
++dnl elogind
++dnl 
---------------------------------------------------------------------------
++
++AC_ARG_WITH(elogind,
++            AS_HELP_STRING([--with-elogind],
++                           [Add elogind support]),
++            [with_elogind=$withval], [with_elogind=auto])
++
++if test "x$with_systemd" = "xyes" && test "x$with_elogind" = "xyes"; then
++    AC_MSG_ERROR([Conflicting options: --with-systemd and --with-elogind])
++fi
++
++PKG_CHECK_MODULES(ELOGIND,
++                  [libelogind],
++                  [have_elogind=yes], [have_elogind=no])
++
++if test "x$with_elogind" = "xauto" ; then
++        if test x$have_elogind = xno ; then
++                use_elogind=no
++        else
++                use_elogind=yes
++        fi
++else
++       use_elogind=$with_elogind
++fi
++
++if test "x$use_elogind" = "xyes"; then
++        if test "x$have_elogind" = "xno"; then
++                AC_MSG_ERROR([Elogind support explicitly required, but 
elogind not found])
++        fi
++        AC_DEFINE(WITH_ELOGIND, 1, [elogind support])
++fi
++AC_SUBST(ELOGIND_CFLAGS)
++AC_SUBST(ELOGIND_LIBS)
++
+ dnl 
---------------------------------------------------------------------------
+ dnl UPower
+ dnl 
---------------------------------------------------------------------------
+@@ -640,6 +676,7 @@ echo "
+                     Platform:
+                     ---------
+         systemd:                  ${use_systemd}
++      elogind:                  ${use_elogind}
+         UPower:                   ${use_upower}
+ 
+                     Features:
+diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c
+index 044a2bf..164856f 100644
+--- a/src/gs-listener-dbus.c
++++ b/src/gs-listener-dbus.c
+@@ -43,6 +43,10 @@
+ #include <systemd/sd-login.h>
+ #endif
+ 
++#ifdef WITH_ELOGIND
++#include <elogind/systemd/sd-login.h>
++#endif
++
+ #include "gs-listener-dbus.h"
+ #include "gs-marshal.h"
+ #include "gs-debug.h"
+@@ -78,7 +82,7 @@ struct GSListenerPrivate
+         char           *session_id;
+         char           *seat_path;
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         gboolean        have_systemd;
+         char           *sd_session_id;
+         int             delay_fd;
+@@ -134,7 +138,7 @@ gs_listener_send_switch_greeter (GSListener *listener)
+ 
+         gs_debug ("Send switch greeter");
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         /* Compare with 0. On failure this will return < 0.
+          * In the later case we probably aren't using systemd.
+          */
+@@ -175,7 +179,7 @@ gs_listener_send_lock_session (GSListener *listener)
+ 
+         gs_debug ("Send lock session");
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         /* Compare with 0. On failure this will return < 0.
+          * In the later case we probably aren't using systemd.
+          */
+@@ -359,7 +363,7 @@ gs_listener_set_idle_hint (GSListener *listener, gboolean 
idle)
+ 
+         gs_debug ("Send idle hint: %d", idle);
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         if (listener->priv->have_systemd) {
+ 
+                 if (listener->priv->system_connection == NULL) {
+@@ -400,7 +404,7 @@ gs_listener_set_idle_hint (GSListener *listener, gboolean 
idle)
+ void
+ gs_listener_delay_suspend (GSListener *listener)
+ {
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         DBusMessage    *message;
+         DBusMessage    *reply;
+         DBusError       error;
+@@ -473,7 +477,7 @@ gs_listener_delay_suspend (GSListener *listener)
+ void
+ gs_listener_resume_suspend (GSListener *listener)
+ {
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         gs_debug ("Resume suspend: fd=%d", listener->priv->delay_fd);
+ 
+         if (listener->priv->delay_fd >= 0) {
+@@ -1076,7 +1080,7 @@ _listener_message_path_is_our_session (GSListener  
*listener,
+         return FALSE;
+ }
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+ static gboolean
+ query_session_active (GSListener *listener)
+ {
+@@ -1212,7 +1216,7 @@ query_lid_closed (GSListener *listener)
+ #endif
+ #endif
+ 
+-#if defined(WITH_SYSTEMD) || (defined(WITH_UPOWER) && 
defined(WITH_LOCK_ON_LID))
++#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND) || (defined(WITH_UPOWER) 
&& defined(WITH_LOCK_ON_LID))
+ static gboolean
+ properties_changed_match (DBusMessage *message,
+                           const char  *property)
+@@ -1307,7 +1311,7 @@ listener_dbus_handle_system_message (DBusConnection 
*connection,
+                   dbus_message_get_destination (message));
+ #endif
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+ 
+         if (listener->priv->have_systemd) {
+ 
+@@ -1880,7 +1884,7 @@ gs_listener_acquire (GSListener *listener,
+                                             
listener_dbus_system_filter_function,
+                                             listener,
+                                             NULL);
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+                 if (listener->priv->have_systemd) {
+                         dbus_bus_add_match (listener->priv->system_connection,
+                                             "type='signal'"
+@@ -1971,7 +1975,7 @@ query_session_id (GSListener *listener)
+ 
+         dbus_error_init (&error);
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         if (listener->priv->have_systemd) {
+                 dbus_uint32_t pid = getpid();
+ 
+@@ -2022,7 +2026,7 @@ query_session_id (GSListener *listener)
+         return NULL;
+ }
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+ static char *
+ query_sd_session_id (GSListener *listener)
+ {
+@@ -2053,7 +2057,7 @@ init_session_id (GSListener *listener)
+         else
+                 gs_debug ("Got session-id: %s", listener->priv->session_id);
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         g_free (listener->priv->sd_session_id);
+         listener->priv->sd_session_id = query_sd_session_id (listener);
+         if (listener->priv->sd_session_id == NULL)
+@@ -2150,7 +2154,7 @@ gs_listener_init (GSListener *listener)
+ {
+         listener->priv = GS_LISTENER_GET_PRIVATE (listener);
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         /* check if logind is running */
+         listener->priv->have_systemd = (access("/run/systemd/seats/", F_OK) 
>= 0);
+         listener->priv->delay_fd = -1;
+@@ -2179,7 +2183,7 @@ gs_listener_finalize (GObject *object)
+         g_free (listener->priv->session_id);
+         g_free (listener->priv->seat_path);
+ 
+-#ifdef WITH_SYSTEMD
++#ifdef WITH_SYSTEMD || defined(WITH_ELOGIND)
+         g_free (listener->priv->sd_session_id);
+ #endif
+ 
+diff --git a/src/light-locker.c b/src/light-locker.c
+index aefc4c6..51ae519 100644
+--- a/src/light-locker.c
++++ b/src/light-locker.c
+@@ -139,6 +139,7 @@ main (int    argc,
+         gs_debug ("Platform:\n"
+                   "gtk:        %d\n"
+                   "systemd:    %s\n"
++                "elogind:    %s"
+                   "UPower:     %s",
+                   GTK_MAJOR_VERSION,
+ #ifdef WITH_SYSTEMD
+@@ -146,6 +147,11 @@ main (int    argc,
+ #else
+                   "no",
+ #endif
++#ifdef WITH_ELOGIND
++                  "yes"
++#else
++                  "no"
++#endif
+ #ifdef WITH_UPOWER
+                   "yes"
+ #else
+-- 
+2.21.0
+

diff --git a/x11-misc/light-locker/light-locker-1.9.0.ebuild 
b/x11-misc/light-locker/light-locker-1.9.0.ebuild
new file mode 100644
index 00000000000..d46f9cdaf37
--- /dev/null
+++ b/x11-misc/light-locker/light-locker-1.9.0.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools gnome2-utils
+
+DESCRIPTION="A simple locker using lightdm"
+HOMEPAGE="https://github.com/the-cavalry/light-locker";
+SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dpms elogind +screensaver systemd +upower"
+
+BDEPEND="dev-lang/perl
+       dev-perl/XML-Parser
+       dev-util/intltool
+       sys-devel/gettext"
+DEPEND="dev-libs/dbus-glib
+       dev-libs/glib
+       sys-apps/dbus
+       x11-libs/cairo
+       x11-libs/gtk+:3
+       x11-libs/libX11
+       x11-libs/pango
+       x11-libs/libXxf86vm
+       dpms? ( x11-libs/libXext )
+       elogind? ( sys-auth/elogind )
+       screensaver? ( x11-libs/libXScrnSaver )
+       systemd? ( sys-apps/systemd )
+       upower? ( sys-power/upower )"
+RDEPEND="${DEPEND}
+       x11-misc/lightdm"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+DOCS=( AUTHORS HACKING NEWS README )
+
+PATCHES=(
+       "${FILESDIR}/${P}-elogind.patch"
+)
+
+src_prepare() {
+       default
+       # Fixed upstream right after the release, remove this next time you bump
+       ln -sf README.md README || die
+       # remove xdt-autogen specific macro (just like upstream do) as we need 
to autoreconf
+       sed -e "/XDT_I18N/d" configure.ac.in > configure.ac || die
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               $(use_with dpms dpms-ext)
+               $(use_with screensaver x)
+               $(use_with screensaver mit-ext)
+               $(use_with systemd)
+               $(use_with elogind)
+               $(use_with upower)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+pkg_postinst() {
+       gnome2_schemas_update
+}
+
+pkg_postrm() {
+       gnome2_schemas_update
+}

Reply via email to