unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alex Kost <alezost@gmail.com>
To: Thomas Danckaert <post@thomasdanckaert.be>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH] gnu: Add emacs-mew.
Date: Wed, 01 Feb 2017 12:34:34 +0300	[thread overview]
Message-ID: <87k29ai79x.fsf@gmail.com> (raw)
In-Reply-To: <20170201.081809.767476594793648240.post@thomasdanckaert.be> (Thomas Danckaert's message of "Wed, 01 Feb 2017 08:18:09 +0100 (CET)")

[-- Attachment #1: Type: text/plain, Size: 4331 bytes --]

Thomas Danckaert (2017-02-01 08:18 +0100) wrote:

>> This could happen if it adds itself to a sub-directory of
>> "/share/emacs/site-lisp".  In 'magit' package, for example, it is
>> fixed
>> by using "lispdir" makeflag.  Since this package uses a full GNU Build
>> System, there should probably be "--with-lispdir" configure flag.
>
> Indeed, done!
>
>> BTW, I can't apply this patch on the current master.
>
> I had edited the patch file manually. Seems like this sometimes works,
> sometimes doesn't.

Ouch, I think git-formatted patches are not intended to be edited
manually :-)

> I've attached an updated patch, which also fixes some issues with paths
> to various icons.

Thanks!  See the comments below.

> From 93118dba6e551fb66846a2b69a7bec560795ba71 Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <thomas.danckaert@gmail.com>
> Date: Tue, 24 Jan 2017 09:41:42 +0100
> Subject: [PATCH] gnu: Add emacs-mew.
>
> * gnu/packages/mail.scm (emacs-mew): New variable.
> ---
>  gnu/packages/mail.scm | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 2318ae9b6..d985419be 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -20,6 +20,7 @@
>  ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
>  ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
>  ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
> +;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -79,6 +80,7 @@
>    #:use-module (gnu packages flex)
>    #:use-module (gnu packages gdb)
>    #:use-module (gnu packages man)
> +  #:use-module (gnu packages ruby)
>    #:use-module (gnu packages samba)
>    #:use-module (gnu packages screen)
>    #:use-module (gnu packages tls)
> @@ -377,6 +379,40 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
>  repository and Maildir/IMAP as LOCAL repository.")
>      (license gpl2+)))
>  
> +(define-public emacs-mew
> +  (package
> +  (name "emacs-mew")
> +  (version "6.7")
> +  (source
> +    (origin
> +      (method url-fetch)
> +      (uri (string-append "http://mew.org/Release/mew-" version ".tar.gz"))
> +      (sha256
> +       (base32
> +        "03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"))))
> +  (inputs
> +   `(("emacs" ,emacs-minimal)))
> +  (propagated-inputs
> +   `(("ruby-sqlite3" ,ruby-sqlite3) ; optionally uses an sqlite database of messages
> +     ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
> +  (build-system gnu-build-system)
> +  (arguments
> +   `(#:configure-flags (list
> +                        (string-append "--with-elispdir=" (assoc-ref %outputs "out")
> +                                       "/share/emacs/site-lisp/guix.d/mew"))
> +     #:phases (modify-phases %standard-phases
> +                (add-after 'configure 'patch-mew-icon-path ; ensure "Mew-icon.png" is found.
> +                           (lambda _
> +                             (substitute* "mew-key.el"
> +                               (("\\(expand-file-name \"etc\" path\\)") "path")))))

Hm, does it work for you?  I looked at "mew-key.el" but the code wasn't
patched, probably something with the regexp.  Anyway it is better to
patch 'mew-icon-directory' variable instead.

Also I see that by default it puts image files into
"share/emacs/site-lisp/mew/etc".  I don't think this is a good place, I
would rather move them to "share/mew" as most packages do with various
additional files.

> +     #:tests? #f))
> +  (home-page "http://www.mew.org")
> +  (synopsis "Emacs e-mail client")
> +  (description "Mew (Messaging in the Emacs World) is a user interface
> +for text messages, multimedia messages (MIME), news articles and
> +security functionality including PGP, S/MIME, SSH, and SSL.")
> +  (license bsd-3)))
> +
>  (define-public mu
>    (package
>      (name "mu")

Also it is good to generate "mew-autoloads.el" file, so that "M-x mew"
command will be available for users by default.  I'm attaching a
modified patch to address what I mentioned.  Could you test it to make
sure that mew works as expected with it?


[-- Attachment #2: 0001-gnu-Add-emacs-mew.patch --]
[-- Type: text/x-patch, Size: 3593 bytes --]

From 2abd51a12aeb136ddb014ec8812601b52c6ca3eb Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.danckaert@gmail.com>
Date: Tue, 24 Jan 2017 09:41:42 +0100
Subject: [PATCH] gnu: Add emacs-mew.

* gnu/packages/mail.scm (emacs-mew): New variable.

Co-authored-by: Alex Kost <alezost@gmail.com>
---
 gnu/packages/mail.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index b17af40..69c2467 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
   #:use-module (gnu packages tls)
@@ -377,6 +379,55 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
     (license gpl2+)))
 
+(define-public emacs-mew
+  (package
+    (name "emacs-mew")
+    (version "6.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://mew.org/Release/mew-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"))))
+    (inputs
+     `(("emacs" ,emacs-minimal)))
+    (propagated-inputs
+     `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
+       ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+    (build-system gnu-build-system)
+    (arguments
+     (let ((elisp-dir "/share/emacs/site-lisp/guix.d/mew")
+           (icon-dir  "/share/mew"))
+       `(#:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (guix build emacs-utils))
+         #:imported-modules (,@%gnu-build-system-modules
+                             (guix build emacs-utils))
+         #:configure-flags
+         (list (string-append "--with-elispdir=" %output ,elisp-dir)
+               (string-append "--with-etcdir=" %output ,icon-dir))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'configure 'patch-mew-icon-directory
+             (lambda* (#:key outputs #:allow-other-keys)
+               (emacs-substitute-variables "mew-key.el"
+                 ("mew-icon-directory"
+                  (string-append (assoc-ref outputs "out") ,icon-dir)))
+               #t))
+           (add-after 'install 'generate-autoloads
+             (lambda* (#:key outputs #:allow-other-keys)
+               (emacs-generate-autoloads
+                "mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
+               #t)))
+         #:tests? #f)))
+    (home-page "http://www.mew.org")
+    (synopsis "Emacs e-mail client")
+    (description "Mew (Messaging in the Emacs World) is a user interface
+for text messages, multimedia messages (MIME), news articles and
+security functionality including PGP, S/MIME, SSH, and SSL.")
+    (license bsd-3)))
+
 (define-public mu
   (package
     (name "mu")
-- 
2.10.2


  reply	other threads:[~2017-02-01  9:34 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-24 17:01 [PATCH] gnu: Add emacs-mew Thomas Danckaert
2017-01-24 20:08 ` Thomas Danckaert
2017-01-25  9:29   ` Alex Kost
2017-02-01  7:18     ` Thomas Danckaert
2017-02-01  9:34       ` Alex Kost [this message]
2017-02-01 10:56         ` Thomas Danckaert
2017-02-02  8:56           ` Alex Kost
2017-02-02 18:41             ` Thomas Danckaert
2017-02-03  9:39               ` Alex Kost
2017-02-03 12:22                 ` Thomas Danckaert
2017-02-03 19:54                   ` Alex Kost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k29ai79x.fsf@gmail.com \
    --to=alezost@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=post@thomasdanckaert.be \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).