summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/lxde.scm42
-rw-r--r--gnu/packages/patches/lxsession-use-gapplication.patch152
3 files changed, 195 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 2466f57dee..34642af45c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -753,6 +753,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/luajit-symlinks.patch			\
   %D%/packages/patches/luit-posix.patch				\
   %D%/packages/patches/lvm2-static-link.patch			\
+  %D%/packages/patches/lxsession-use-gapplication.patch         \
   %D%/packages/patches/make-impure-dirs.patch			\
   %D%/packages/patches/mars-install.patch			\
   %D%/packages/patches/mars-sfml-2.3.patch			\
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 1a3cfab0bd..87f96493cb 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -19,11 +19,14 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages lxde)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
@@ -312,4 +315,43 @@ in LXDE.")
     (home-page "http://lxde.org")
     (license license:gpl2+)))
 
+(define-public lxsession
+  (package
+    (name "lxsession")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://downloads.sourceforge.net/lxde/"
+                           name "-" version ".tar.xz"))
+       (patches (search-patches "lxsession-use-gapplication.patch"))
+       (sha256
+        (base32
+         "1a0zmyywwzdh59nc0l94cir18vhp633z4q2xfhn5zx11ajj45gwh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'rm-stamp
+           (lambda _
+             (for-each delete-file (find-files "." "\\.stamp$"))))
+         (add-after 'rm-stamp 'autoreconf
+           (lambda _
+             (zero? (system* "autoreconf" "-vfi")))))))
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("polkit" ,polkit)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("docbook-xsl" ,docbook-xsl)
+       ("vala" ,vala)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (synopsis "Lightweight X11 session manager")
+    (description
+     "Lxsession provides an lightweight X11 session manager.")
+    (home-page "http://lxde.org")
+    (license license:gpl2+)))
+
 ;;; lxde.scm ends here
diff --git a/gnu/packages/patches/lxsession-use-gapplication.patch b/gnu/packages/patches/lxsession-use-gapplication.patch
new file mode 100644
index 0000000000..3f2269a42f
--- /dev/null
+++ b/gnu/packages/patches/lxsession-use-gapplication.patch
@@ -0,0 +1,152 @@
+Upstream patch to remove libunique dependency, and use glib >= 2.28.0
+to handle unique apps both for GTK+ 2 and 3.
+https://sourceforge.net/p/lxde/patches/539/
+
+
+From a7d3b40a79a7a16c1f5d50d2bd466570258dae29 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Sun, 22 Jan 2017 01:09:59 +0100
+Subject: [PATCH] Use GApplication for unique app handling
+
+Remove libunique dependency, and use glib >= 2.28.0 to handle unique apps both for GTK+ 2 and 3.
+---
+ Makefile.am           |  6 ------
+ configure.ac          |  7 +------
+ lxclipboard/main.vala | 16 +---------------
+ lxpolkit/main.vala    | 16 +---------------
+ 4 files changed, 3 insertions(+), 42 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c2e1fe8..e3a3b97 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -90,9 +90,6 @@ if USE_GTK3
+ lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK3
+ else
+ lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK2
+-lxclipboard_lxclipboard_VALAFLAGS += --pkg unique-1.0
+-lxclipboard_lxclipboard_CPPFLAGS += $(UNIQUE_CFLAGS)
+-lxclipboard_lxclipboard_LDADD += $(UNIQUE_LIBS)
+ endif
+ 
+ lxpolkit_lxpolkit_vala_SOURCES = \
+@@ -137,9 +134,6 @@ if USE_GTK3
+ lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK3
+ else
+ lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK2
+-lxpolkit_lxpolkit_VALAFLAGS += --pkg unique-1.0
+-lxpolkit_lxpolkit_CPPFLAGS += $(UNIQUE_CFLAGS)
+-lxpolkit_lxpolkit_LDADD += $(UNIQUE_LIBS)
+ endif
+ 
+ lxsession_db_lxsession_db_SOURCES = \
+diff --git a/configure.ac b/configure.ac
+index 06ddbb3..9126f4d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -45,7 +45,7 @@ PKG_CHECK_MODULES(X11, [x11])
+ AC_SUBST(X11_CFLAGS)
+ AC_SUBST(X11_LIBS)
+ 
+-PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6.0])
++PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.28.0])
+ AC_SUBST(GLIB_CFLAGS)
+ AC_SUBST(GLIB_LIBS)
+ 
+@@ -79,11 +79,6 @@ else
+     CFLAGS="$CFLAGS -D USE_GTK2"
+     gtk_modules="gtk+-2.0 >= 2.6.0"
+     VALA_GTK_LIBS="gtk+-2.0"
+-
+-    PKG_CHECK_MODULES(UNIQUE, [unique-1.0])
+-    AC_SUBST(UNIQUE_CFLAGS)
+-    AC_SUBST(UNIQUE_LIBS)
+-
+   fi
+   PKG_CHECK_MODULES(GTK, [$gtk_modules])
+   AC_SUBST(GTK_CFLAGS)
+diff --git a/lxclipboard/main.vala b/lxclipboard/main.vala
+index bee4044..3d4a8d7 100644
+--- a/lxclipboard/main.vala
++++ b/lxclipboard/main.vala
+@@ -17,9 +17,6 @@
+  *      MA 02110-1301, USA.
+  */
+ using Gtk;
+-#if USE_GTK2
+-using Unique;
+-#endif
+ 
+ namespace Lxsession
+ {
+@@ -28,17 +25,7 @@ namespace Lxsession
+         public static int main(string[] args)
+         {
+             Gtk.init (ref args);
+-#if USE_GTK2
+-            Unique.App app = new Unique.App("org.lxde.lxclipboard", null);
+-
+-            if(app.is_running)
+-            {
+-                message("lxclipboard is already running. Existing");
+-                return 0;
+-            }
+-#endif
+-# if USE_GTK3
+-            Gtk.Application app = new Gtk.Application (
++            GLib.Application app = new GLib.Application (
+                 "org.lxde.lxclipboard",
+                 GLib.ApplicationFlags.FLAGS_NONE);
+             app.register ();
+@@ -48,7 +35,6 @@ namespace Lxsession
+                 message("lxclipboard is already running. Existing");
+                 return 0;
+             }
+-#endif
+ 
+             clipboard_start ();
+ 
+diff --git a/lxpolkit/main.vala b/lxpolkit/main.vala
+index c0d6ae2..50c3cb7 100644
+--- a/lxpolkit/main.vala
++++ b/lxpolkit/main.vala
+@@ -17,9 +17,6 @@
+  *      MA 02110-1301, USA.
+  */
+ using Gtk;
+-#if USE_GTK2
+-using Unique;
+-#endif
+ 
+ const string GETTEXT_PACKAGE = "lxsession";
+ 
+@@ -33,17 +30,7 @@ namespace Lxsession
+             Intl.bind_textdomain_codeset(GETTEXT_PACKAGE, "utf-8");
+ 
+             Gtk.init (ref args);
+-#if USE_GTK2
+-            Unique.App app = new Unique.App("org.lxde.lxpolkit", null);
+-
+-            if(app.is_running)
+-            {
+-                message(_("lxpolkit is already running. Existing"));
+-                return 0;
+-            }
+-#endif
+-# if USE_GTK3
+-            Gtk.Application app = new Gtk.Application (
++            GLib.Application app = new GLib.Application (
+                 "org.lxde.lxpolkit",
+                 GLib.ApplicationFlags.FLAGS_NONE);
+             app.register ();
+@@ -53,7 +40,6 @@ namespace Lxsession
+                 message(_("lxpolkit is already running. Existing"));
+                 return 0;
+             }
+-#endif
+ 
+             policykit_agent_init();
+ 
+-- 
+2.11.0
+