Simon Josefsson wrote 2 years ago
(address . guix-patches@gnu.org)
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 <simon@josefsson.org>
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(+)
Toggle diff (86 lines)
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 <ngraves@ngraves.fr>
;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com>
;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
+;;; Copyright © 2022 Simon Josefsson <simon@josefsson.org>
;;;
;;; 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
-----BEGIN PGP SIGNATURE-----
iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY6t18RQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFoqrmAPsF8U5PZ/etuWm9EKDJZ/8JGa8mCSsr
jZhpxqSqVsHlwAD/UwriKvfe9MkMRB7J2HlZFZ6tU9eLVrickE5Kn0Fi4AM=
=PH9t
-----END PGP SIGNATURE-----