Subject: Re: bug#26248: closed (Re: bug#26248: lxde patches)

From: ng0 <[email-masked]>
Date: Wed, 29 Mar 2017 08:13:51 +0000

GNU bug Tracking System transcribed 31K bytes:
> Your bug report
> 
> #26248: lxde patches
> 
> which was filed against the guix-patches package, has been closed.
> 
> The explanation is attached below, along with your original report.
> If you require more details, please reply to [email-masked].
> 
> -- 
> 26248: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26248
> GNU Bug Tracking System
> Contact [email-masked] with problems

> Date: Tue, 28 Mar 2017 22:15:12 +0200
> From: Ludovic Courtès <[email-masked]>
> To: [email-masked]
> Subject: Re: bug#26248: lxde patches
> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)
> 
> Hi ng0,
> 
> ng0 <[email-masked]> skribis:
> 
> > This adds LXDE.
> 
> \o/
> 
> > One application, possibly[*] lxsession or lxpanel, has a mistake[1], the
> > rest is supposedly functional, builds without obvious mistakes.
> > Some can be used independent from the bigger picture LXDE desktop, like
> > it was designed by LXDE project.
> >
> > I appreciate ideas how or even people taking initiative to fix the mistake
> > in the way for an functional LXDE desktop.
> 
> I don’t know what the mistake might be, but I can tell that everything
> builds fine.  :-)

But that was my point, it *builds* fine but once you try to run lxde as
a desktop (it uses openbox as you can see) even though I can select it
it failed to execute.
 
> I committed the whole series.  One comment:
> 
> > +       (uri (string-append "https://downloads.sourceforge.net/lxde/"
> > +                           name "-" version ".tar.xz"))
> 
> Such URLs actually map to the “regular” SourceForge URLs for which
> mirror://sourceforge can be used.  However the mapping cannot be
> guessed:
> 
> --8<---------------cut here---------------start------------->8---
> $ guix download https://downloads.sourceforge.net/lxde/lxmenu-data-0.1.5.tar.xz
> Starting download of /tmp/guix-file.dxnmks
> From https://downloads.sourceforge.net/lxde/lxmenu-data-0.1.5.tar.xz...
> following redirection to `https://downloads.sourceforge.net/project/lxde/lxmenu-data%20%28desktop%20menu%29/lxmenu-data-0.1.5.tar.xz'...
> 
> [...]
> --8<---------------cut here---------------end--------------->8---
> 
> So we could change all the URLs to
> mirror://sourceforge/lxde/WEIRDNAME/PACKAGE-VERSION.tar.xz for the
> marginal benefit of getting proper mirror support.  If you’re interested
> in it, that’d be welcome.
> 
> Besides, it would be nice to have an ‘lxde-service-type’ for GuixSD if
> you feel like giving it a try!
> 
> Thank you!
> 
> Ludo’.
> 
> PS: Your email client puts:
>       Mail-Followup-To: [email-masked]
>     to your messages to guix-patches, but it shouldn’t since that leads
>     us to replying to [email-masked] instead of [email-masked].
> 

I'll see wether upstream has an open bug or solution about this. Thanks.

> Date: Sat, 25 Mar 2017 00:24:48 +0000
> From: ng0 <[email-masked]>
> To: [email-masked]
> Subject: lxde patches
> 
> This adds LXDE.
> 
> One application, possibly[*] lxsession or lxpanel, has a mistake[1], the
> rest is supposedly functional, builds without obvious mistakes.
> Some can be used independent from the bigger picture LXDE desktop, like
> it was designed by LXDE project.
> 
> I appreciate ideas how or even people taking initiative to fix the mistake
> in the way for an functional LXDE desktop.
> 
> *: possibly, from memory at least 5+ weeks since I've debugged this
> 1: in execution/running, not the build

> From bfd68a76a391610dfdf62caaf975818bc6d665f7 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 15:42:45 +0000
> Subject: [PATCH 1/8] gnu: Add lxmenu-data.
> 
> * gnu/packages/lxde.scm (lxmenu-data): New variable.
> ---
>  gnu/packages/lxde.scm | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
> index e8db6271f..ea150ffc3 100644
> --- a/gnu/packages/lxde.scm
> +++ b/gnu/packages/lxde.scm
> @@ -219,4 +219,27 @@ with freedesktop.org standard.")
>      (home-page "http://lxde.org")
>      (license license:gpl2+)))
>  
> +(define-public lxmenu-data
> +  (package
> +    (name "lxmenu-data")
> +    (version "0.1.5")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://downloads.sourceforge.net/lxde/"
> +                           name "-" version ".tar.xz"))
> +       (sha256
> +        (base32
> +         "1f5sh2dvb3pdnjlcsyzq9543ck2jsqizkx3204cr22zm5s6j3qwz"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("intltool" ,intltool)))
> +    (synopsis "Freedesktop.org desktop menus for LXDE")
> +    (description
> +     "Lxmenu-data provides files required to build freedesktop.org
> +menu spec-compliant desktop menus for LXDE.")
> +    (home-page "http://lxde.org")
> +    (license license:lgpl2.1+)))
> +
>  ;;; lxde.scm ends here
> -- 
> 2.12.1
> 

> From fd5983bde2d9650715023f4bd35c07f46424be31 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 15:53:08 +0000
> Subject: [PATCH 2/8] gnu: Add lxde-icon-theme.
> 
> * gnu/packages/lxde.scm (lxde-icon-theme): New variable.
> ---
>  gnu/packages/lxde.scm | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
> index ea150ffc3..9a4fe7596 100644
> --- a/gnu/packages/lxde.scm
> +++ b/gnu/packages/lxde.scm
> @@ -242,4 +242,25 @@ menu spec-compliant desktop menus for LXDE.")
>      (home-page "http://lxde.org")
>      (license license:lgpl2.1+)))
>  
> +(define-public lxde-icon-theme
> +  (package
> +    (name "lxde-icon-theme")
> +    (version "0.5.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://downloads.sourceforge.net/lxde/"
> +                           name "-" version ".tar.xz"))
> +       (sha256
> +        (base32
> +         "0v4i6x86fr2hbx4fb2si7y2qzmj7h6hcjwaifnin18r8kwwvgl73"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))
> +    (synopsis "LXDE default icon theme based on nuoveXT2")
> +    (description
> +     "Lxde-icon-theme provides an default icon theme for LXDE.")
> +    (home-page "http://lxde.org")
> +    (license license:lgpl3)))
> +
>  ;;; lxde.scm ends here
> -- 
> 2.12.1
> 

> From 6f415357c251f3ce16164e20d4d878420c39d42a Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 15:59:47 +0000
> Subject: [PATCH 3/8] gnu: Add lxde-common.
> 
> * gnu/packages/lxde.scm (lxde-common): New variable.
> ---
>  gnu/packages/lxde.scm | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
> index 9a4fe7596..6862784f4 100644
> --- a/gnu/packages/lxde.scm
> +++ b/gnu/packages/lxde.scm
> @@ -263,4 +263,28 @@ menu spec-compliant desktop menus for LXDE.")
>      (home-page "http://lxde.org")
>      (license license:lgpl3)))
>  
> +(define-public lxde-common
> +  (package
> +    (name "lxde-common")
> +    (version "0.99.2")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://downloads.sourceforge.net/lxde/"
> +                           name "-" version ".tar.xz"))
> +       (sha256
> +        (base32
> +         "0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("intltool" ,intltool)
> +       ("lxmenu-data" ,lxmenu-data)
> +       ("lxde-icon-theme" ,lxde-icon-theme)))
> +    (synopsis "Common files of the LXDE Desktop")
> +    (description
> +     "Lxde-common provides common files of the LXDE Desktop.")
> +    (home-page "http://lxde.org")
> +    (license license:gpl2+)))
> +
>  ;;; lxde.scm ends here
> -- 
> 2.12.1
> 

> From df35b511e790c90a8a64605a6f53283692cd2f75 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 16:10:15 +0000
> Subject: [PATCH 4/8] gnu: Add lxinput.
> 
> * gnu/packages/lxde.scm (lxinput): New variable.
> ---
>  gnu/packages/lxde.scm | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
> index 6862784f4..1a3cfab0b 100644
> --- a/gnu/packages/lxde.scm
> +++ b/gnu/packages/lxde.scm
> @@ -287,4 +287,29 @@ menu spec-compliant desktop menus for LXDE.")
>      (home-page "http://lxde.org")
>      (license license:gpl2+)))
>  
> +(define-public lxinput
> +  (package
> +    (name "lxinput")
> +    (version "0.3.5")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://downloads.sourceforge.net/lxde/"
> +                           name "-" version ".tar.xz"))
> +       (sha256
> +        (base32
> +         "123f3yn4rp1w5b3n5aj3ad9snkxab29qkrs7bcvf5bx4cn57g3sf"))))
> +    (build-system gnu-build-system)
> +    (inputs
> +     `(("gtk+-2" ,gtk+-2)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("intltool" ,intltool)))
> +    (synopsis "Tool for mouse and keyboard configuration in LXDE")
> +    (description
> +     "Lxinput provides a small program to configure keyboard and mouse
> +in LXDE.")
> +    (home-page "http://lxde.org")
> +    (license license:gpl2+)))
> +
>  ;;; lxde.scm ends here
> -- 
> 2.12.1
> 

> From 10053ad57a7f2f89890155fa35959cbc82445f93 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 16:39:12 +0000
> Subject: [PATCH 5/8] gnu: Add lxsession.
> 
> * gnu/packages/lxde.scm (lxsession): New variable.
> * gnu/packages/patches/lxsession-use-gapplication.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> ---
>  gnu/local.mk                                       |   1 +
>  gnu/packages/lxde.scm                              |  42 ++++++
>  .../patches/lxsession-use-gapplication.patch       | 152 +++++++++++++++++++++
>  3 files changed, 195 insertions(+)
>  create mode 100644 gnu/packages/patches/lxsession-use-gapplication.patch
> 
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 0bb2276a2..bca173ad8 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -748,6 +748,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 1a3cfab0b..87f96493c 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 000000000..3f2269a42
> --- /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?= <[email-masked]>
> +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
> +
> -- 
> 2.12.1
> 

> From fa606c4390ab83e09a413a1606b856fa58824470 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 17:02:49 +0000
> Subject: [PATCH 6/8] gnu: Add keybinder.
> 
> * gnu/packages/wm.scm (keybinder): New variable.
> ---
>  gnu/packages/wm.scm | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
> index b95f2e7a6..d758f264a 100644
> --- a/gnu/packages/wm.scm
> +++ b/gnu/packages/wm.scm
> @@ -645,3 +645,32 @@ all of them.  Currently supported window managers include:
>  @end enumerate\n")
>      (home-page "http://menumaker.sourceforge.net/")
>      (license license:bsd-2)))
> +
> +(define-public keybinder
> +  (package
> +    (name "keybinder")
> +    (version "0.3.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://github.com/engla/keybinder/releases/"
> +                           "download/v" version "/keybinder-"
> +                           version ".tar.gz"))
> +       (file-name (string-append name "-" version ".tar.gz"))
> +       (sha256
> +        (base32
> +         "0h52hj3ay8mfhwvmfxbxlfyq74hifdk8wxgxp7fr4iy6189hg7w7"))))
> +    (build-system gnu-build-system)
> +    (inputs
> +     `(("python-2" ,python-2)
> +       ("gtk+-2" ,gtk+-2)))
> +    (native-inputs
> +     `(("python2-pygtk" ,python2-pygtk)
> +       ("gtk-doc" ,gtk-doc)
> +       ("pkg-config" ,pkg-config)))
> +    (synopsis "Library for registering global keyboard shortcuts")
> +    (description
> +     "Keybinder is a library for registering global keyboard shortcuts.
> +Keybinder works with GTK-based applications using the X Window System.")
> +    (home-page "https://github.com/engla/keybinder")
> +    (license license:gpl2+)))
> -- 
> 2.12.1
> 

> From d47af969984c7595d1ffc00ebe855d46e64158b3 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 17:29:29 +0000
> Subject: [PATCH 7/8] gnu: Add lxpanel.
> 
> * gnu/packages/lxde.scm (lxpanel): New variable.
> ---
>  gnu/packages/lxde.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
> index 87f96493c..08fafa237 100644
> --- a/gnu/packages/lxde.scm
> +++ b/gnu/packages/lxde.scm
> @@ -22,11 +22,15 @@
>    #:use-module (gnu packages)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages docbook)
> +  #:use-module (gnu packages gettext)
>    #:use-module (gnu packages glib)
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages gtk)
> +  #:use-module (gnu packages linux)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages polkit)
> +  #:use-module (gnu packages wm)
> +  #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix download)
> @@ -354,4 +358,55 @@ in LXDE.")
>      (home-page "http://lxde.org")
>      (license license:gpl2+)))
>  
> +(define-public lxpanel
> +  (package
> +    (name "lxpanel")
> +    (version "0.9.3")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://downloads.sourceforge.net/lxde/"
> +                           name "-" version ".tar.xz"))
> +       (sha256
> +        (base32
> +         "1ccgv7jgl3y865cpb6w7baaz7468fxncm83bqxlwyni5bwhglb1l"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-after 'install 'wrap
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let ((out (assoc-ref outputs "out"))
> +                   (menu (assoc-ref inputs "lxmenu-data")))
> +               (wrap-program (string-append out "/bin/lxpanel")
> +                 `("XDG_DATA_DIRS" ":" prefix
> +                   (,(string-append menu "/share"))))
> +               #t))))))
> +    (inputs
> +     ;; TODO: libindicator-0.3.0
> +     `(("gtk+-2" ,gtk+-2)
> +       ("alsa-lib" ,alsa-lib)
> +       ("libwnck-2" ,libwnck-2)
> +       ("keybinder" ,keybinder)
> +       ("libxmu" ,libxmu)
> +       ("libxpm" ,libxpm)
> +       ("libxml2" ,libxml2)
> +       ("cairo" ,cairo)
> +       ("libx11" ,libx11)
> +       ("wireless-tools" ,wireless-tools)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("intltool" ,intltool)
> +       ("docbook-xml" ,docbook-xml)
> +       ("gettext-minimal" ,gettext-minimal)))
> +    (propagated-inputs
> +     `(("lxmenu-data" ,lxmenu-data)
> +       ("libfm" ,libfm)
> +       ("menu-cache" ,menu-cache)))
> +    (synopsis "X11 Desktop panel for LXDE")
> +    (description
> +     "Lxpanel provides an X11 desktop panel for LXDE.")
> +    (home-page "http://lxde.org")
> +    (license license:gpl2+)))
> +
>  ;;; lxde.scm ends here
> -- 
> 2.12.1
> 

> From 8c78f8439ef3baafc4ca1b09f937eb7c7c2f3fb3 Mon Sep 17 00:00:00 2001
> From: ng0 <[email-masked]>
> Date: Mon, 23 Jan 2017 17:44:50 +0000
> Subject: [PATCH 8/8] gnu: Add lxde.
> 
> * gnu/packages/lxde.scm (lxde): New variable.
> ---
>  gnu/packages/lxde.scm | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
> 
> diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
> index 08fafa237..084426371 100644
> --- a/gnu/packages/lxde.scm
> +++ b/gnu/packages/lxde.scm
> @@ -27,12 +27,14 @@
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages gtk)
>    #:use-module (gnu packages linux)
> +  #:use-module (gnu packages openbox)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages polkit)
>    #:use-module (gnu packages wm)
>    #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
>    #:use-module (guix build-system gnu)
> +  #:use-module (guix build-system trivial)
>    #:use-module (guix download)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
> @@ -409,4 +411,41 @@ in LXDE.")
>      (home-page "http://lxde.org")
>      (license license:gpl2+)))
>  
> +(define-public lxde
> +  (package
> +    (name "lxde")
> +    (version (package-version lxde-common))
> +    (source #f)
> +    (build-system trivial-build-system)
> +    (arguments '(#:builder (mkdir %output)))
> +    (propagated-inputs
> +     ;; TODO:
> +     ;; lxshortcut, lxsession-edit, gpicview, leafpad,
> +     ;; lxappearance-obconf
> +     `(("menu-cache" ,menu-cache)
> +       ("lxappearance" ,lxappearance)
> +       ("lxde-icon-theme" ,lxde-icon-theme)
> +       ("lxde-common" ,lxde-common)
> +       ("lxmenu-data" ,lxmenu-data)
> +       ("lxpanel" ,lxpanel)
> +       ("lxrandr" ,lxrandr)
> +       ("lxsession" ,lxsession)
> +       ("libfm" ,libfm)
> +       ("libfm-extra" ,libfm-extra)
> +       ("lxtask" ,lxtask)
> +       ("lxterminal" ,lxterminal)
> +       ("pcmanfm" ,pcmanfm)
> +       ("openbox" ,openbox)
> +       ("obconf" ,obconf)))
> +    (synopsis "Lightweight X11 Desktop Environment")
> +    (description
> +     "LXDE, which stands for Lightweight X11 Desktop Environment, is a
> +desktop environment which is lightweight and fast.  It is designed to be
> +user friendly and slim, while keeping the resource usage low.  LXDE uses
> +less RAM and less CPU while being a feature rich desktop environment.  Unlike
> +other tightly integrated desktops LXDE strives to be modular, so each
> +component can be used independently with few dependencies.")
> +    (home-page "https://lxde.org")
> +    (license license:gpl2+))) ; And others.
> +
>  ;;; lxde.scm ends here
> -- 
> 2.12.1
>