diff mbox series

[bug#38347] gnome-contacts

Message ID 225ae64271283846a65401032635ec60731f7277.camel@disroot.org
State Accepted
Headers show
Series [bug#38347] gnome-contacts | expand

Commit Message

Raghav Gururajan Nov. 23, 2019, 4:32 p.m. UTC
Hello Guix!

Please find the attached file containing patch to add gnome-contacts.

Thank you!

Regards,
RG.

Comments

pjals--- via Guix-patches via Nov. 23, 2019, 6:51 p.m. UTC | #1
Raghav,

Raghav Gururajan 写道:
> Please find the attached file containing patch to add 
> gnome-contacts.

Thank you!  Congratulations on your first patch, and may there be 
many more.

I was going to fix the points below myself, but then they 
multiplied and hey, I can always say it's a good lesson for you, 
right?  Just send the result to this thread with ‘v2’ clearly in 
the subject line.

* Using ‘name’ in source URIs is harmless but also completely 
  useless.  Just use:

    (uri (string-append "mirror://gnome/sources/gnome-contacts/"
                        (version-major+minor version) "/"
                        "gnome-contacts-" version ".tar.xz"))

* Could you explain *why* generate-vapis needs to be done 
  manually?  For a mostly non-GNOMEhead like me, it's just black 
  magic.

* Nitpick: the ‘`’ of `(#:phases should fall under the ‘(’ of 
  (arguments:

    (arguments
     `(#:phases

  You can use C-M-q in emacs or run etc/indent-code.el manually to 
  indent the code for you.

* You need to move inputs that appear in ‘guix gc --references 
  /gnu/store/…gnome-contacts…’ from (native-inputs) to (inputs).

* Fix ‘dockbook-xsl’ typo.

* Since you're rewriting most *inputs anyway, please order them 
  alphabetically.

* Synopses don't need to include the name of the programme or a 
  leading article (‘a’):

    (synopsis "GNOME's integrated address book")

* The description is far too short, and just not very relevant to 
  me.

  I took a look at the README; what about:

    (description
     "Contacts is GNOME's integrated address book.  It organizes 
     contact                                         
information from all your online and offline sources, and provides 
a central                                     
place to:                                                                                                        
@enumerate                                                                                                       
@item search for and view contacts,                                                                              
@item edit contact details and make new contacts,                                                                
@item integrate with online address books,                                                                       
@item automatically link contacts from different online sources.                                                 
@end enumerate\n")

* Add ‘license:’ prefix to gpl2 (without it, Guix won't even 
  work).

* A randomly chosen source file 
  (https://gitlab.gnome.org/GNOME/gnome-contacts/blob/master/src/cc-crop-area.c) 
  says ‘or any later version’.  This makes the licence gpl2+, not 
  gpl2 (-only), unless there are files that lack this wording. 
  Could you check?

                                 * * *

I'm happy to hear that you have more patches planned.  Please 
check them for similar points and send them to guix-patches at 
gnu.org.

Thanks again!

T G-R
diff mbox series

Patch

From 1ea14a09d76e7be1eda9282dafb6ea57b18eae74 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 23 Nov 2019 11:11:29 -0500
Subject: [PATCH] Add gnome-contacts.

---
 gnu/packages/gnome.scm | 51 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cd881b5b87..bbec7eabca 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -42,6 +42,7 @@ 
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
+;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -468,6 +469,56 @@  can be used to configure a source directory checked out from Git and some
 commonly used macros.")
     (license license:gpl2+)))
 
+(define-public gnome-contacts
+  (package
+    (name "gnome-contacts")
+    (version "3.30.2")
+    (source (origin
+	      (method url-fetch)
+	      (uri (string-append "mirror://gnome/sources/" name "/"
+				  (version-major+minor version) "/"
+				  name "-" version ".tar.xz"))
+	      (sha256
+	       (base32 
+		"1b0pkdwz9yqcv82zzdf76rs2w3wa5zli8pka09wnahikx1ykk43h"))))
+    (build-system meson-build-system)
+    (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'generate-vapis
+            (lambda* (#:key inputs #:allow-other-keys)
+              (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
+                      "--library=goa-1.0"
+                      (string-append (assoc-ref inputs "gnome-online-accounts:lib")
+                                     "/share/gir-1.0/Goa-1.0.gir"))
+              #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("libgee" ,libgee)
+       ("evolution-data-server" ,evolution-data-server)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+       ("cheese" ,cheese)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("telepathy-glib" ,telepathy-glib)
+       ("gettext" ,gettext-minimal)
+       ("libxslt" ,libxslt)
+       ("docbook-xml" ,docbook-xml)
+       ("dockbook-xsl" ,docbook-xsl)
+       ("gtk+" ,gtk+)
+       ("gtk+:bin" ,gtk+ "bin")))
+    (propagated-inputs
+     `(("folks", folks)
+       ("telepathy-mission-control" ,telepathy-mission-control)))
+    (synopsis "Contacts is GNOME's integrated address book.")
+    (description "It is written in Vala and uses 
+		 libfolks (also written in Vala) and Evolution Data Server.")
+    (home-page "https://wiki.gnome.org/Apps/Contacts")
+    (license gpl2))
+
 (define-public gnome-desktop
   (package
     (name "gnome-desktop")
-- 
2.24.0