Subject: [bug#28733] Mate Desktop

From: ng0 <[email-masked]>
Date: Sat, 7 Oct 2017 16:21:34 +0000

The appended patch series appended for review adds
an almost feature-complete Mate Desktop, including
a mate-desktop-service.

There are persistent problems with mate-screensaver,
if you use the locking function you will be locked
out and can't log back in. I'm happy for any help
with this, I think it's a worthy addition to have.
I had some elogind specific changes in the package
but it didn't help, even when the right binary in
libexec was setuid'ed.

I've been using these patches since the first Mate
patches were merged into our master.
The only change I didn't test was the removal of
the screensaver from the desktop service, but it
should just work (updates are building here right
now).

I should probably add the two links to upstream
wishlist-bugs that I filed.
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://krosos.org/dist/keys/
https://www.infotropique.org https://krosos.org
From 643759c30c2699605d2ae50226507078f17f4e71 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Thu, 14 Sep 2017 17:30:40 +0000
Subject: [PATCH 01/21] gnu: mate.scm: Order imported modules alphabetically.

* gnu/packages/mate.scm: Order imported modules alphabetically.
---
 gnu/packages/mate.scm | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 91489ba91..ea4c8aecc 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -27,28 +27,28 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages fonts)
-  #:use-module (gnu packages libcanberra)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages docbook)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages documentation)
-  #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages xml)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
 
 (define-public mate-icon-theme
   (package
-- 
2.14.2

From 6888a2d36cc962bcd7799499306be402559dfa81 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 09:55:16 +0000
Subject: [PATCH 02/21] gnu: Add mate-user-guide.

* gnu/packages/mate.scm (mate-user-guide): New variable.
---
 gnu/packages/mate.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index ea4c8aecc..eeb5eb161 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -754,6 +754,46 @@ some users; these users may want to investigate other available window managers
 for use with MATE or as a standalone window manager.")
     (license license:gpl2+)))
 
+(define-public mate-user-guide
+  (package
+    (name "mate-user-guide")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0f3b46r9a3cywm7rpj08xlkfnlfr9db58xfcpix8i33qp50fxqmb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-desktop-file
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((yelp (assoc-ref inputs "yelp")))
+               (substitute* "mate-user-guide.desktop.in.in"
+                 (("yelp")
+                  (string-append yelp "/bin/yelp"))))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("gettext" ,gettext-minimal)
+       ("yelp-tools" ,yelp-tools)
+       ("yelp-xsl" ,yelp-xsl)))
+    (inputs
+     `(("yelp" ,yelp)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "User Documentation for Mate software")
+    (description
+     "MATE User Guide is a collection of documentation which details
+general use of the MATE Desktop environment.  Topics covered include
+sessions, panels, menus, file management, and preferences.")
+    (license (list license:fdl1.1+ license:gpl2+))))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 0461a8b00eb2bc1a59949e269ef9c2194b979b27 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 30 Sep 2017 21:44:52 +0000
Subject: [PATCH 03/21] gnu: mate-session-manager: Configure with with elogind
 support.

* gnu/packages/mate.scm (mate-session-manager)[arguments]: Add '--enable-elogind'
to configure-flags.
(phases): Add 'pre-configure' phase.
---
 gnu/packages/mate.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index eeb5eb161..409ca570f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -235,6 +235,29 @@ configurations (profiles).")
         (base32
          "0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list "--enable-elogind"
+                               "--disable-schemas-compile")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'pre-configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Use elogind instead of systemd.
+             (substitute* "configure"
+               (("libsystemd-login")
+                "libelogind")
+               (("systemd") "elogind"))
+             (substitute* "mate-session/gsm-systemd.c"
+               (("#include <systemd/sd-login.h>")
+                "#include <elogind/sd-login.h>"))
+             ;; Remove uses of the systemd journal.
+             (substitute* "mate-session/main.c"
+               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             (substitute* "mate-session/gsm-manager.c"
+               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             (substitute* "mate-session/gsm-autostart-app.c"
+               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
@@ -243,6 +266,7 @@ configurations (profiles).")
     (inputs
      `(("gtk+" ,gtk+)
        ("dbus-glib" ,dbus-glib)
+       ("elogind" ,elogind)
        ("libsm" ,libsm)
        ("mate-desktop" ,mate-desktop)))
     (home-page "https://mate-desktop.org/")
-- 
2.14.2

From 1f6589fdab13e7c72da09c08032d4ca8a3090ffc Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Fri, 15 Sep 2017 12:05:08 +0000
Subject: [PATCH 04/21] gnu: Add caja-extensions.

* gnu/packages/mate.scm (caja-extensions): New variable.
---
 gnu/packages/mate.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 409ca570f..1199b405a 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -27,6 +27,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages attr)
   #:use-module (gnu packages base)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -39,8 +40,10 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages messaging)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages polkit)
@@ -662,6 +665,61 @@ icons on the MATE desktop.  It works on local and remote filesystems.")
     ;; for us.
     (license license:gpl2+)))
 
+(define-public caja-extensions
+  (package
+    (name "caja-extensions")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0hgala7zkfsa60jflq3s4n9yd11dhfdcla40l83cmgc3r1az7cmw"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list "--enable-sendto"
+                               ;; TODO: package "gupnp" to enable 'upnp', package
+                               ;; "gksu" to enable 'gksu'.
+                               (string-append "--with-sendto-plugins=removable-devices,"
+                                              "caja-burn,emailclient,pidgin,gajim")
+                               "--enable-image-converter"
+                               "--enable-open-terminal" "--enable-share"
+                               "--enable-wallpaper" "--enable-xattr-tags"
+                               (string-append "--with-cajadir="
+                                              (assoc-ref %outputs "out")
+                                              "/lib/caja/extensions-2.0/"))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("attr" ,attr)
+       ("brasero" ,brasero)
+       ("caja" ,caja)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("gajim" ,gajim) ;runtime only?
+       ("gtk+" ,gtk+)
+       ("imagemagick" ,imagemagick)
+       ("graphicsmagick" ,graphicsmagick)
+       ("mate-desktop" ,mate-desktop)
+       ("pidgin" ,pidgin) ;runtime only?
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Extensions for the File manager Caja")
+    (description
+     "Caja is the official file manager for the MATE desktop.
+It allows for browsing directories, as well as previewing files and launching
+applications associated with them.  Caja is also responsible for handling the
+icons on the MATE desktop.  It works on local and remote filesystems.")
+    (license license:gpl2+)))
+
 (define-public mate-control-center
   (package
     (name "mate-control-center")
-- 
2.14.2

From bbc1a9ab4377c41ff519468bb03b2f80f2a43e9f Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Fri, 15 Sep 2017 12:07:21 +0000
Subject: [PATCH 05/21] gnu: caja: Add native-search-paths.

* gnu/packages/mate.scm (caja)[native-search-paths]: Add it.
---
 gnu/packages/mate.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 1199b405a..274fe17e4 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -653,6 +653,10 @@ infamous 'Wanda the Fish'.")
        ("libxml2" ,libxml2)
        ("mate-desktop" ,mate-desktop)
        ("startup-notification" ,startup-notification)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "CAJA_EXTENSIONDIR")
+            (files (list "lib/caja/extensions-2.0/**")))))
     (home-page "https://mate-desktop.org/")
     (synopsis "File manager for the MATE desktop")
     (description
-- 
2.14.2

From 8d2b3c6241b8dd1b83da4e8678f15a154c1d8b7f Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Thu, 14 Sep 2017 19:28:15 +0000
Subject: [PATCH 06/21] gnu: Add atril.

* gnu/packages/mate.scm (atril): New variable.
---
 gnu/packages/mate.scm | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 115 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 274fe17e4..f25eb8dd9 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,27 +28,37 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages djvu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages messaging)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tex)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
@@ -610,6 +620,111 @@ the Window List, the Window Selector, the Notification Area, the Clock and the
 infamous 'Wanda the Fish'.")
     (license (list license:gpl2+ license:lgpl2.0+))))
 
+(define-public atril
+  (package
+    (name "atril")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1wl332v80c0nzz7nw36d1pfmbiibvl3l0i4d25ihg6mg9wbc0145"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list (string-append "--with-openjpeg="
+                                              (assoc-ref %build-inputs "openjpeg"))
+                               "--enable-introspection"
+                               "--with-gtk=3.0"
+                               "--disable-schemas-compile"
+                               ;; FIXME: Enable build of Caja extensions.
+                               "--disable-caja")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-mathjax-path
+           (lambda _
+             (let* ((mathjax (assoc-ref %build-inputs "js-mathjax"))
+                    (mathjax-path (string-append mathjax
+                                                 "/share/javascript/mathjax")))
+               (substitute* "backend/epub/epub-document.c"
+                 (("/usr/share/javascript/mathjax")
+                  mathjax-path)))
+             #t))
+         (add-after 'unpack 'fix-introspection-install-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* '("configure")
+                 (("\\$\\(\\$PKG_CONFIG --variable=girdir gobject-introspection-1.0\\)")
+                  (string-append "\"" out "/share/gir-1.0/\""))
+                 (("\\$\\(\\$PKG_CONFIG --variable=typelibdir gobject-introspection-1.0\\)")
+                  (string-append out "/lib/girepository-1.0/")))
+               #t)))
+         (add-before 'install 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "data/Makefile"
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("yelp-tools" ,yelp-tools)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("xmllint" ,libxml2)
+       ("zlib" ,zlib)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("caja" ,caja)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("djvulibre" ,djvulibre)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("ghostscript" ,ghostscript)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("js-mathjax" ,js-mathjax)
+       ("libcanberra" ,libcanberra)
+       ("libsecret" ,libsecret)
+       ("libspectre" ,libspectre)
+       ("libtiff" ,libtiff)
+       ("libx11" ,libx11)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("libgxps" ,libgxps)
+       ("libjpeg" ,libjpeg)
+       ("libxml2" ,libxml2)
+       ("dogtail" ,python2-dogtail)
+       ("shared-mime-info" ,shared-mime-info)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libgnome-keyring" ,libgnome-keyring)
+       ("libarchive" ,libarchive)
+       ("marco" ,marco)
+       ("nettle" ,nettle)
+       ("openjpeg" ,openjpeg-1)
+       ("pango" ,pango)
+       ;;("texlive" ,texlive)
+       ;; TODO:
+       ;;   Build libkpathsea as a shared library for DVI support.
+       ;; ("libkpathsea" ,texlive-bin)
+       ("poppler" ,poppler)
+       ("webkitgtk" ,webkitgtk)))
+    (home-page "https://mate-desktop.org")
+    (synopsis "Document viewer for Mate")
+    (description
+     "Document viewer for Mate")
+    (license license:gpl2)))
+
 (define-public caja
   (package
     (name "caja")
-- 
2.14.2

From 178f5ca698e76a0565e303db54820d1713b69a54 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:05:02 +0000
Subject: [PATCH 07/21] gnu: Add mate-calc.

* gnu/packages/mate.scm (mate-calc): New variable.
---
 gnu/packages/mate.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index f25eb8dd9..484fd373d 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -995,6 +995,38 @@ general use of the MATE Desktop environment.  Topics covered include
 sessions, panels, menus, file management, and preferences.")
     (license (list license:fdl1.1+ license:gpl2+))))
 
+(define-public mate-calc
+  (package
+    (name "mate-calc")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0qfs6kx2nymbn6j3mnzgvk8p54ghc78jslsf4wjqsdq021qyl0ly"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)
+       ("libcanberra" ,libcanberra)
+       ("pango" ,pango)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Calculator for MATE")
+    (description
+     "Mate Calc is the GTK+ calculator application for the MATE Desktop.")
+    (license license:gpl2+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From ba1a136818cc954107ea9551d51b2114d765874c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:13:27 +0000
Subject: [PATCH 08/21] gnu: Add mate-backgrounds.

* gnu/packages/mate.scm (mate-backgrounds): New variable.
---
 gnu/packages/mate.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 484fd373d..3c65c8614 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1027,6 +1027,29 @@ sessions, panels, menus, file management, and preferences.")
      "Mate Calc is the GTK+ calculator application for the MATE Desktop.")
     (license license:gpl2+)))
 
+(define-public mate-backgrounds
+  (package
+    (name "mate-backgrounds")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "06q8ksjisijps2wn959arywsimhzd3j35mqkr048c26ck24d60zi"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Calculator for MATE")
+    (description
+     "MATE backgrounds package contains a collection of graphics files which
+can be used as backgrounds in the MATE Desktop environment.")
+    (license license:gpl2+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 121f284fcdabca9d1bdd1a1bed69d9b4528288a8 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:36:30 +0000
Subject: [PATCH 09/21] gnu: Add mate-common.

* gnu/packages/mate.scm (mate-common): New variable.
---
 gnu/packages/mate.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 3c65c8614..55b072b19 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -63,6 +63,27 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public mate-common
+  (package
+    (name "mate-common")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1005laf3z1h8qczm7pmwr40r842665cv6ykhjg7r93vldra48z6p"))))
+    (build-system gnu-build-system)
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Common files for development of MATE packages")
+    (description
+     "Mate Common includes common files and macros used by
+MATE applications.")
+    (license license:gpl3+)))
+
 (define-public mate-icon-theme
   (package
     (name "mate-icon-theme")
-- 
2.14.2

From e6880df5c4f2c3a966d510f2d2ded988d91b898d Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:55:03 +0000
Subject: [PATCH 10/21] gnu: Add mate-icon-theme-faenza.

* gnu/packages/mate.scm (mate-icon-theme-faenza): New variable.
---
 gnu/packages/mate.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 55b072b19..de0102b9b 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,6 +28,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
@@ -107,6 +108,44 @@ MATE applications.")
      "This package contains the default icon theme used by the MATE desktop.")
     (license license:lgpl3+)))
 
+(define-public mate-icon-theme-faenza
+  (package
+    (name "mate-icon-theme-faenza")
+    (version "1.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://pub.mate-desktop.org/releases/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0vc3wg9l5yrxm0xmligz4lw2g3nqj1dz8fwv90xvym8pbjds2849"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autoconf
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (zero? (system* "sh" "autogen.sh")))))))
+    (native-inputs
+     `(("autoconf" ,(autoconf-wrapper))
+       ("automake" ,automake)
+       ("intltool" ,intltool)
+       ("icon-naming-utils" ,icon-naming-utils)
+       ("libtool" ,libtool)
+       ("mate-common" ,mate-common)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "MATE desktop environment icon theme faenza")
+    (description
+     "Icon theme using Faenza and Faience icon themes and some
+customized icons for MATE.  Furthermore it includes some icons
+from Mint-X-F and Faenza-Fresh icon packs.")
+    (license license:gpl2+)))
+
 (define-public mate-themes
   (package
     (name "mate-themes")
-- 
2.14.2

From 0ac4d151c507ecd4e9879a4774c40ad37a70b459 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 12:45:07 +0000
Subject: [PATCH 11/21] gnu: Add libfakekey.

* gnu/packages/xdisorg.scm (libfakekey): New variable.
---
 gnu/packages/xdisorg.scm | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7ca4986a0..b62bafb62 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2016, 2017 Marius Bakke <[email-masked]>
 ;;; Copyright © 2016 Petter <[email-masked]>
 ;;; Copyright © 2017 Mekeor Melire <[email-masked]>
-;;; Copyright © 2017 ng0 <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -187,6 +187,33 @@ X11 (yet).")
     (license (license:x11-style "file://COPYING"
                                 "See 'COPYING' in the distribution."))))
 
+(define-public libfakekey
+  (package
+    (name "libfakekey")
+    (version "0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://downloads.yoctoproject.org/releases"
+                            "/matchbox/libfakekey/" version "/libfakekey-"
+                            version ".tar.bz2"))
+        (sha256
+         (base32
+          "1501l0bflcrhqbf12n7a7cqilvr0w4xawxw0vw75p2940nkl4464"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "AM_LDFLAGS=-lX11")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libxtst" ,libxtst)
+       ("libx11" ,libx11)))
+    (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
+    (synopsis "X virtual keyboard library")
+    (description
+     "Libfakekey is a virtual keyboard library for X.")
+    (license license:gpl2)))
+
 (define-public xdotool
   (package
     (name "xdotool")
-- 
2.14.2

From 00b1760c77404917ce4b60b48dd7f17ea6497819 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 12:47:56 +0000
Subject: [PATCH 12/21] gnu: Add mate-netbook.

* gnu/packages/mate.scm (mate-netbook): New variable.
---
 gnu/packages/mate.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index de0102b9b..0cb24fd5f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public mate-common
@@ -1110,6 +1111,48 @@ sessions, panels, menus, file management, and preferences.")
 can be used as backgrounds in the MATE Desktop environment.")
     (license license:gpl2+)))
 
+(define-public mate-netbook
+  (package
+    (name "mate-netbook")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0zj4x9qis8dw0irxzb4va1189k8bqbvymxq3h7phnjwvr1m983gf"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libfakekey" ,libfakekey)
+       ("libwnck" ,libwnck)
+       ("libxtst" ,libxtst)
+       ("libx11" ,libx11)
+       ("mate-panel" ,mate-panel)
+       ("xproto" ,xproto)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Tool for MATE on Netbooks")
+    (description
+     "Mate Netbook is a simple window management tool which:
+
+@enumerate
+@item Allows you to set basic rules for a window type, such as maximise|undecorate
+@item Allows exceptions to the rules, based on string matching for window name
+and window class.
+@item Allows 'reversing' of rules when the user manually changes something:
+Re-decorates windows on un-maximise.
+@end enumerate\n")
+    (license license:gpl3+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 6304b6225bb51ee3de07244fc514a316a4a1d8bb Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 14:48:17 +0000
Subject: [PATCH 13/21] gnu: Add mate-screensaver.

* gnu/packages/mate.scm (mate-screensaver): New variable.
---
 gnu/packages/mate.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 0cb24fd5f..e413ee33e 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1153,6 +1153,83 @@ Re-decorates windows on un-maximise.
 @end enumerate\n")
     (license license:gpl3+)))
 
+(define-public mate-screensaver
+  (package
+    (name "mate-screensaver")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0dfi10faf1fnvrm7c7wnfqg35ygq09ws1vjyv8394jlf0nn39g9j"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       ;; FIXME: There is a permissions problem with screen locking
+       ;; which effectively locks you out completely. Enable locking
+       ;; once this has been fixed.
+       (list "--enable-locking" "--with-kbd-layout-indicator"
+             "--with-xf86gamma-ext" "--enable-pam"
+             "--disable-schemas-compile" "--without-console-kit")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autoconf
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dbus-dir (string-append out "/share/dbus-1/services")))
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (substitute* "configure"
+               (("dbus-1") ""))))))))
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,(autoconf-wrapper))
+       ("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("kbproto" ,kbproto)
+       ("mate-common" ,mate-common)
+       ("pkg-config" ,pkg-config)
+       ("randrproto" ,randrproto)
+       ("renderproto" ,renderproto)
+       ("scrnsaverproto" ,scrnsaverproto)
+       ("which" ,which)
+       ("xextpro" ,xextproto)
+       ("xproto" ,xproto)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("libcanberra" ,libcanberra)
+       ("libglade" ,libglade)
+       ("libmatekbd" ,libmatekbd)
+       ("libnotify" ,libnotify)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxklavier" ,libxklavier)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxxf86vm" ,libxxf86vm)
+       ("linux-pam" ,linux-pam)
+       ("mate-desktop" ,mate-desktop)
+       ("mate-menus" ,mate-menus)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Screensaver for MATE")
+    (description
+     "MATE backgrounds package contains a collection of graphics files which
+can be used as backgrounds in the MATE Desktop environment.")
+    (license license:gpl2+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 31dfcc094e01a8c77b9f74635801fba27458cc91 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 16:58:06 +0000
Subject: [PATCH 14/21] gnu: Add mate-utils.

* gnu/packages/mate.scm (mate-utils): New variable.
---
 gnu/packages/mate.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index e413ee33e..23e326d83 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1230,6 +1230,60 @@ Re-decorates windows on un-maximise.
 can be used as backgrounds in the MATE Desktop environment.")
     (license license:gpl2+)))
 
+(define-public mate-utils
+  (package
+    (name "mate-utils")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0wr395dqfigj19ps0d76ycgwfljl9xxgs1a1g5wx6kcz5mvhzn5v"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("pkg-config" ,pkg-config)
+       ("scrollkeeper" ,scrollkeeper)
+       ("xextpro" ,xextproto)
+       ("xproto" ,xproto)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("libcanberra" ,libcanberra)
+       ("libgtop" ,libgtop)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("mate-panel" ,mate-panel)
+       ("pango" ,pango)
+       ("zlib" ,zlib)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Utilities for the MATE Desktop")
+    (description
+     "Mate Utilities for the MATE Desktop containing:
+
+@enumerate
+@item mate-system-log
+@item mate-search-tool
+@item mate-dictionary
+@item mate-screenshot
+@item mate-disk-usage-analyzer
+@end enumerate\n")
+    (license (list license:gpl2
+                   license:fdl1.1+
+                   license:lgpl2.1))))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 2002d2d8c0f378241564f0bc7047c8f78b404992 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 19:10:22 +0000
Subject: [PATCH 15/21] gnu: Add eom.

* gnu/packages/mate.scm (eom): New variable.
---
 gnu/packages/mate.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 23e326d83..082c5a0d5 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1284,6 +1284,57 @@ can be used as backgrounds in the MATE Desktop environment.")
                    license:fdl1.1+
                    license:lgpl2.1))))
 
+(define-public eom
+  (package
+    (name "eom")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "00ns7g7qykakc89lijrw2vwy9x9ijqiyvmnd4sw0j6py90zs8m87"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("exempi" ,exempi)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("libcanberra" ,libcanberra)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libpeas" ,libpeas)
+       ("libxml2" ,libxml2)
+       ("libexif" ,libexif)
+       ("libjpeg" ,libjpeg)
+       ("librsvg" ,librsvg)
+       ("lcms" ,lcms)
+       ("mate-desktop" ,mate-desktop)
+       ("pango" ,pango)
+       ("shared-mime-info" ,shared-mime-info)
+       ("startup-notification" ,startup-notification)
+       ("zlib" ,zlib)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Eye of MATE")
+    (description
+     "Eye of MATE is the Image viewer for the MATE Desktop.")
+    (license (list license:gpl2))))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 5c7c3f08212c6816f3ef9575147f35fd424ed825 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:03:14 +0000
Subject: [PATCH 16/21] gnu: Add engrampa.

* gnu/packages/mate.scm (engrampa): New variable.
---
 gnu/packages/mate.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 082c5a0d5..77ffe414f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -1335,6 +1336,60 @@ can be used as backgrounds in the MATE Desktop environment.")
      "Eye of MATE is the Image viewer for the MATE Desktop.")
     (license (list license:gpl2))))
 
+(define-public engrampa
+  (package
+    (name "engrampa")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0d98zhqqc7qdnxcf0195kd04xmhijc0w2qrn6q61zd0daiswnv98"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list "--disable-schemas-compile"
+                               "--disable-run-in-place"
+                               "--enable-magic"
+                               "--enable-packagekit"
+                               (string-append "--with-cajadir="
+                                              (assoc-ref %outputs "out")
+                                              "/lib/caja/extensions-2.0/"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "data/Makefile"
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("caja" ,caja)
+       ("file" ,file)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("json-glib" ,json-glib)
+       ("libcanberra" ,libcanberra)
+       ("libx11" ,libx11)
+       ("libsm" ,libsm)
+       ("packagekit" ,packagekit)
+       ("pango" ,pango)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Archive Manager for MATE")
+    (description
+     "Engrampa is the archive manager for the MATE Desktop.")
+    (license license:gpl2)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 1f64bb45a0a5e57e03f1439774ff28cceef14d6c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:27:04 +0000
Subject: [PATCH 17/21] gnu: Add pluma.

* gnu/packages/mate.scm (pluma): New variable.
---
 gnu/packages/mate.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 77ffe414f..5d4f51c91 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages enchant)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
@@ -48,6 +49,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
@@ -1390,6 +1392,57 @@ can be used as backgrounds in the MATE Desktop environment.")
      "Engrampa is the archive manager for the MATE Desktop.")
     (license license:gpl2)))
 
+(define-public pluma
+  (package
+    (name "pluma")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1z0938yiygxipj2a77n9dv8v4253snrc5gbbnarcnim9xba2j3zz"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(; Tests can not succeed.
+       ;; https://github.com/mate-desktop/mate-text-editor/issues/33
+       #:tests? #f))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("enchant" ,enchant)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("iso-codes" ,iso-codes)
+       ("libcanberra" ,libcanberra)
+       ("libx11" ,libx11)
+       ("libsm" ,libsm)
+       ("libpeas" ,libpeas)
+       ("libxml2" ,libxml2)
+       ("libice" ,libice)
+       ("packagekit" ,packagekit)
+       ("pango" ,pango)
+       ("python-2" ,python-2)
+       ("scrollkeeper" ,scrollkeeper)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Text Editor for MATE")
+    (description
+     "Pluma is the text editor for the MATE Desktop.")
+    (license license:gpl2)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 589dbe17fbf30e3e095ac1a58beb272baed6c928 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:41:00 +0000
Subject: [PATCH 18/21] gnu: Add mate-system-monitor.

* gnu/packages/mate.scm (mate-system-monitor): New variable.
---
 gnu/packages/mate.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 5d4f51c91..e21b76351 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1443,6 +1443,47 @@ can be used as backgrounds in the MATE Desktop environment.")
      "Pluma is the text editor for the MATE Desktop.")
     (license license:gpl2)))
 
+(define-public mate-system-monitor
+  (package
+    (name "mate-system-monitor")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1wcvrl4lfnjkhywb311p29prf1qiab6iynb6q1fgfsl6za8hsz48"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("glibmm" ,glibmm)
+       ("gtkmm" ,gtkmm)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libsigc++" ,libsigc++)
+       ("libcanberra" ,libcanberra)
+       ("libxml2" ,libxml2)
+       ("libwnck" ,libwnck)
+       ("libgtop" ,libgtop)
+       ("librsvg" ,librsvg)
+       ("polkit" ,polkit)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "System Monitor for MATE")
+    (description
+     "Mate System Monitor provides a tool for for the
+MATE Desktop to monitor your system resources and usage.")
+    (license license:gpl2)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From a1155209568168170c635471779e0fc2410be5b4 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:53:10 +0000
Subject: [PATCH 19/21] gnu: Add mate-polkit.

* gnu/packages/mate.scm (mate-polkit): New variable.
---
 gnu/packages/mate.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index e21b76351..36b2d3f05 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1484,6 +1484,40 @@ can be used as backgrounds in the MATE Desktop environment.")
 MATE Desktop to monitor your system resources and usage.")
     (license license:gpl2)))
 
+(define-public mate-polkit
+  (package
+    (name "mate-polkit")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "15vf2hnyjg8zsw3iiwjwi497yygkmvpnn6w1hik7dfw4a621w0gc"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("accountsservice" ,accountsservice)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("polkit" ,polkit)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "DBus specific service for MATE")
+    (description
+     "MATE Polkit is a MATE specific DBUS service that is
+used to bring up authentication dialogs.")
+    (license license:lgpl2.1)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 9d3119d8824a72503f886884037f3cb7f58bb941 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 15:08:37 +0000
Subject: [PATCH 20/21] gnu: mate: Add more packages.

* gnu/packages/mate.scm (mate)[inputs]: Add "mate-user-guide", "mate-calc", "mate-backgrounds",
"mate-netbook", "hicolor-icon-theme", "mate-utils", "engrampa", "eom", "mate-polkit",
"mate-system-monitor", "mate-utils", "pluma", "atril".
---
 gnu/packages/mate.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 36b2d3f05..fde8459f8 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1537,14 +1537,18 @@ used to bring up authentication dialogs.")
     (inputs
      ;; TODO: Add more packages
      `(("at-spi2-core"              ,at-spi2-core)
+       ("atril"                     ,atril)
        ("caja"                      ,caja)
        ("dbus"                      ,dbus)
        ("dconf"                     ,dconf)
        ("desktop-file-utils"        ,desktop-file-utils)
+       ("engrampa"                  ,engrampa)
+       ("eom"                       ,eom)
        ("font-cantarell"            ,font-cantarell)
        ("glib-networking"           ,glib-networking)
        ("gnome-keyring"             ,gnome-keyring)
        ("gvfs"                      ,gvfs)
+       ("hicolor-icon-theme"        ,hicolor-icon-theme)
        ("libmatekbd"                ,libmatekbd)
        ("libmateweather"            ,libmateweather)
        ("libmatemixer"              ,libmatemixer)
@@ -1560,6 +1564,15 @@ used to bring up authentication dialogs.")
        ("mate-control-center"       ,mate-control-center)
        ("mate-media"                ,mate-media)
        ("mate-applets"              ,mate-applets)
+       ("mate-user-guide"           ,mate-user-guide)
+       ("mate-calc"                 ,mate-calc)
+       ("mate-backgrounds"          ,mate-backgrounds)
+       ("mate-netbook"              ,mate-netbook)
+       ("mate-utils"                ,mate-utils)
+       ("mate-polkit"               ,mate-polkit)
+       ("mate-system-monitor"       ,mate-system-monitor)
+       ("mate-utils"                ,mate-utils)
+       ("pluma"                     ,pluma)
        ("pinentry-gnome3"           ,pinentry-gnome3)
        ("pulseaudio"                ,pulseaudio)
        ("shared-mime-info"          ,shared-mime-info)
-- 
2.14.2

From 620e32643468da6318dde6491b0a2ff74608d435 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Fri, 29 Sep 2017 10:06:51 +0000
Subject: [PATCH 21/21] gnu: services: Add MATE desktop service.

* gnu/services/desktop.scm (<mate-desktop-configuration>,
mate-desktop-service-type): New variable.
(mate-desktop-service): New public variable.

* doc/guix.texi (Desktop Services): Document the service.
---
 doc/guix.texi            | 26 +++++++++++++++++++-------
 gnu/services/desktop.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 64 insertions(+), 7 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index c10fc649d..56187d1bc 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -26,7 +26,7 @@ Copyright @copyright{} 2016 Ben Woodcroft@*
 Copyright @copyright{} 2016 Chris Marusich@*
 Copyright @copyright{} 2016, 2017 Efraim Flashner@*
 Copyright @copyright{} 2016 John Darrington@*
-Copyright @copyright{} 2016 ng0@*
+Copyright @copyright{} 2016, 2017 ng0@*
 Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@*
 Copyright @copyright{} 2016 Julien Lepiller@*
 Copyright @copyright{} 2016 Alex ter Weele@*
@@ -11781,7 +11781,7 @@ The @code{(gnu services desktop)} module provides services that are
 usually useful in the context of a ``desktop'' setup---that is, on a
 machine running a graphical display server, possibly with graphical user
 interfaces, etc.  It also defines services that provide specific desktop
-environments like GNOME and XFCE.
+environments like GNOME, XFCE or MATE.
 
 To simplify things, the module defines a variable containing the set of
 services that users typically expect on a machine with a graphical
@@ -11806,9 +11806,10 @@ The @var{%desktop-services} variable can be used as the @code{services}
 field of an @code{operating-system} declaration (@pxref{operating-system
 Reference, @code{services}}).
 
-Additionally, the @code{gnome-desktop-service} and
-@code{xfce-desktop-service} procedures can add GNOME and/or XFCE to a
-system.  To ``add GNOME'' means that system-level services like the
+Additionally, the @code{gnome-desktop-service},
+@code{xfce-desktop-service} and @code{mate-desktop-service}
+procedures can add GNOME, XFCE and/or MATE to a system.
+To ``add GNOME'' means that system-level services like the
 backlight adjustment helpers and the power management utilities are
 added to the system, extending @code{polkit} and @code{dbus}
 appropriately, allowing GNOME to operate with elevated privileges on a
@@ -11819,6 +11820,11 @@ not only adds the @code{xfce} metapackage to the system profile, but it
 also gives the Thunar file manager the ability to open a ``root-mode''
 file management window, if the user authenticates using the
 administrator's password via the standard polkit graphical interface.
+To ``add MATE'' means that @code{polkit} and @code{dbus} are extended
+appropriately, allowing MATE to operate with elevated privileges on a
+limited number of special-purpose system interfaces.  Additionally,
+adding a service made by @code{mate-desktop-service} adds the MATE
+metapackage to the system profile.
 
 @deffn {Scheme Procedure} gnome-desktop-service
 Return a service that adds the @code{gnome} package to the system
@@ -11833,9 +11839,15 @@ file system as root from within a user session, after the user has
 authenticated with the administrator's password.
 @end deffn
 
-Because the GNOME and XFCE desktop services pull in so many packages,
+@deffn {Scheme Procedure} mate-desktop-service
+Return a service that adds the @code{mate} package to the system
+profile, and extends polkit with the actions from
+@code{mate-settings-daemon}.
+@end deffn
+
+Because the GNOME, XFCE and MATE desktop services pull in so many packages,
 the default @code{%desktop-services} variable doesn't include either of
-them by default.  To add GNOME or XFCE, just @code{cons} them onto
+them by default.  To add GNOME, XFCE orMATE, just @code{cons} them onto
 @code{%desktop-services} in the @code{services} field of your
 @code{operating-system}:
 
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 527a3101c..3c6a18125 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2016 Sou Bunnbu <[email-masked]>
 ;;; Copyright © 2017 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages mate)
   #:use-module (guix records)
   #:use-module (guix packages)
   #:use-module (guix store)
@@ -82,6 +84,11 @@
             gnome-desktop-service
             gnome-desktop-service-type
 
+            mate-desktop-configuration
+            mate-desktop-configuration?
+            mate-desktop-service
+            mate-desktop-service-type
+
             xfce-desktop-configuration
             xfce-desktop-configuration?
             xfce-desktop-service
@@ -798,6 +805,44 @@ accountsservice web site} for more information."
 and extends polkit with the actions from @code{gnome-settings-daemon}."
   (service gnome-desktop-service-type config))
 
+;; MATE Desktop service.
+
+(define-record-type* <mate-desktop-configuration> mate-desktop-configuration
+  make-mate-desktop-configuration
+  mate-desktop-configuration
+  (mate-package mate-package (default mate))
+  (screensaver-package screensaver-package (default mate-screensaver)))
+
+(define %mate-desktop-pam-services
+  (list (unix-pam-service "mate-screensaver")))
+
+(define mate-desktop-setuid-programs
+  (match-lambda
+    (($ <mate-desktop-configuration> screensaver-package)
+     (list (file-append screensaver-package "/libexec/mate-screensaver-dialog")))))
+
+(define mate-desktop-service-type
+  (service-type
+   (name 'mate-desktop)
+   (extensions
+    (list (service-extension polkit-service-type
+                             (compose list
+                                      (package-direct-input-selector
+                                       "mate-settings-daemon")
+                                      mate-package))
+          (service-extension pam-root-service-type
+                             (const %mate-desktop-pam-services))
+          (service-extension setuid-program-service-type
+                             mate-desktop-setuid-programs)
+          (service-extension profile-service-type
+                             (compose list
+                                      mate-package))))))
+
+(define* (mate-desktop-service #:key (config (mate-desktop-configuration)))
+  "Return a service that adds the @code{mate} package to the system profile,
+and extends polkit with the actions from @code{mate-settings-daemon}."
+  (service mate-desktop-service-type config))
+
 
 ;;;
 ;;; XFCE desktop service.
-- 
2.14.2