Subject: [PATCH] gnu: Add xssproxy
From: Ivan Kozlov <[email-masked]>
To: guix-patches <[email-masked]>
Date: Fri, 10 Jul 2020 07:49:54 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

xssproxy is a tiny daemon that provides an Idle Inhibition Service specification conformant D-Bus interface to libXss. It allows programs that support only this interface (like older Firefox and IceCat) to inhibit screen locking or blanking on systems without a conformant screen locker program.

* gnu/packages/xdisorg.scm (xssproxy): New variable.
---
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index cec9bf0799..3e71b07636 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -37,6 +37,7 @@
 ;;; Copyright © 2020 John Soo <[email-masked]>
 ;;; Copyright © 2020 Boris A. Dekshteyn <[email-masked]>
 ;;; Copyright © 2020 Alex McGrath <[email-masked]>
+;;; Copyright © 2020 Ivan Kozlov <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1360,6 +1361,40 @@ demos.  It also acts as a nice screen locker.")
                "http://metadata.ftp-master.debian.org/changelogs/"
                "/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
 
+(define xssproxy
+  (package
+    (name "xssproxy")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/timakro/xssproxy/archive/v"
+                                  version
+                                  ".tar.gz"))
+              (sha256
+               (base32
+                "05pp9f0rx7g8gahqvr7krlfy90mlcb94ig4m5flmrfszwrr9v8k7"))))
+    (build-system gnu-build-system)
+    (arguments `(#:make-flags `("bindir=/bin"
+                                "man1dir=/share/man/man1"
+                                ,(string-append "DESTDIR=" (assoc-ref %outputs "out"))
+                                "CC=gcc")
+                 #:phases (modify-phases %standard-phases
+                            (delete 'configure)
+                            (delete 'check))))
+    (inputs `(("glib" ,glib)
+              ("pkg-config" ,pkg-config)
+              ("libx11" ,libx11)
+              ("libxext" ,libxext)
+              ("libxscrnsaver" ,libxscrnsaver)
+              ("dbus" ,dbus)))
+    (synopsis "Forward freedesktop.org Idle Inhibition Service calls to Xss")
+    (description "xssproxy implements the org.freedesktop.ScreenSaver D-Bus interface
+described in the Idle Inhibition Service Draft by the freedesktop.org developers.
+The inhibition of the screensaver is then controlled using the XScreenSaverSuspend
+function from the Xss (X11 Screen Saver extension) library.")
+    (home-page "https://github.com/timakro/xssproxy")
+    (license license:gpl3+)))
+
 (define-public xsel
   (package
     (name "xsel")