Subject: [bug#28116] mate partial review

From: Efraim Flashner <[email-masked]>
Date: Thu, 24 Aug 2017 23:42:46 +0300

I did all the building on my aarch64 board and didn't test the graphical
aspects of running the programs. I also didn't check the
synopsis/description, but some of them do look like they need some work.

patch 1: it turns out the home pages should also be https.

mate-icon-theme and mate-themes don't need gtk in the inputs to build.

libmateweather, mate-panel, mate-control-center: needs a configure flag

mate-applet: it built fine for me with upower as an input

mate-control-center: librsvg and gdk-pixbuf should be propagated

caja: I enabled the display server and the tests still failed on me

mate-metapackage: I copied the build from xfce, it seemed to build fine
for me.

I've attached a diff of what I have. I suggest you alphabetize the
inputs, it makes checking for duplicate or missing inputs much easier.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 40359ede2a..d33b1445b9 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -66,9 +66,8 @@
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
-       ("gtk+" ,gtk+)
        ("icon-naming-utils" ,icon-naming-utils)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "The MATE desktop environment icon theme")
     (description
      "This package contains the default icon theme used by the MATE desktop.")
@@ -91,11 +90,10 @@
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
+     `(("gdk-pixbuf" ,gdk-pixbuf)
        ("gtk-engines" ,gtk-engines)
        ("murrine" ,murrine)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis
      "Official themes for the MATE desktop")
     (description
@@ -131,7 +129,7 @@ themes for both gtk+-2 and gtk+-3.")
        ("startup-notification" ,startup-notification)))
     (propagated-inputs
      `(("dconf" ,dconf))) ; mate-desktop-2.0.pc
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "Library with common API for various MATE modules")
     (description
      "This package contains a public API shared by several applications on the
@@ -152,14 +150,14 @@ desktop and the mate-about program.")
                 "0z6vfh42fv9rqjrraqfpf6h9nd9h662bxy3l3r48j19xvxrwmx3a"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
+     '(#:configure-flags
        (list (string-append "--with-zoneinfo-dir="
                             (assoc-ref %build-inputs "tzdata")
-                            "/share/zoneinfo"))
+                            "/share/zoneinfo")
+             "--disable-icon-update")
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'check 'pre-check
+         (add-before 'check 'pre-check
           (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "data/check-timezones.sh"
               (("/usr/share/zoneinfo/zone.tab")
@@ -179,7 +177,7 @@ desktop and the mate-about program.")
       ;; both of these are requires.private in mateweather.pc
      `(("libsoup" ,libsoup)
        ("libxml2" ,libxml2)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "MATE library for weather information from the Internet")
     (description
      "This library provides access to weather information from the internet for
@@ -220,7 +218,7 @@ the MATE desktop environment.")
        ("mate-desktop" ,mate-desktop)))
     (propagated-inputs
      `(("dconf" ,dconf)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "MATE Terminal Emulator")
     (description
      "MATE Terminal is a terminal emulation application that you can
@@ -255,7 +253,7 @@ configurations (profiles).  MATE Terminal is a fork of GNOME Terminal.")
        ("dbus-glib" ,dbus-glib)
        ("libsm" ,libsm)
        ("mate-desktop" ,mate-desktop)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "Session manager for MATE")
     (description
      "Mate-session contains the MATE session manager, as well as a
@@ -303,7 +301,7 @@ configuration program to choose applications starting on login.")
        ("libcanberra" ,libcanberra)
        ("fontconfig" ,fontconfig)
        ("dconf" ,dconf)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "Settings Daemon for MATE")
     (description
      "Mate-settings-daemon is a fork of gnome-settings-daemon.")
@@ -331,7 +329,7 @@ configuration program to choose applications starting on login.")
      `(("glib" ,glib)
        ("pulseaudio" ,pulseaudio)
        ("alsa-lib" ,alsa-lib)))
-    (home-page "http://mate-desktop.org/")
+    (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
@@ -364,7 +362,7 @@ sound systems.")
        ("cairo" ,cairo)
        ("libx11" ,libx11)
        ("libxklavier" ,libxklavier)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "MATE keyboard configuration library")
     (description
      "Libmatekbd is a keyboard configuration library for the
@@ -387,8 +385,7 @@ MATE desktop environment.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after
-          'unpack 'fix-introspection-install-dir
+         (add-after 'unpack 'fix-introspection-install-dir
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (substitute* '("configure")
@@ -404,7 +401,7 @@ MATE desktop environment.")
     (inputs
      `(("glib" ,glib)
        ("python" ,python-2)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "Freedesktop menu specification implementation for MATE")
     (description
      "The package contains an implementation of the freedesktop menu
@@ -426,9 +423,6 @@ assorted menu related utility programs.")
         (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)
@@ -440,25 +434,27 @@ assorted menu related utility programs.")
        ("gobject-introspection" ,gobject-introspection)))
     (inputs
      `(("atk" ,atk)
+       ("dbus" ,dbus)
        ("dbus-glib" ,dbus-glib)
+       ("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-       ("libmateweather" ,libmateweather)
-       ("libwnck" ,libwnck)
-       ("pango" ,pango)
+       ("gucharmap" ,gucharmap)
        ("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)
+       ("libmateweather" ,libmateweather)
+       ("libwnck" ,libwnck)
        ("libx11" ,libx11)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("python" ,python-2)))
-    (home-page "http://mate-desktop.org/")
+       ("libxml2" ,libxml2)
+       ("mate-panel" ,mate-panel)
+       ("pango" ,pango)
+       ("polkit" ,polkit)
+       ("python" ,python-2)
+       ("python-pygobject" ,python-pygobject)
+       ("upower" ,upower)
+       ("wireless-tools" ,wireless-tools)))
+    (home-page "https://mate-desktop.org/")
     (synopsis "Various applets for the MATE Panel")
     (description
      "Mate-applets includes various small applications for Mate-panel:
@@ -517,7 +513,7 @@ Interactive Weather Information Network (IWIN).
        ("libcanberra" ,libcanberra)
        ("startup-notification" ,startup-notification)
        ("cairo" ,cairo)))
-    (home-page "http://mate-desktop.org/")
+    (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
@@ -543,7 +539,8 @@ MATE-Media is a fork of GNOME-Media.")
      `(#:configure-flags
        (list (string-append "--with-zoneinfo-dir="
                             (assoc-ref %build-inputs "tzdata")
-                            "/share/zoneinfo"))
+                            "/share/zoneinfo")
+             "--with-in-process-applets=all")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-timezone-path
@@ -590,7 +587,7 @@ MATE-Media is a fork of GNOME-Media.")
        ("mate-menus" ,mate-menus)
        ("libsm" ,libsm)
        ("mate-desktop" ,mate-desktop)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "Panel for MATE")
     (description
      "Mate-panel contains the MATE panel, the libmate-panel-applet library and
@@ -614,12 +611,24 @@ infamous 'Wanda the Fish'.")
          "0mljqcx7k8p27854zm7qzzn8ca6hs7hva9p43hp4p507z52caqmm"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     `(#:tests? #f))
+     '(#:configure-flags '("--disable-update-mimedb")
+       #:tests? #f ; tests fail even with display set
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; 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")
-       ("gobject-introspection" ,gobject-introspection)))
+       ("gobject-introspection" ,gobject-introspection)
+       ("xorg-server" ,xorg-server))) ; display for the tests
     (inputs
      `(("gtk+" ,gtk+)
        ("exempi" ,exempi)
@@ -630,7 +639,7 @@ infamous 'Wanda the Fish'.")
        ("libxml2" ,libxml2)
        ("mate-desktop" ,mate-desktop)
        ("startup-notification" ,startup-notification)))
-    (home-page "http://mate-desktop.org/")
+    (home-page "https://mate-desktop.org/")
     (synopsis "File manager for the MATE desktop")
     (description
      "Caja is the official file manager for the MATE desktop.
@@ -657,6 +666,8 @@ Caja is a fork of Nautilus.")
         (base32
          "0flnn0h8f5aqyccwrlv7qxchvr3kqmlfdga6wq28d55zkpv5m7dl"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-update-mimedb")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
@@ -676,7 +687,6 @@ Caja is a fork of Nautilus.")
        ("dbus-glib" ,dbus-glib)
        ("libxml2" ,libxml2)
        ("dconf" ,dconf)
-       ("librsvg" ,librsvg)
        ("libmatekbd" ,libmatekbd)
        ("mate-desktop" ,mate-desktop)
        ("caja" ,caja)
@@ -688,7 +698,6 @@ Caja is a fork of Nautilus.")
        ("dbus" ,dbus)
        ("xmodmap" ,xmodmap)
        ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
        ("gtk+" ,gtk+)
        ("libxcursor" ,libxcursor)
        ("libx11" ,libx11)
@@ -701,7 +710,10 @@ Caja is a fork of Nautilus.")
        ("libxklavier" ,libxklavier)
        ("marco" ,marco)
        ("pango" ,pango)))
-    (home-page "http://mate-desktop.org/")
+    (propagated-inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf) ; 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
@@ -753,7 +765,7 @@ of various aspects of your desktop.")
        ("xproto" ,xproto)
        ("libcanberra" ,libcanberra)
        ("mate-desktop" ,mate-desktop)))
-    (home-page "http://mate-desktop.org/")
+    (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
@@ -769,33 +781,42 @@ for use with MATE or as a standalone window manager.")
     (version (package-version marco))
     (source #f)
     (build-system trivial-build-system)
-    (arguments '(#:builder (mkdir %output)))
-    (propagated-inputs
+    (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
-     `(("mate-icon-theme"           ,mate-icon-theme)
-       ("font-cantarell"            ,font-cantarell)
-       ("at-spi2-core"              ,at-spi2-core)
-       ("dbus"                      ,dbus)
+     `(("at-spi2-core"              ,at-spi2-core)
+       ("caja"                      ,caja)
        ("dconf"                     ,dconf)
+       ("dbus"                      ,dbus)
        ("desktop-file-utils"        ,desktop-file-utils)
+       ("font-cantarell"            ,font-cantarell)
        ("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)
+       ("gvfs"                      ,gvfs)
        ("libmatekbd"                ,libmatekbd)
-       ("mate-menu"                 ,mate-menus)
-       ("libmateweather"            ,libmateweather)
        ("libmatemixer"              ,libmatemixer)
-       ("mate-panel"                ,mate-panel)
+       ("libmateweather"            ,libmateweather)
+       ("marco"                     ,marco)
+       ("mate-applets"              ,mate-applets)
        ("mate-control-center"       ,mate-control-center)
+       ("mate-desktop"              ,mate-desktop)
+       ("mate-icon-theme"           ,mate-icon-theme)
        ("mate-media"                ,mate-media)
-       ("mate-applets"              ,mate-applets)
-       ("gvfs"                      ,gvfs)
-       ("caja"                      ,caja)
-       ("marco"                     ,marco)
+       ("mate-menu"                 ,mate-menus)
+       ("mate-panel"                ,mate-panel)
+       ("mate-session-manager"      ,mate-session-manager)
+       ("mate-settings-daemon"      ,mate-settings-daemon)
+       ("mate-terminal"             ,mate-terminal)
+       ("mate-themes"               ,mate-themes)
        ("pinentry-gnome3"           ,pinentry-gnome3)
        ("pulseaudio"                ,pulseaudio)
        ("shared-mime-info"          ,shared-mime-info)