Subject: [bug#38679] [PATCH] gnu: add geary.

From: Kasperi Keränen <[email-masked]>
Date: Fri, 10 Jan 2020 18:52:57 +0000

I've enabled the tests and made them pass.

There's still a small problem with icons not loading when entering the 
online accounts section of GNOME settings from geary, but given that 
the same happens with all applications I don't think anyone has a fix 
for it.

From c7aada574a734437747fa81c82e3df3487b71222 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kasperi=20Ker=C3=A4nen?= <[email-masked]>
Date: Thu, 19 Dec 2019 19:17:38 +0100
Subject: [PATCH] gnu: Add geary.

* gnu/packages/gnome.scm (geary): New variable.
---
 gnu/packages/gnome.scm | 83 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0e18c2ec06..403b5e0a89 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -117,6 +117,7 @@
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libunistring)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lirc)
@@ -8942,6 +8943,88 @@ functionality.")
                    license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
                    license:lgpl2.1+))))  ; smime/lib/*
 
+(define-public geary
+  (package
+    (name "geary")
+    (version "3.32.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/geary/"
+                                  (version-major+minor version) "/"
+                                  "geary-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0sg53zq81v28hdqiy5d048skwfgsa8ck0z7ywsagdh7iaqin68gq"))))
+    (build-system meson-build-system)
+    (arguments `(#:tests? #t
+                 #:glib-or-gtk? #t
+                 #:phases
+                 (modify-phases %standard-phases
+                   (add-after 'unpack 'skip-gtk-update-icon-cache
+                     (lambda _
+                       (substitute* "build-aux/post_install.py"
+                         (("gtk-update-icon-cache") "true"))
+                       #t))
+                   (add-after 'unpack 'change-webkit-process-model
+                     ;; Since webkitgtk 2.26 programs no longer have a choise in
+                     ;; this but using the depreciated value will fail the test
+                     ;; suite. Hope this is temporary and can be removed as soon
+                     ;; as GNOME updates.
+                     (lambda _
+                       (substitute* "src/client/components/client-web-view.vala"
+                         (("SHARED_SECONDARY_PROCESS")
+                          "MULTIPLE_SECONDARY_PROCESSES"))))
+                   (add-before 'check 'start-xserver
+                     ;; Client tests require a Wayland/X11 display.
+                     (lambda* (#:key inputs #:allow-other-keys)
+                       (let ((xorg-server (assoc-ref inputs "xorg-server"))
+                             (display ":99"))
+                         (setenv "HOME" (getcwd))
+                         (setenv "DISPLAY" display)
+                         (zero? (system (format #f "~a/bin/Xvfb ~a &"
+                                                xorg-server display)))))))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gettext" ,gettext-minimal)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("cmake" ,cmake)
+       ("vala" ,vala)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("sqlite" ,sqlite)
+       ("webkitgtk" ,webkitgtk)
+       ("gtk+" ,gtk+)
+       ("glib" ,glib)
+       ("gmime" ,gmime-2.6)
+       ("appstream-glib" ,appstream-glib)
+       ("libarchive" ,libarchive)
+       ("folks" ,folks)
+       ("libgee" ,libgee)
+       ("enchant" ,enchant)
+       ("gcr" ,gcr)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("gspell" ,gspell)
+       ("iso-codes" ,iso-codes)
+       ("json-glib" ,json-glib)
+       ;; ("libpeas" ,libpeas) ; Required by a newer version of geary
+       ("libnotify" ,libnotify)
+       ("libsecret" ,libsecret)
+       ("libunwind" ,libunwind)
+       ("libcanberra" ,libcanberra)
+       ("glib-networking" ,glib-networking)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+    (home-page "https://gitlab.gnome.org/GNOME/geary")
+    (synopsis "An email application built around conversations")
+    (description "Geary is an email application built around conversations, for
+the GNOME 3 desktop.  It allows you to read, find and send email with a
+straightforward, modern interface.")
+    (license (list license:lgpl2.1
+                   license:cc-by3.0      ;
+                   license:cc-by-sa3.0   ; icons
+                   license:public-domain ;
+                   license:bsd-2))))     ; snowball
+
 (define-public gthumb
   (package
     (name "gthumb")
-- 
2.24.1