all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [PATCH 1/2] gnu: Add libesmtp.
@ 2015-11-03 14:54 Andy Wingo
  2015-11-03 14:54 ` [PATCH 2/2] gnu: Add esmtp Andy Wingo
  0 siblings, 1 reply; 5+ messages in thread
From: Andy Wingo @ 2015-11-03 14:54 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/mail.scm (libesmtp): New public variable.
---
 gnu/packages/mail.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 25407b8..9a70341 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -931,4 +931,28 @@ Email::Send library.")
 format and headers.")
     (license (package-license perl))))
 
+(define-public libesmtp
+  (package
+    (name "libesmtp")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32
+         "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("openssl" ,openssl)))
+    (home-page "http://www.stafford.uklinux.net/libesmtp/")
+    (synopsis "Library for sending mail via remote hosts using SMTP")
+    (description "libESMTP is an SMTP client which manages posting (or
+submission of) electronic mail via a preconfigured Mail Transport Agent (MTA).
+It may be used as part of a Mail User Agent (MUA) or other program that must
+be able to post electronic mail where mail functionality may not be that
+program's primary purpose.")
+    (license (list lgpl2.1+ gpl2+))))
+
 ;;; mail.scm ends here
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] gnu: Add esmtp.
  2015-11-03 14:54 [PATCH 1/2] gnu: Add libesmtp Andy Wingo
@ 2015-11-03 14:54 ` Andy Wingo
  2015-11-03 15:21   ` Thompson, David
  2015-11-03 15:32   ` Andy Wingo
  0 siblings, 2 replies; 5+ messages in thread
From: Andy Wingo @ 2015-11-03 14:54 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/mail.scm (esmtp): New public variable.
---
 gnu/packages/mail.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 9a70341..dfc8ec9 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
@@ -44,6 +45,7 @@
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
@@ -70,6 +72,7 @@
                           (expat . license:expat)))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
@@ -955,4 +958,41 @@ be able to post electronic mail where mail functionality may not be that
 program's primary purpose.")
     (license (list lgpl2.1+ gpl2+))))
 
+(define-public esmtp
+  (package
+    (name "esmtp")
+    (version "1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/andywingo/esmtp.git")
+             (commit "01bf9fc")))
+       (sha256
+        (base32
+         "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2"))
+       (file-name (string-append name "-" version "-checkout"))))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-before
+                   'configure 'autoconf
+                   (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("libesmtp" ,libesmtp)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (home-page "http://www.stafford.uklinux.net/libesmtp/")
+    (synopsis "Relay-only mail transfer agent (MTA)")
+    (description "Esmtp is a simple relay-only mail transfer agent built using
+libESMTP.  It sends e-mail via a remote SMTP server using credentials from the
+user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
+page for more on configuration.  This package also provides minimal
+compatibility shims for the @command{sendmail}, @command{mailq}, and
+@command{newaliases} commands.")
+    (license gpl2+)))
+
 ;;; mail.scm ends here
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] gnu: Add esmtp.
  2015-11-03 14:54 ` [PATCH 2/2] gnu: Add esmtp Andy Wingo
@ 2015-11-03 15:21   ` Thompson, David
  2015-11-03 15:32   ` Andy Wingo
  1 sibling, 0 replies; 5+ messages in thread
From: Thompson, David @ 2015-11-03 15:21 UTC (permalink / raw)
  To: Andy Wingo; +Cc: guix-devel

On Tue, Nov 3, 2015 at 9:54 AM, Andy Wingo <wingo@igalia.com> wrote:
> * gnu/packages/mail.scm (esmtp): New public variable.
> ---
>  gnu/packages/mail.scm | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 9a70341..dfc8ec9 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -30,6 +30,7 @@
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages backup)
>    #:use-module (gnu packages bash)
> +  #:use-module (gnu packages bison)
>    #:use-module (gnu packages curl)
>    #:use-module (gnu packages cyrus-sasl)
>    #:use-module (gnu packages databases)
> @@ -44,6 +45,7 @@
>    #:use-module (gnu packages gsasl)
>    #:use-module (gnu packages gtk)
>    #:use-module (gnu packages guile)
> +  #:use-module (gnu packages flex)
>    #:use-module (gnu packages libcanberra)
>    #:use-module (gnu packages libidn)
>    #:use-module (gnu packages linux)
> @@ -70,6 +72,7 @@
>                            (expat . license:expat)))
>    #:use-module (guix packages)
>    #:use-module (guix download)
> +  #:use-module (guix git-download)
>    #:use-module (guix utils)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system perl)
> @@ -955,4 +958,41 @@ be able to post electronic mail where mail functionality may not be that
>  program's primary purpose.")
>      (license (list lgpl2.1+ gpl2+))))
>
> +(define-public esmtp
> +  (package
> +    (name "esmtp")
> +    (version "1.2")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/andywingo/esmtp.git")
> +             (commit "01bf9fc")))
> +       (sha256
> +        (base32
> +         "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2"))
> +       (file-name (string-append name "-" version "-checkout"))))
> +    (arguments
> +     `(#:phases (modify-phases %standard-phases
> +                  (add-before
> +                   'configure 'autoconf
> +                   (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("bison" ,bison)
> +       ("flex" ,flex)
> +       ("libesmtp" ,libesmtp)

Should this be a regular input instead?

> +       ("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("libtool" ,libtool)))
> +    (home-page "http://www.stafford.uklinux.net/libesmtp/")

Wrong home page?

> +    (synopsis "Relay-only mail transfer agent (MTA)")
> +    (description "Esmtp is a simple relay-only mail transfer agent built using
> +libESMTP.  It sends e-mail via a remote SMTP server using credentials from the
> +user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
> +page for more on configuration.  This package also provides minimal
> +compatibility shims for the @command{sendmail}, @command{mailq}, and
> +@command{newaliases} commands.")
> +    (license gpl2+)))
> +
>  ;;; mail.scm ends here
> --
> 2.5.0
>
>

LGTM sans those minor nits.

- Dave

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] gnu: Add esmtp.
  2015-11-03 14:54 ` [PATCH 2/2] gnu: Add esmtp Andy Wingo
  2015-11-03 15:21   ` Thompson, David
@ 2015-11-03 15:32   ` Andy Wingo
  2015-11-03 15:40     ` Andy Wingo
  1 sibling, 1 reply; 5+ messages in thread
From: Andy Wingo @ 2015-11-03 15:32 UTC (permalink / raw)
  To: guix-devel

On Tue 03 Nov 2015 14:54, Andy Wingo <wingo@igalia.com> writes:

> * gnu/packages/mail.scm (esmtp): New public variable.

This patch adds a "sendmail" that works, more or less.  In my ~/.esmtprc
I have:

hostname = your.smtp.server:port
username = user@email.com
password = 'yourpasswordhere'
starttls = required

That configures the esmtp MTA.  Then in Emacs you have these variables:

 (setq send-mail-function 'sendmail-send-it)
 (setq sendmail-program "/home/USER/.guix-profile/sbin/sendmail")

And install esmtp:

 guix package -i esmtp

So now C-x m works, cool.  You probably also want to install
git-send-email:

 guix package -i git:send-email

and configure it globally:

 git config --global sendemail.from "Your Name <your@email>"
 # Don't Cc: yourself on mails.
 git config --global sendemail.suppressfrom true
 git config sendemail.smtpserver $HOME/.guix-profile/sbin/sendmail
 git config envelopesender auto

And probably in your guix checkout you want to do:

 git config sendemail.to guix-devel@gnu.org

And if all that is set up... well then you should be able to

 git send-email 0001-foo.patch 0002-bar.patch

or

 git send-email origin/master..HEAD

or whatever.  Anyway you all have probably already hooked all of this up
but I was really struggling, and maybe this is useful to someone else.

Finally, the esmtp daemon will normally block on sending mails and never
queue anything.  If you want to queue, there's the esmtp-wrapper shell
script shipped with esmtp; simply do:

 ln -s ~/.guix-profile/bin/esmtp-wrapper ~/bin/sendmail
 ln -s ~/.guix-profile/bin/esmtp-wrapper ~/bin/mailq

It will queue to ~/.esmtp_queue.  This gives you the ability to send
mails while being offline.  Later to send them, you can "mailq -q".

OK, that's all!  At some point it would be nice to rewrite this hacky
pile of C and shell with a nice Guile relay-only MTA, but that day is
not today, at least for me :)

Cheers,

Andy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] gnu: Add esmtp.
  2015-11-03 15:32   ` Andy Wingo
@ 2015-11-03 15:40     ` Andy Wingo
  0 siblings, 0 replies; 5+ messages in thread
From: Andy Wingo @ 2015-11-03 15:40 UTC (permalink / raw)
  To: guix-devel

On Tue 03 Nov 2015 15:32, Andy Wingo <wingo@igalia.com> writes:

> If you want to queue, there's the esmtp-wrapper shell
> script shipped with esmtp; simply do:
>
>  ln -s ~/.guix-profile/bin/esmtp-wrapper ~/bin/sendmail
>  ln -s ~/.guix-profile/bin/esmtp-wrapper ~/bin/mailq

If you do this you will probably want to do this instead:

  ; in .emacs
  (setq sendmail-program "/home/USER/bin/sendmail")

  # at the shell
  git config sendemail.smtpserver $HOME/bin/sendmail

Andy

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-03 15:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-03 14:54 [PATCH 1/2] gnu: Add libesmtp Andy Wingo
2015-11-03 14:54 ` [PATCH 2/2] gnu: Add esmtp Andy Wingo
2015-11-03 15:21   ` Thompson, David
2015-11-03 15:32   ` Andy Wingo
2015-11-03 15:40     ` Andy Wingo

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.