Subject: [bug#28116] MATE (and mate-terminal + caja)

From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 21:04:28 +0000

Version 2 appended:
[abyayala] 9:00pm guix > ls *.patch
4.0K 0001-gnu-mate-Fetch-sources-via-https.patch                    4.0K 0005-gnu-Add-mate-terminal.patch         4.0K 0009-gnu-Add-libmatemixer.patch          4.0K 0013-gnu-Add-mate-media.patch
4.0K 0002-gnu-Add-caja.patch                                        4.0K 0006-gnu-Add-marco.patch                 4.0K 0010-gnu-Add-libmatekbd.patch            4.0K 0014-gnu-Add-mate-control-center.patch
4.0K 0003-gnu-mate-themes-Update-to-3.22.13.patch                   4.0K 0007-gnu-Add-mate-session-manager.patch  4.0K 0011-gnu-Add-mate-settings-daemon.patch  4.0K 0015-gnu-Add-mate.patch
4.0K 0004-gnu-mate-desktop-Add-gtk-doc-back-to-native-inputs.patch  4.0K 0008-gnu-Add-mate-panel.patch            8.0K 0012-gnu-Add-mate-applets.patch

This adds an almost complete MATE desktop, 6 upstream applications are still missing but the MATE experience is there.
Missing are power-manager and screensavers for example.
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://n0is.noblogs.org/my-keys
https://www.infotropique.org https://krosos.org
From 7cec7254ddc09698c4c5d44ae1b543c7ff8c3f2b Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 16 Aug 2017 10:27:04 +0000
Subject: [PATCH 01/15] gnu: mate: Fetch sources via https.

* gnu/packages/mate.scm (mate-icon-theme)[source]: Use https.
(mate-themes)[source]: Likewise.
(mate-desktop)[source]: Likewise.
(libmateweather)[source]: Likewise.
(mate-menus)[source]: Likewise.
---
 gnu/packages/mate.scm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 316385a6f..ff920c543 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Fabian Harfert <[email-masked]>
 ;;; Copyright © 2016 Efraim Flashner <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,7 +41,7 @@
     (version "1.18.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://pub.mate-desktop.org/releases/"
+              (uri (string-append "https://pub.mate-desktop.org/releases/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
@@ -64,7 +65,7 @@
     (version "3.22.11")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://pub.mate-desktop.org/releases/themes/"
+              (uri (string-append "https://pub.mate-desktop.org/releases/themes/"
                                   (version-major+minor version) "/mate-themes-"
                                   version ".tar.xz"))
               (sha256
@@ -95,7 +96,7 @@ themes for both gtk+-2 and gtk+-3.")
     (version "1.18.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://pub.mate-desktop.org/releases/"
+              (uri (string-append "https://pub.mate-desktop.org/releases/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
@@ -128,7 +129,7 @@ desktop and the mate-about program.")
     (version "1.18.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://pub.mate-desktop.org/releases/"
+              (uri (string-append "https://pub.mate-desktop.org/releases/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
@@ -176,7 +177,7 @@ the MATE desktop environment.")
     (version "1.18.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://pub.mate-desktop.org/releases/"
+              (uri (string-append "https://pub.mate-desktop.org/releases/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
-- 
2.14.1

From b595c685f688eebd6daec7fa5cc7d3c3f7c7e0d5 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 17:22:41 +0000
Subject: [PATCH 02/15] gnu: Add caja.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index ff920c543..6f34ecaa4 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -24,8 +24,10 @@
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -33,6 +35,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages base)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages python))
 
 (define-public mate-icon-theme
@@ -211,3 +214,47 @@ the MATE desktop environment.")
 specification, the MATE menu layout configuration files, .directory files and
 assorted menu related utility programs.")
     (license (list license:gpl2+ license:lgpl2.0+))))
+
+(define-public caja
+  (package
+    (name "caja")
+    (version "1.18.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0mljqcx7k8p27854zm7qzzn8ca6hs7hva9p43hp4p507z52caqmm"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("exempi" ,exempi)
+       ("gvfs" ,gvfs)
+       ("libexif" ,libexif)
+       ("libsm" ,libsm)
+       ("libnotify" ,libnotify)
+       ("libxml2" ,libxml2)
+       ("mate-desktop" ,mate-desktop)
+       ("startup-notification" ,startup-notification)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "File manager for the MATE desktop")
+    (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.
+Caja is a fork of Nautilus.")
+    ;; There is a note about a TRADEMARKS_NOTICE file in COPYING which
+    ;; does not exist. It is safe to assume that this is of no concern
+    ;; for us.
+    (license license:gpl2+)))
-- 
2.14.1

From 81f09c9e84b180dfc7c96cfc8934135022d961fc Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 13:53:30 +0000
Subject: [PATCH 03/15] gnu: mate-themes: Update to 3.22.13.

* gnu/packages/mate.scm (mate-themes): Update to 3.22.13.
---
 gnu/packages/mate.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 6f34ecaa4..c8d94d566 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -65,7 +65,7 @@
 (define-public mate-themes
   (package
     (name "mate-themes")
-    (version "3.22.11")
+    (version "3.22.13")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/themes/"
@@ -73,7 +73,7 @@
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1gfa1cny3q68y139m96iz8haiik6ygad5613gx0m4wd9hi5scafm"))))
+                "1p7w63an8qs15hkj79nppy7471glv0rm1b0himn3c4w69q8qdc9i"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
-- 
2.14.1

From 5c663e4ea2f406de714af2505ca556397c138b1c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 13:59:30 +0000
Subject: [PATCH 04/15] gnu: mate-desktop: Add 'gtk-doc' back to native-inputs.

* gnu/packages/mate.scm (mate-desktop)[native-inputs]: Uncomment 'gtk-doc' as input.
---
 gnu/packages/mate.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c8d94d566..572fdc878 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -111,8 +111,8 @@ themes for both gtk+-2 and gtk+-3.")
        ("intltool" ,intltool)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("yelp-tools" ,yelp-tools)))
-       ;;("gtk-doc" ,gtk-doc))) ; add back in when gtk-doc builds
+       ("yelp-tools" ,yelp-tools)
+       ("gtk-doc" ,gtk-doc)))
     (inputs
      `(("gtk+" ,gtk+)
        ("libxrandr" ,libxrandr)
-- 
2.14.1

From 5788f0453937a7500dbde0be9c486ed35ebe9dfe Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 18:29:40 +0000
Subject: [PATCH 05/15] gnu: Add mate-terminal.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 572fdc878..f143fc149 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -174,6 +174,51 @@ desktop and the mate-about program.")
 the MATE desktop environment.")
     (license license:lgpl2.1+)))
 
+(define-public mate-terminal
+  (package
+    (name "mate-terminal")
+    (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
+         "1zihm609d2d9cw53ry385whshjl1dnkifpk41g1ddm9f58hv4da1"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("libsm" ,libsm)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("exempi" ,exempi)
+       ("libnotify" ,libnotify)
+       ("libxml2" ,libxml2)
+       ("libice" ,libice)
+       ("libx11" ,libx11)
+       ("pango" ,pango)
+       ("itstool" ,itstool)
+       ("vte" ,vte)
+       ("yelp-tools" ,yelp-tools)
+       ("gobject-introspection" ,gobject-introspection)
+       ("mate-desktop" ,mate-desktop)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "MATE Terminal Emulator")
+    (description
+     "MATE Terminal is a terminal emulation application that you can
+use to access a shell.  With it, you can run any application that
+is designed to run on VT102, VT220, and xterm terminals.
+MATE Terminal also has the ability to use multiple terminals
+in a single window (tabs) and supports management of different
+configurations (profiles).  MATE Terminal is a fork of GNOME Terminal.")
+    (license license:gpl3)))
+
 (define-public mate-menus
   (package
     (name "mate-menus")
-- 
2.14.1

From 0fd9bf9f5b3d02d64fdcae8d4fd8c704d6909245 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 18:03:17 +0000
Subject: [PATCH 06/15] gnu: Add marco.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index f143fc149..0f7068264 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -303,3 +304,58 @@ Caja is a fork of Nautilus.")
     ;; does not exist. It is safe to assume that this is of no concern
     ;; for us.
     (license license:gpl2+)))
+
+(define-public marco
+  (package
+    (name "marco")
+    (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
+         "0lwbp9wyd66hl5d7g272l8g3k1pb9s4s2p9fb04750a58w87d8k5"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libgtop" ,libgtop)
+       ("zenity" ,zenity)
+       ("libxcursor" ,libxcursor)
+       ("libsm" ,libsm)
+       ("libxml2" ,libxml2)
+       ("libgtop" ,libgtop)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libx11" ,libx11)
+       ("libice" ,libice)
+       ("libxcomposite" ,libxcomposite)
+       ("libxdamage" ,libxdamage)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxft" ,libxft)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)
+       ("libxinerama" ,libxinerama)
+       ("xextproto" ,xextproto)
+       ("xproto" ,xproto)
+       ("libcanberra" ,libcanberra)
+       ("mate-desktop" ,mate-desktop)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Window manager for the MATE desktop")
+    (description
+     "Marco is a minimal X window manager that uses GTK+ for drawing
+window frames.  It is aimed at non-technical users and is designed to integrate
+well with the MATE desktop.  It lacks some features that may be expected by
+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+)))
-- 
2.14.1

From 0dbf6e11d163021dc5d55384bb3a77045a9d393a Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 14 Aug 2017 17:18:06 +0000
Subject: [PATCH 07/15] gnu: Add mate-session-manager.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 0f7068264..78f1d7aec 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -220,6 +220,37 @@ in a single window (tabs) and supports management of different
 configurations (profiles).  MATE Terminal is a fork of GNOME Terminal.")
     (license license:gpl3)))
 
+(define-public mate-session-manager
+  (package
+    (name "mate-session-manager")
+    (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
+         "0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("xtrans" ,xtrans)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("dbus-glib" ,dbus-glib)
+       ("libsm" ,libsm)
+       ("mate-desktop" ,mate-desktop)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Session manager for MATE")
+    (description
+     "Mate-session contains the MATE session manager, as well as a
+configuration program to choose applications starting on login.")
+    (license license:gpl2)))
+
 (define-public mate-menus
   (package
     (name "mate-menus")
-- 
2.14.1

From d5e6d31f98a1d6c3eb2a7ceaa3a7d2525f1904d6 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 14 Aug 2017 18:58:34 +0000
Subject: [PATCH 08/15] gnu: Add mate-panel.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 78f1d7aec..1ab9032c4 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -292,6 +292,80 @@ specification, the MATE menu layout configuration files, .directory files and
 assorted menu related utility programs.")
     (license (list license:gpl2+ license:lgpl2.0+))))
 
+(define-public mate-panel
+  (package
+    (name "mate-panel")
+    (version "1.18.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1n565ff1n7jrfx223i3cl3m69wjda506nvbn8gra7m1jwdfzpbw1"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-zoneinfo-dir="
+                            (assoc-ref %build-inputs "tzdata")
+                            "/share/zoneinfo"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-timezone-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((tzdata (assoc-ref inputs "tzdata")))
+               (substitute* "applets/clock/system-timezone.h"
+                 (("/usr/share/lib/zoneinfo/tab")
+                  (string-append tzdata "/share/zoneinfo/zone.tab"))
+                 (("/usr/share/zoneinfo")
+                  (string-append tzdata "/share/zoneinfo"))))
+             #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))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("xtrans" ,xtrans)
+       ("tzdata" ,tzdata)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("dbus-glib" ,dbus-glib)
+       ("libwnck" ,libwnck)
+       ("pango" ,pango)
+       ("librsvg" ,librsvg)
+       ("libcanberra" ,libcanberra)
+       ("libmateweather" ,libmateweather)
+       ("libxrandr" ,libxrandr)
+       ("libxml2" ,libxml2)
+       ("dconf" ,dconf)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libice" ,libice)
+       ("libx11" ,libx11)
+       ("libxau" ,libxau)
+       ("mate-menus" ,mate-menus)
+       ("libsm" ,libsm)
+       ("mate-desktop" ,mate-desktop)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Panel for MATE")
+    (description
+     "Mate-panel contains the MATE panel, the libmate-panel-applet library and
+several applets.  The applets supplied here include the Workspace Switcher,
+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 caja
   (package
     (name "caja")
-- 
2.14.1

From db0f777cc4b4e7acbf9b25edd511eab4cebd02ab Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 20:23:59 +0000
Subject: [PATCH 09/15] gnu: Add libmatemixer.

* gnu/packages/mate.scm (libmatemixer): 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 1ab9032c4..09ebba447 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -29,6 +29,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
@@ -37,6 +38,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages photo)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python))
 
 (define-public mate-icon-theme
@@ -251,6 +253,36 @@ configurations (profiles).  MATE Terminal is a fork of GNOME Terminal.")
 configuration program to choose applications starting on login.")
     (license license:gpl2)))
 
+(define-public libmatemixer
+  (package
+    (name "libmatemixer")
+    (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
+         "09vyxnlnalws318gsafdfi5c6jwpp92pbafn1ddlqqds23ihk4mr"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("glib" ,glib)
+       ("pulseaudio" ,pulseaudio)
+       ("alsa-lib" ,alsa-lib)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Mixer library for the MATE desktop")
+    (description
+     "Libmatemixer is a mixer library for MATE desktop.  It provides an abstract
+API allowing access to mixer functionality available in the PulseAudio and ALSA
+sound systems.")
+    (license license:lgpl2.1)))
+
 (define-public mate-menus
   (package
     (name "mate-menus")
-- 
2.14.1

From 48f375f1af7b88a35f9fca6304d78c2bf981da61 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 20:53:08 +0000
Subject: [PATCH 10/15] gnu: Add libmatekbd.

* gnu/packages/mate.scm (libmatekbd): 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 09ebba447..793f6bba0 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -283,6 +283,38 @@ API allowing access to mixer functionality available in the PulseAudio and ALSA
 sound systems.")
     (license license:lgpl2.1)))
 
+(define-public libmatekbd
+  (package
+    (name "libmatekbd")
+    (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
+         "030bl18qbjm7l92bp1bhs7v82bp8j3mv7c1j1a4gd89iz4611pq3"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("glib" ,glib)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gtk+" ,gtk+)
+       ("cairo" ,cairo)
+       ("libx11" ,libx11)
+       ("libxklavier" ,libxklavier)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "MATE keyboard configuration library")
+    (description
+     "Libmatekbd is a keyboard configuration library for the
+MATE desktop environment.")
+    (license license:lgpl2.1)))
+
 (define-public mate-menus
   (package
     (name "mate-menus")
-- 
2.14.1

From 8cfee4f7b8442f988e146458cacd2343263ef300 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 21:23:23 +0000
Subject: [PATCH 11/15] gnu: Add mate-settings-daemon.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 793f6bba0..9537fb168 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,16 +28,19 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages base)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages photo)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python))
 
@@ -253,6 +256,53 @@ configurations (profiles).  MATE Terminal is a fork of GNOME Terminal.")
 configuration program to choose applications starting on login.")
     (license license:gpl2)))
 
+(define-public mate-settings-daemon
+  (package
+    (name "mate-settings-daemon")
+    (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
+         "07b2jkxqv07njdrgkdck93d872p6lch1lrvi7ydnpicspg3rfid6"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("dbus-glib" ,dbus-glib)
+       ("mate-desktop" ,mate-desktop)
+       ("libmatekbd" ,libmatekbd)
+       ("libmatemixer" ,libmatemixer)
+       ("libxklavier" ,libxklavier)
+       ("libx11" ,libx11)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libxi" ,libxi)
+       ("libxext" ,libxext)
+       ("inputproto" ,inputproto)
+       ("xproto" ,xproto)
+       ("startup-notification" ,startup-notification)
+       ("libnotify" ,libnotify)
+       ("dbus" ,dbus)
+       ("polkit" ,polkit)
+       ("pulseaudio" ,pulseaudio)
+       ("nss" ,nss)
+       ("libcanberra" ,libcanberra)
+       ("fontconfig" ,fontconfig)
+       ("dconf" ,dconf)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Settings Daemon for MATE")
+    (description
+     "Mate-settings-daemon is a fork of gnome-settings-daemon.")
+    (license (list license:lgpl2.1 license:gpl2))))
+
 (define-public libmatemixer
   (package
     (name "libmatemixer")
-- 
2.14.1

From f8b4a740d668c947192845594d00c2134251ca1d Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 16:54:21 +0000
Subject: [PATCH 12/15] gnu: Add mate-applets.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 9537fb168..5afd761a4 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -33,9 +33,12 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages docbook)
   #: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)
@@ -406,6 +409,81 @@ specification, the MATE menu layout configuration files, .directory files and
 assorted menu related utility programs.")
     (license (list license:gpl2+ license:lgpl2.0+))))
 
+(define-public mate-applets
+  (package
+    (name "mate-applets")
+    (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
+         "1nplr8i1mxbxd7pqhcy8j69v25nsp5dk9fq7ffrmjmp39lrf3fh5"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     ;; FIXME: Build with upower fails.
+     `(#:configure-flags (list "--without-upower")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("libxslt" ,libxslt)
+       ("yelp-tools" ,yelp-tools)
+       ;;("scrollkeeper" ,scrollkeeper) ;Add back when scrollkeeper builds.
+       ("gettext" ,gettext-minimal)
+       ("docbook-xml" ,docbook-xml)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("atk" ,atk)
+       ("dbus-glib" ,dbus-glib)
+       ("glib" ,glib)
+       ("libmateweather" ,libmateweather)
+       ("libwnck" ,libwnck)
+       ("pango" ,pango)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("libgtop" ,libgtop)
+       ("libxml2" ,libxml2)
+       ("python-pygobject" ,python-pygobject)
+       ("gucharmap" ,gucharmap)
+       ("mate-panel" ,mate-panel)
+       ("wireless-tools" ,wireless-tools)
+       ("dbus" ,dbus)
+       ("libnotify" ,libnotify)
+       ("libx11" ,libx11)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("python" ,python-2)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Various applets for the MATE Panel")
+    (description
+     "Mate-applets includes various small applications for Mate-panel:
+
+@enumerate
+@item accessx-status: indicates keyboard accessibility settings,
+including the current state of the keyboard, if those features are in use.
+@item Battstat: monitors the power subsystem on a laptop.
+@item Character palette: provides a convenient way to access
+non-standard characters, such as accented characters,
+mathematical symbols, special symbols, and punctuation marks.
+@item MATE CPUFreq Applet: CPU frequency scaling monitor
+@item Drivemount: lets you mount and unmount drives and file systems.
+@item Geyes: pair of eyes which follow the mouse pointer around the screen.
+@item Keyboard layout switcher: lets you assign different keyboard
+layouts for different locales.
+@item Modem Monitor: monitors the modem.
+@item Invest: downloads current stock quotes from the Internet and
+displays the quotes in a scrolling display in the applet. The
+applet downloads the stock information from Yahoo! Finance.
+@item System monitor: CPU, memory, network, swap file and resource.
+@item Trash: lets you drag items to the trash folder.
+@item Weather report: downloads weather information from the
+U.S National Weather Service (NWS) servers, including the
+Interactive Weather Information Network (IWIN).
+@end enumerate\n")
+    (license (list license:gpl2+ license:lgpl2.0+ license:gpl3+))))
+
 (define-public mate-panel
   (package
     (name "mate-panel")
-- 
2.14.1

From f1fbf91fdaa796d7453ba905466eb4c78af280c9 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 17:18:02 +0000
Subject: [PATCH 13/15] gnu: Add mate-media.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 5afd761a4..73f1b83b2 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -484,6 +484,44 @@ Interactive Weather Information Network (IWIN).
 @end enumerate\n")
     (license (list license:gpl2+ license:lgpl2.0+ license:gpl3+))))
 
+(define-public mate-media
+  (package
+    (name "mate-media")
+    (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
+         "1l0j71d07898wb6ily09sj1xczwrmcw13wyhxwns7sxw592nwi04"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("pango" ,pango)
+       ("libmatemixer" ,libmatemixer)
+       ("libxml2" ,libxml2)
+       ("mate-applets" ,mate-applets)
+       ("mate-panel" ,mate-panel)
+       ("mate-desktop" ,mate-desktop)
+       ("libcanberra" ,libcanberra)
+       ("startup-notification" ,startup-notification)
+       ("cairo" ,cairo)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "Multimedia related programs for the MATE desktop")
+    (description
+     "Mate-media includes the MATE media tools for MATE, including
+mate-volume-control, a MATE volume control application and applet.
+MATE-Media is a fork of GNOME-Media.")
+    (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+))))
+
 (define-public mate-panel
   (package
     (name "mate-panel")
-- 
2.14.1

From 2e23d482fb4f0861ad014aba4b97c7f8fa8f5233 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 18:36:16 +0000
Subject: [PATCH 14/15] gnu: Add mate-control-center.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 73f1b83b2..a7534ec15 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -640,6 +640,71 @@ Caja is a fork of Nautilus.")
     ;; for us.
     (license license:gpl2+)))
 
+(define-public mate-control-center
+  (package
+    (name "mate-control-center")
+    (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
+         "0flnn0h8f5aqyccwrlv7qxchvr3kqmlfdga6wq28d55zkpv5m7dl"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("glib" ,glib)
+       ("yelp-tools" ,yelp-tools)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("kbproto" ,kbproto)
+       ("randrproto" ,randrproto)
+       ("renderproto" ,renderproto)
+       ("scrnsaverproto" ,scrnsaverproto)
+       ("xextpro" ,xextproto)
+       ("xproto" ,xproto)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("atk" ,atk)
+       ("startup-notification" ,startup-notification)
+       ("dbus-glib" ,dbus-glib)
+       ("libxml2" ,libxml2)
+       ("dconf" ,dconf)
+       ("librsvg" ,librsvg)
+       ("libmatekbd" ,libmatekbd)
+       ("mate-desktop" ,mate-desktop)
+       ("caja" ,caja)
+       ("mate-menus" ,mate-menus)
+       ("mate-settings-daemon" ,mate-settings-daemon)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("libcanberra" ,libcanberra)
+       ("dbus" ,dbus)
+       ("xmodmap" ,xmodmap)
+       ("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gtk+" ,gtk+)
+       ("libxcursor" ,libxcursor)
+       ("libx11" ,libx11)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxcursor" ,libxcursor)
+       ("libxext" ,libxext)
+       ("libxi" ,libxi)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxklavier" ,libxklavier)
+       ("marco" ,marco)
+       ("pango" ,pango)))
+    (home-page "http://mate-desktop.org/")
+    (synopsis "MATE Desktop configuration tool")
+    (description
+     "MATE control center is MATE's main interface for configuration
+of various aspects of your desktop.")
+    (license license:gpl2+)))
+
 (define-public marco
   (package
     (name "marco")
-- 
2.14.1

From db4b2e059002549a5eafcc0692989163efa4cbc9 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 16 Aug 2017 11:38:35 +0000
Subject: [PATCH 15/15] gnu: Add mate.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index a7534ec15..40359ede2 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -25,10 +25,12 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #: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 fonts)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages glib)
@@ -36,6 +38,7 @@
   #:use-module (gnu packages gettext)
   #: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)
@@ -759,3 +762,50 @@ well with the MATE desktop.  It lacks some features that may be expected by
 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
+  (package
+    (name "mate")
+    (version (package-version marco))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments '(#:builder (mkdir %output)))
+    (propagated-inputs
+     ;; TODO: Add more packages
+     `(("mate-icon-theme"           ,mate-icon-theme)
+       ("font-cantarell"            ,font-cantarell)
+       ("at-spi2-core"              ,at-spi2-core)
+       ("dbus"                      ,dbus)
+       ("dconf"                     ,dconf)
+       ("desktop-file-utils"        ,desktop-file-utils)
+       ("glib-networking"           ,glib-networking)
+       ("gnome-keyring"             ,gnome-keyring)
+       ("mate-session-manager"      ,mate-session-manager)
+       ("mate-settings-daemon"      ,mate-settings-daemon)
+       ("mate-desktop"              ,mate-desktop)
+       ("mate-terminal"             ,mate-terminal)
+       ("mate-themes"               ,mate-themes)
+       ("libmatekbd"                ,libmatekbd)
+       ("mate-menu"                 ,mate-menus)
+       ("libmateweather"            ,libmateweather)
+       ("libmatemixer"              ,libmatemixer)
+       ("mate-panel"                ,mate-panel)
+       ("mate-control-center"       ,mate-control-center)
+       ("mate-media"                ,mate-media)
+       ("mate-applets"              ,mate-applets)
+       ("gvfs"                      ,gvfs)
+       ("caja"                      ,caja)
+       ("marco"                     ,marco)
+       ("pinentry-gnome3"           ,pinentry-gnome3)
+       ("pulseaudio"                ,pulseaudio)
+       ("shared-mime-info"          ,shared-mime-info)
+       ("yelp"                      ,yelp)
+       ("zenity"                    ,zenity)))
+    (synopsis "The MATE desktop environment")
+    (home-page "https://mate-desktop.org/")
+    (description
+     "The MATE Desktop Environment is the continuation of GNOME 2.  It provides
+an intuitive and attractive desktop environment using traditional metaphors for
+GNU/Linux systems.  MATE is under active development to add support for new
+technologies while preserving a traditional desktop experience.")
+    (license license:gpl2+)))
-- 
2.14.1