From 786b5dd07b12afdd967cb6df1ec6c592817cdd89 Mon Sep 17 00:00:00 2001 From: Balletie Date: Sun, 18 Dec 2016 18:20:29 +0100 Subject: [PATCH] light-locker: use systemd/logind instead of UPower Since systemd has been adopted for a while now, we should switch to using it for light-locker as well. So I disabled ConsoleKit/UPower support in favor of using systemd with logind. This fixed many issues for me, and made light-locker working again. I followed the PKGBUILD of Arch's package in determining the right configure flags. See: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/light-locker --- .../screensavers/light-locker/default.nix | 22 ++++++++++++++++--- .../screensavers/light-locker/systemd.patch | 13 +++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 pkgs/misc/screensavers/light-locker/systemd.patch diff --git a/pkgs/misc/screensavers/light-locker/default.nix b/pkgs/misc/screensavers/light-locker/default.nix index 80e405d4442f..17b0ef5e7d52 100644 --- a/pkgs/misc/screensavers/light-locker/default.nix +++ b/pkgs/misc/screensavers/light-locker/default.nix @@ -5,6 +5,8 @@ , glib , pkgconfig , libX11 +, libXScrnSaver +, libXxf86misc , gtk3 , dbus_glib , systemd @@ -23,18 +25,32 @@ stdenv.mkDerivation rec { sha256 = "0ygkp5vgkx2nfhfql6j2jsfay394gda23ir3sx4f72j4agsirjvj"; }; - buildInputs = [ which xfce.xfce4_dev_tools glib pkgconfig libX11 gtk3 dbus_glib systemd wrapGAppsHook ]; + # Patch so that systemd is "found" when configuring. + patches = [ ./systemd.patch ]; + + buildInputs = [ which xfce.xfce4_dev_tools glib systemd pkgconfig + libX11 libXScrnSaver libXxf86misc gtk3 dbus_glib wrapGAppsHook ]; preConfigure = '' ./autogen.sh ''; + configureFlags = [ "--with-xf86gamma-ext" "--with-mit-ext" + "--with-dpms-ext" "--with-systemd" + # ConsoleKit and UPower were dropped in favor + # of systemd replacements + "--without-console-kit" "--without-upower" ]; + meta = with stdenv.lib; { homepage = https://github.com/the-cavalry/light-locker; description = "Light-locker is a simple locker"; longDescription = '' - light-locker is a simple locker (forked from gnome-screensaver) that aims to have simple, sane, secure defaults and be well integrated with the desktop while not carrying any desktop-specific dependencies. - It relies on lightdm for locking and unlocking your session via ConsoleKit/UPower or logind/systemd. + light-locker is a simple locker (forked from gnome-screensaver) + that aims to have simple, sane, secure defaults and be well + integrated with the desktop while not carrying any + desktop-specific dependencies. It relies on lightdm for locking + and unlocking your session via ConsoleKit/UPower or + logind/systemd. ''; license = licenses.gpl2; maintainers = with maintainers; [ obadz ]; diff --git a/pkgs/misc/screensavers/light-locker/systemd.patch b/pkgs/misc/screensavers/light-locker/systemd.patch new file mode 100644 index 000000000000..9cba8b9c0d2f --- /dev/null +++ b/pkgs/misc/screensavers/light-locker/systemd.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac.in b/configure.ac.in +index f7d5f5d..341bc83 100644 +--- a/configure.ac.in ++++ b/configure.ac.in +@@ -424,7 +424,7 @@ AC_ARG_WITH(systemd, + [with_systemd=$withval], [with_systemd=auto]) + + PKG_CHECK_MODULES(SYSTEMD, +- [libsystemd-login], ++ [libsystemd], + [have_systemd=yes], [have_systemd=no]) + + if test "x$with_systemd" = "xauto" ; then