Subject: [bug#28116] mate partial review

From: ng0 <[email-masked]>
Date: Sun, 3 Sep 2017 19:44:41 +0000

Efraim Flashner transcribed 27K bytes:
> On Thu, Aug 31, 2017 at 01:21:09PM +0000, ng0 wrote:
> > ng0 transcribed 47K bytes:
> > > I did the best I could guess with this updated patch series.
> > > If I missed something you addressed already, please point it
> > > out in a format which is more friendly to read than a mono-patch.
> > > 
> > > If this series is alright I want to sort the inputs of the
> > > longest packages with the version which is then good to go.
> > > 
> > > Thanks for taking the time to review!
> > 
> > You could also read through them here:
> > https://gitweb.krosos.org/ng0_guix/guix/log/?h=system/mate
> > http://gitweb.xpcbqhqx6ynktue7.onion/ng0_guix/guix/log/?h=system/mate
> > -- 
> 
> That worked out well. I think we're about there, I just want you to
> check that it works well when used as a DE.

I applied all of your corrections with the exception of:

`(#:phases -> '(#:phases

I see no point or any reason at all to use this for the package definition
it was applied to, used 2 times. The majority of packages uses the first one.

Then there was a cosmetical change with something like
(add-before
 'foo 'bar

becoming

(add-before 'foo 'bar

I haven't applied this because it was outside of the packages I
worked on and didn't fit into any logical set of patches I had.

This can be commited after this series.

Thanks for going through all of this. Now what we achieved with this
change is:
- mate-panel has actual readable/recognizable symbols instead
  of the garbage I assumed that was caused by individual applications
  but turns out it wasn't.
- Mate Control Center looks better.
- Everything is still working.

So, your fixes to my patches LGTM.
Rebased and edited series attached.
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://n0is.noblogs.org/my-keys
https://www.infotropique.org https://krosos.org
From cd4342dd313ad11db6a55cad20a4541bbbf43142 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 17:22:41 +0000
Subject: [PATCH 01/12] gnu: Add caja.

* gnu/packages/mate.scm (caja): 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 c64e26124..596210865 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
@@ -205,3 +208,58 @@ 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
+     `(#:configure-flags '("--disable-update-mimedb")
+       #:tests? #f ; tests fail even with display set
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             ;; For the missing /etc/machine-id.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("glib:bin" ,glib "bin")
+       ("xorg-server" ,xorg-server)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("exempi" ,exempi)
+       ("gtk+" ,gtk+)
+       ("gvfs" ,gvfs)
+       ("libexif" ,libexif)
+       ("libnotify" ,libnotify)
+       ("libsm" ,libsm)
+       ("libxml2" ,libxml2)
+       ("mate-desktop" ,mate-desktop)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://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.")
+    ;; 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 3d60b0821712c00906e0a4f0856ca2ef8126f744 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 18:29:40 +0000
Subject: [PATCH 02/12] gnu: Add mate-terminal.

* gnu/packages/mate.scm (mate-terminal): 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 596210865..18b7371d3 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -168,6 +168,47 @@ 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)
+       ("itstool" ,itstool)
+       ("gobject-introspection" ,gobject-introspection)
+       ("libxml2" ,libxml2)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("dconf" ,dconf)
+       ("gtk+" ,gtk+)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("libx11" ,libx11)
+       ("mate-desktop" ,mate-desktop)
+       ("pango" ,pango)
+       ("vte" ,vte)))
+    (home-page "https://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).")
+    (license license:gpl3)))
+
 (define-public mate-menus
   (package
     (name "mate-menus")
-- 
2.14.1

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

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 18b7371d3..600f977ba 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)
@@ -304,3 +305,54 @@ icons on the MATE desktop.  It works on local and remote filesystems.")
     ;; 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)
+       ("libxft" ,libxft)
+       ("libxml2" ,libxml2)
+       ("zenity" ,zenity)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libcanberra" ,libcanberra)
+       ("libgtop" ,libgtop)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("libx11" ,libx11)
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxdamage" ,libxdamage)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxinerama" ,libxinerama)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("mate-desktop" ,mate-desktop)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://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 69640f79a28c00d8cf6202ede5022d08f96a1028 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 14 Aug 2017 17:18:06 +0000
Subject: [PATCH 04/12] 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 600f977ba..94f62801f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -210,6 +210,37 @@ in a single window (tabs) and supports management of different
 configurations (profiles).")
     (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 "https://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 a04318eae5fbf37995d3bcb441c448ec75d5e505 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 14 Aug 2017 18:58:34 +0000
Subject: [PATCH 05/12] 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 94f62801f..17e6c0c02 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -282,6 +282,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")
+             "--with-in-process-applets=all")
+       #: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)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("dconf" ,dconf)
+       ("cairo" ,cairo)
+       ("dbus-glib" ,dbus-glib)
+       ("gtk+" ,gtk+)
+       ("libcanberra" ,libcanberra)
+       ("libice" ,libice)
+       ("libmateweather" ,libmateweather)
+       ("librsvg" ,librsvg)
+       ("libsm" ,libsm)
+       ("libx11" ,libx11)
+       ("libxau" ,libxau)
+       ("libxml2" ,libxml2)
+       ("libxrandr" ,libxrandr)
+       ("libwnck" ,libwnck)
+       ("mate-desktop" ,mate-desktop)
+       ("mate-menus" ,mate-menus)
+       ("pango" ,pango)
+       ("tzdata" ,tzdata)))
+    (home-page "https://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 328355ffacffec6d6919ad9df08ba4ee7101b87a Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 20:23:59 +0000
Subject: [PATCH 06/12] 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 17e6c0c02..00d371bed 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
@@ -241,6 +243,36 @@ configurations (profiles).")
 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 "https://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 cb1a5efdf0b8c3e29ea580e38a7c47fcc53778d8 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 20:53:08 +0000
Subject: [PATCH 07/12] 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 00d371bed..070731bc5 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -273,6 +273,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
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libx11" ,libx11)
+       ("libxklavier" ,libxklavier)))
+    (home-page "https://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 f7ef55aae104503e202ed8c8208922997a112180 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 21:23:23 +0000
Subject: [PATCH 08/12] gnu: Add mate-settings-daemon.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 070731bc5..bc745393c 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))
 
@@ -243,6 +246,49 @@ configurations (profiles).")
 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
+     `(("cairo" ,cairo)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("dconf" ,dconf)
+       ("fontconfig" ,fontconfig)
+       ("gtk+" ,gtk+)
+       ("libcanberra" ,libcanberra)
+       ("libmatekbd" ,libmatekbd)
+       ("libmatemixer" ,libmatemixer)
+       ("libnotify" ,libnotify)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxi" ,libxi)
+       ("libxklavier" ,libxklavier)
+       ("mate-desktop" ,mate-desktop)
+       ("nss" ,nss)
+       ("polkit" ,polkit)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://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 d3b82919351d4dc15abbad08dd7c7ebaecb2ae26 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 16:54:21 +0000
Subject: [PATCH 09/12] gnu: Add mate-applets.

* gnu/packages/mate.scm (mate-applets): 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 bc745393c..1af6b50e9 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)
@@ -392,6 +395,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-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)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("libxslt" ,libxslt)
+       ("yelp-tools" ,yelp-tools)
+       ("scrollkeeper" ,scrollkeeper)
+       ("gettext" ,gettext-minimal)
+       ("docbook-xml" ,docbook-xml)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("atk" ,atk)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("glib" ,glib)
+       ("gucharmap" ,gucharmap)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("libgtop" ,libgtop)
+       ("libmateweather" ,libmateweather)
+       ("libnotify" ,libnotify)
+       ("libx11" ,libx11)
+       ("libxml2" ,libxml2)
+       ("libwnck" ,libwnck)
+       ("mate-panel" ,mate-panel)
+       ("pango" ,pango)
+       ("polkit" ,polkit) ; either polkit or setuid
+       ("python" ,python-2)
+       ("upower" ,upower)
+       ("wireless-tools" ,wireless-tools)))
+    (propagated-inputs
+     `(("python-pygobject" ,python-pygobject)))
+    (home-page "https://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 b5c5432bac3691e7c913191755c2fefddaa5bee4 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 17:18:02 +0000
Subject: [PATCH 10/12] gnu: Add mate-media.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 1af6b50e9..b8b40569b 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -469,6 +469,43 @@ 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
+     `(("cairo" ,cairo)
+       ("gtk+" ,gtk+)
+       ("libcanberra" ,libcanberra)
+       ("libmatemixer" ,libmatemixer)
+       ("libxml2" ,libxml2)
+       ("mate-applets" ,mate-applets)
+       ("mate-desktop" ,mate-desktop)
+       ("mate-panel" ,mate-panel)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://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.")
+    (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+))))
+
 (define-public mate-panel
   (package
     (name "mate-panel")
-- 
2.14.1

From 5520866644545ac3f129f7dc8ad4dcdef805d69e Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 23 Aug 2017 18:36:16 +0000
Subject: [PATCH 11/12] 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 b8b40569b..ca1872a2f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -635,6 +635,71 @@ icons on the MATE desktop.  It works on local and remote filesystems.")
     ;; 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)
+       ("yelp-tools" ,yelp-tools)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("kbproto" ,kbproto)
+       ("randrproto" ,randrproto)
+       ("renderproto" ,renderproto)
+       ("scrnsaverproto" ,scrnsaverproto)
+       ("xextpro" ,xextproto)
+       ("xproto" ,xproto)
+       ("xmodmap" ,xmodmap)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("caja" ,caja)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libcanberra" ,libcanberra)
+       ("libmatekbd" ,libmatekbd)
+       ("libx11" ,libx11)
+       ("libxcursor" ,libxcursor)
+       ("libxext" ,libxext)
+       ("libxi" ,libxi)
+       ("libxklavier" ,libxklavier)
+       ("libxml2" ,libxml2)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("marco" ,marco)
+       ("mate-desktop" ,mate-desktop)
+       ("mate-menus" ,mate-menus)
+       ("mate-settings-daemon" ,mate-settings-daemon)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)))
+    (propagated-inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc
+       ("librsvg" ,librsvg))) ; mate-slab.pc
+    (home-page "https://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 4174fc0b1b2a503f4ec54835cffc7d534ccf7bac Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 16 Aug 2017 11:38:35 +0000
Subject: [PATCH 12/12] gnu: Add mate.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index ca1872a2f..91489ba91 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)
@@ -750,3 +753,59 @@ 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 mate-desktop))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build union))
+       #:builder
+       (begin
+         (use-modules (ice-9 match)
+                      (guix build union))
+         (match %build-inputs
+           (((names . directories) ...)
+            (union-build (assoc-ref %outputs "out")
+                         directories))))))
+    (inputs
+     ;; TODO: Add more packages
+     `(("at-spi2-core"              ,at-spi2-core)
+       ("caja"                      ,caja)
+       ("dbus"                      ,dbus)
+       ("dconf"                     ,dconf)
+       ("desktop-file-utils"        ,desktop-file-utils)
+       ("font-cantarell"            ,font-cantarell)
+       ("glib-networking"           ,glib-networking)
+       ("gnome-keyring"             ,gnome-keyring)
+       ("gvfs"                      ,gvfs)
+       ("libmatekbd"                ,libmatekbd)
+       ("libmateweather"            ,libmateweather)
+       ("libmatemixer"              ,libmatemixer)
+       ("marco"                     ,marco)
+       ("mate-session-manager"      ,mate-session-manager)
+       ("mate-settings-daemon"      ,mate-settings-daemon)
+       ("mate-desktop"              ,mate-desktop)
+       ("mate-terminal"             ,mate-terminal)
+       ("mate-themes"               ,mate-themes)
+       ("mate-icon-theme"           ,mate-icon-theme)
+       ("mate-menu"                 ,mate-menus)
+       ("mate-panel"                ,mate-panel)
+       ("mate-control-center"       ,mate-control-center)
+       ("mate-media"                ,mate-media)
+       ("mate-applets"              ,mate-applets)
+       ("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