Subject: [bug#60369] [PATCH] gnu: Add eweouz.

From: Simon Josefsson <[email-masked]>
Date: Tue, 27 Dec 2022 23:47:13 +0100

Hi.  This adds a GNOME Evolution Data Server interface to Emacs.  Test
it by adding a contact to the EDS address book (e.g., through GNOME
Contacts) and then do 'emacs -q' and M-x eweouz RET and search for parts
of the name of the contact.

While the package builds and works for me, I would appreciate a review
so I can learn -- I wrote this without understanding anything of what I
was doing, but merely pattern-matched things against other existing
packages that looked relevant.

/Simon
From 52b0ad49ef0436346f53bebee4690961fba9cf90 Mon Sep 17 00:00:00 2001
From: Simon Josefsson <[email-masked]>
Date: Tue, 27 Dec 2022 23:38:33 +0100
Subject: [PATCH] gnu: Add eweouz.

* gnu/packages/emacs-xyz.scm (eweouz): New variable.
---
 gnu/packages/emacs-xyz.scm | 66 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index fb4c9b70f9..adb0689df1 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -119,6 +119,7 @@
 ;;; Copyright © 2022 Nicolas Graves <[email-masked]>
 ;;; Copyright © 2022 Thiago Jung Bauermann <[email-masked]>
 ;;; Copyright © 2022 Joeke de Graaf <[email-masked]>
+;;; Copyright © 2022 Simon Josefsson <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3053,6 +3054,71 @@ (define-public emacs-bbdb-vcard
 (BBDB).  Version 2.1 vCards are converted into version 3.0 on import.")
       (license license:gpl2+))))
 
+(define-public eweouz
+  (package
+    (name "eweouz")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       ;; README's git://git.err.no/eweouz is gone
+       (uri (string-append "mirror://debian/pool/main/e/eweouz/"
+                           "eweouz_" version ".tar.xz"))
+       (file-name (string-append name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "192zl3dyphhvcrvn65bqsrc4h6zks8b747lp6pqbpbmsqy4g4mr8"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:modules ((guix build gnu-build-system)
+                  ((guix build emacs-build-system) #:prefix emacs:)
+                  (guix build utils)
+                  (guix build emacs-utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-build-system)
+                           (guix build emacs-utils))
+       #:configure-flags
+       (list (string-append "--with-lispdir="
+                            (emacs:elpa-directory %output)))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _ (invoke "autoreconf" "-vif") #t))
+         (add-after 'compress-documentation 'enter-lisp-dir
+           (lambda _ (chdir "lisp/")))
+         (add-after 'enter-lisp-dir 'emacs-patch-variables
+           (lambda* (#:key outputs #:allow-other-keys)
+             (make-file-writable "eweouz.el")
+             (substitute* "eweouz.el"
+               (("\\(setq eweouz-helper-dirs '\\(")
+                (format #f "(setq eweouz-helper-dirs '(~s "
+                        (string-append (assoc-ref outputs "out")
+                                       "/libexec/eweouz"))))))
+         (add-after 'emacs-patch-variables 'emacs-expand-load-path
+           (assoc-ref emacs:%standard-phases 'expand-load-path))
+         (add-after 'emacs-expand-load-path 'emacs-add-install-to-native-load-path
+           (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path))
+         (add-after 'emacs-add-install-to-native-load-path 'emacs-install
+           (assoc-ref emacs:%standard-phases 'install))
+         (add-after 'emacs-install 'emacs-build
+           (assoc-ref emacs:%standard-phases 'build))
+         (add-after 'emacs-install 'emacs-make-autoloads
+           (assoc-ref emacs:%standard-phases 'make-autoloads)))))
+    (native-inputs
+     (list autoconf
+           automake
+           emacs-minimal
+           pkg-config))
+    (inputs
+     (list evolution-data-server))
+    (home-page "https://tracker.debian.org/pkg/eweouz")
+    (synopsis "Emacs interface to Evolution Data Server")
+    (description
+     "eweouz is an tool for looking up contacts from Evolution Data Server
+from Emacs. It is similar to BBDB, except much, much simpler.")
+    (license license:gpl2)))
+
 (define-public emacs-beacon
   (package
     (name "emacs-beacon")
-- 
2.38.1