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

From: Simon Josefsson <[email-masked]>
Date: Fri, 05 May 2023 11:11:50 +0200

Nicolas Goaziou <[email-masked]> writes:

> Hello,
> Thank you.

Hi Nicolas.  Thank you for your feedback!

>> +    (arguments
>
> You should use G-expressions from here:
>
> (list
>  #:modules '(...)
>  #:imported-modules `(...)
>  #:configure-flags
>  #~(list (string-append ... (emacs:elpa-directory #$output))))
>  #:phases
>  #~(modify-phases ...)

Fixed.

>> +         (add-after 'enter-lisp-dir 'emacs-patch-variables
>> +           (lambda* (#:key outputs #:allow-other-keys)
>
> This is not necessary: lambda _

I don't understand what you mean.  There is no lambda _ above -- did you
mean this snippet:

          (replace 'bootstrap
            (lambda _ (invoke "autoreconf" "-vif")))
          (add-after 'compress-documentation 'enter-lisp-dir
            (lambda _ (chdir "lisp/")))

If so, how to improve that?

>> +             (make-file-writable "eweouz.el")
>
> I think you can remove this line.

Fixed.  I got permission errors earlier, but it seems to have gone away.

>
>> +             (substitute* "eweouz.el"
>> +               (("\\(setq eweouz-helper-dirs '\\(")
>> +                (format #f "(setq eweouz-helper-dirs '(~s "
>> +                        (string-append (assoc-ref outputs "out")
>> +                                       "/libexec/eweouz"))))))
>
> You should use emacs:emacs-substitute-variables here.

I used emacs-substitute-sexp now.  It seems emacs-substitute-variables
only works on def*, and here it was setq.

>> +     "eweouz is an tool for looking up contacts from Evolution Data
>> Server
>
> Typo and capitalization: Eweouz is a tool...
>
>> +from Emacs. It is similar to BBDB, except much, much simpler.")
>
> You should separate sentences with two spaces.

Fixed.

>> +    ;; Most things are GPLv2-only although lisp/vcard.el is GPLv2+.
>> +    (license (list license:gpl2 license:gpl2+))))
>
> Could you send an updated patch?

Please see below!

/Simon
From 38e0cccb53eec629d05b0cbd469411907a4e39c7 Mon Sep 17 00:00:00 2001
Message-Id: <[email-masked]>
From: Simon Josefsson <[email-masked]>
Date: Fri, 5 May 2023 11:04:41 +0200
Subject: [PATCH v3] gnu: Add eweouz.

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

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index f9a14a5c9c..77432409eb 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -128,6 +128,7 @@
 ;;; Copyright © 2023 Juliana Sims <[email-masked]>
 ;;; Copyright © 2023 Evgeny Pisemsky <[email-masked]>
 ;;; Copyright © 2023 Gabriel Wicki <[email-masked]>
+;;; Copyright © 2022-2023 Simon Josefsson <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3359,6 +3360,70 @@ (define-public emacs-bbdb-vcard
 (BBDB).  Version 2.1 vCards are converted into version 3.0 on import.")
       (license license:gpl2+))))
 
+(define-public emacs-eweouz
+  (package
+    (name "emacs-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
+     (list
+      #: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")))
+          (add-after 'compress-documentation 'enter-lisp-dir
+            (lambda _ (chdir "lisp/")))
+          (add-after 'enter-lisp-dir 'emacs-patch-variables
+            (lambda* (#:key outputs #:allow-other-keys)
+              (emacs-substitute-sexps "eweouz.el"
+                ("eweouz-helper-dirs"
+                 `(list ,(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.")
+    ;; Most things are GPLv2-only although lisp/vcard.el is GPLv2+.
+    (license (list license:gpl2 license:gpl2+))))
+
 (define-public emacs-beacon
   (package
     (name "emacs-beacon")

base-commit: cf44fb964e6216b153ab898002f2f2ab889532ce
-- 
2.39.2