[bug#38679] gnu: add geary.
diff mbox series

Message ID VI1PR0202MB350387069B2149803894ED67FD520@VI1PR0202MB3503.eurprd02.prod.outlook.com
State New
Headers show
Series
  • [bug#38679] gnu: add geary.
Related show

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Kasperi Keränen Dec. 19, 2019, 9:15 p.m. UTC

Comments

Brett Gilio Dec. 21, 2019, 4:53 a.m. UTC | #1
Hi Kasperi,

I have a few helpful criticisms of your patch, if you do not mind! :)

Kasperi Keränen <kasperi.keranen@outlook.com> writes:

> From 3d3ff29798e203f6cf7861a3ecfbb3fd5834c10b Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Kasperi=20Ker=C3=A4nen?= <kasperi.keranen@outlook.com>
> Date: Thu, 19 Dec 2019 19:17:38 +0100
> Subject: [PATCH] gnu: add geary.

Usually, when using the GNU Emacs yasnippet form from /guix/etc/snippets
the "add" is capitalized like so, "gnu: Add geary."

>
> * gnu/packages/gnome.scm (geary): New variable.
> ---
>  gnu/packages/gnome.scm | 63 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 0a9087eaff..7b3c337d60 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -168,6 +168,7 @@
>    #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg)
>    #:use-module (gnu packages xorg)
> +  #:use-module (gnu packages libunwind)

Would you mind adding this in its alphabetical order?

>    #:use-module (gnu artwork)
>    #:use-module (guix build-system cargo)
>    #:use-module (guix build-system cmake)
> @@ -8684,6 +8685,68 @@ 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? #f ;; Client tests require a wayland/X11
> display.

A single ; comment will suffice here since it exists on the same line. I
also wonder if it is possible to spoof that display variable in the
tests or just remove that singular test? I might look into this if I
have some time. Maybe mark this as a TODO:?

> +                 #: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)))))
> +    (native-inputs
> +     `(("glib:bin" ,glib "bin")
> +       ("gettext" ,gettext-minimal)
> +       ("itstool" ,itstool)
> +       ("pkg-config" ,pkg-config)
> +       ("cmake" ,cmake)))
> +    (inputs
> +     `(("vala" ,vala)
> +       ("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")

Some of my other comments apply to other sections, name about the single
; for same-line comments. I will give this a build and test when I get a
moment. In the mean time, I would also look over some of the inputs some
more, because I wonder if things like "vala" should be native-inputs
instead? Just a thought, I could be wrong.

If you can reroll your patch for a V2 and send it to this tracker issue,
I would appreciate it :).
elaexuotee--- via Guix-patches via Jan. 12, 2020, 6:43 a.m. UTC | #2
Kasperi,

Thank you for packaging Geary!  Unfortunately I can't test it 
right now, but here are two general points to help you apply 
Brett's suggestions.

Brett Gilio 写道:
>> +    (arguments `(#:tests? #f ;; Client tests require a 
>> wayland/X11
>> display.
>
> A single ; comment will suffice here since it exists on the same 
> line. I
> also wonder if it is possible to spoof that display variable in 
> the
> tests or just remove that singular test? I might look into this 
> if I
> have some time. Maybe mark this as a TODO:?

You can start a ‘virtual frame buffer’ (Xvfb) X server in the 
build environment:

  (add-before 'check 'start-xserver
   (lambda* (#:key inputs #:allow-other-keys)
      (let ((xorg-server (assoc-ref inputs "xorg-server"))
           (display ":1"))
        (setenv "DISPLAY" display)
        (system (format #f "~a/bin/Xvfb ~a &" xorg-server 
        display))
        #t)))

You'll find many other examples with ‘grep Xvfb 
gnu/packages/*scm’.

> In the mean time, I would also look over some of the inputs some
> more, because I wonder if things like "vala" should be 
> native-inputs
> instead? Just a thought, I could be wrong.

A rule of thumb is that inputs missing from

  $ guix gc --references $(guix build geary)

should probably be native.  It's likely that vala will be so 
missing.

Kind regards,

T G-R
Arun Isaac May 29, 2020, 9:26 p.m. UTC | #3
Hi,

It looks like geary has already been packaged. Sorry for the duplicated
effort! :-(

Regards,
Arun

Patch
diff mbox series

From 3d3ff29798e203f6cf7861a3ecfbb3fd5834c10b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kasperi=20Ker=C3=A4nen?= <kasperi.keranen@outlook.com>
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 | 63 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0a9087eaff..7b3c337d60 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -168,6 +168,7 @@ 
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu artwork)
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
@@ -8684,6 +8685,68 @@  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? #f ;; Client tests require a wayland/X11 display.
+                 #: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)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gettext" ,gettext-minimal)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("cmake" ,cmake)))
+    (inputs
+     `(("vala" ,vala)
+       ("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