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

From: ng0 <[email-masked]>
Date: Wed, 16 Aug 2017 20:56:50 +0000

Hi,

appended are the patches to add the minimal base of the
MATE Desktop Environment which is required to log into
it use it with the panel.

I have tested the package "mate" successfully on x86_64 in a VM.

mate-terminal and caja work outside of the environment,
and can be tested with any desktop environment/manager.

There are some descriptions which can be improved
because the upstream description was super short.

Some last input checks must be done aswell, I'll
send this as version 1 of the patch series now.
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://n0is.noblogs.org/my-keys
https://www.infotropique.org https://krosos.org
From 360704323783b52a5a89ee6462df50e0a08f6dd2 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 16 Aug 2017 10:27:04 +0000
Subject: [PATCH 01/10] 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 edd13bcb146c4aa78d5d9a757cd24bae600bde2c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 17:22:41 +0000
Subject: [PATCH 02/10] 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 0bf9795704b447bf652dedf628e156caded5c51d Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 18:29:40 +0000
Subject: [PATCH 03/10] gnu: Add mate-terminal.

* gnu/packages/mate.scm (mate-terminal): 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 6f34ecaa4..66ef9aaff 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -174,6 +174,52 @@ 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)
+       ("glib:bin" ,glib "bin")
+       ("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 UNIX shell in the MATE environment.  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 135e6c0da64c80ab76228b387255fa74d7275b32 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 6 Aug 2017 18:03:17 +0000
Subject: [PATCH 04/10] gnu: Add marco.

* gnu/packages/mate.scm (marco): 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 66ef9aaff..b210c4fe5 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,60 @@ 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:bin" ,glib "bin")
+       ("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
+traditional UNIX or other technical 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 5667228426b45f8f90df58eee9baae4f961954c0 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 14 Aug 2017 17:18:06 +0000
Subject: [PATCH 05/10] gnu: Add mate-session-manager.

* gnu/packages/mate.scm (mate-session-manager): 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 b210c4fe5..73f14e00d 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -221,6 +221,38 @@ 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)
+       ("glib:bin" ,glib "bin")
+       ("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 66cfb926384cae4bd04d5282f6b10e997a62a369 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Mon, 14 Aug 2017 18:58:34 +0000
Subject: [PATCH 06/10] gnu: Add mate-panel.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 73f14e00d..de10e749a 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -294,6 +294,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-panel
+  (package
+    (name "mate-panel")
+    (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
+         "0fa1m4gh009kzkci7szshd4vfaizdgn6m73xd684f87qmpfcm0j7"))))
+    (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)
+       ("glib:bin" ,glib "bin")
+       ("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 21d5bb36f0543574a9bbefbbd1a23604671245e6 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 20:23:59 +0000
Subject: [PATCH 07/10] 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 de10e749a..4d01d19d4 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
@@ -253,6 +255,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 1f1842e5cf1ed32a6f24a3bbbaf8e320c4248b44 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 20:53:08 +0000
Subject: [PATCH 08/10] gnu: Add libmatekbd.

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

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 4d01d19d4..ffb00d66d 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -285,6 +285,39 @@ 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)
+       ("glib:bin" ,glib "bin")
+       ("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 b6edab4b8d0eda9cc2041e594910a6901cced1a9 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Tue, 15 Aug 2017 21:23:23 +0000
Subject: [PATCH 09/10] gnu: Add mate-settings-daemon.

* gnu/packages/mate.scm (mate-settings-daemon): 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 ffb00d66d..f848e2e2e 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))
 
@@ -255,6 +258,54 @@ 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)
+       ("glib:bin" ,glib "bin")
+       ("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 00c6ac2a65494c57a4f53b8b8f9b76d0fd4974ae Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 16 Aug 2017 11:38:35 +0000
Subject: [PATCH 10/10] gnu: Add mate.

* gnu/packages/mate.scm (mate): 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 f848e2e2e..6a7b86bbf 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -25,15 +25,18 @@
   #: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)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
@@ -585,3 +588,47 @@ traditional UNIX or other technical 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)
+       ("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