Subject: Re: bug#26320: Alpine News and Mail client

From: ng0 <[email-masked]>
Date: Tue, 4 Apr 2017 14:34:47 +0000

Kei Kebreau transcribed 1.5K bytes:
> ng0 <[email-masked]> writes:
> 
> > Kei Kebreau transcribed 7.4K bytes:
> >> ng0 <[email-masked]> writes:
> >> 
> >> 
> >> Maybe this can be a bit more descriptive, but then again, the mutt mail
> >> client has a fairly modest description as well.
> >
> > I don't know. It's a text bsaed email and news client. It features its
> > own text editor (so it says) called pico. That's all I know. I don't
> > know wether the editor can be used on its own or just in application.
> >
> >
> 
> It can! Users can run "pico", GNU nano's predecessor, as a standalone
> program with this package installed.

quote README:

  In general "make install" should place alpine, pico and pilot, and
  their corresponding man pages, in the proper directory for your
  system.  As the remaining binaries are intended for specific uses or
  are a component of a larger package, their installation is typically
  done by hand.
endquote README

Include are not:

quote
 alpined
        The Web Alpine serveret that is the primary component of 
        Web Alpine 
 
 imapd  The IMAP daemon. If you want to run alpine in client/server
        mode, this is the daemon to run on the server. Installing this
        requires system privileges and modifications to /etc/services.
        See doc/tech-notes for more details.
 
 mtest  The test IMAP client, an absolutely minimal mail client, useful
        for debugging.
 mailutil 
        Utility for performing various operations on mailboxes,
        be they local or remote.
endquote

But in addition to the above listed included applications, "rpload" and
"rpdump" are included.

This is taken from the section "RESULTING EXECUTABLE".

Whoever wants to include more than the standard set of make install
needs to be a alpine user, I can't judge what's necessary, important,
too much, or whatever.

I have addressed the datestamp issue, but I needed to fix this in
#:phases, as a snippet did not accept what I ran, files weren't being
found.
>From c5298208448e0a46b6162801bbb17ae1d9e72a5c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Wed, 15 Feb 2017 03:20:38 +0000
Subject: [PATCH] gnu: Add alpine.

* gnu/packages/mail.scm (alpine): New variable.
---
 gnu/packages/mail.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 71 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 65fa9df54..463ed2850 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016 Lukas Gradl <[email-masked]>
 ;;; Copyright © 2016 Alex Kost <[email-masked]>
 ;;; Copyright © 2016 Troy Sankey <[email-masked]>
-;;; Copyright © 2016, 2017 <[email-masked]>
+;;; Copyright © 2016, 2017 ng0 <[email-masked]>
 ;;; Copyright © 2016 Clément Lassieur <[email-masked]>
 ;;; Copyright © 2016, 2017 Arun Isaac <[email-masked]>
 ;;; Copyright © 2016 John Darrington <[email-masked]>
@@ -40,6 +40,7 @@
 
 (define-module (gnu packages mail)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
@@ -63,6 +64,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
@@ -70,6 +72,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages openldap)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
@@ -85,6 +88,7 @@
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages web)
@@ -95,7 +99,7 @@
                 #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
                            non-copyleft (expat . license:expat) bsd-3
                            public-domain bsd-4 isc (openssl . license:openssl)
-                           bsd-2 x11-style agpl3))
+                           bsd-2 x11-style agpl3 asl2.0))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -2148,3 +2152,68 @@ Options can be specified in environment variables, configuration files, and
 the command line allowing maximum configurability and ease of use for
 operators and scripters.")
     (license gpl2+)))
+
+(define-public alpine
+  (package
+    (name "alpine")
+    (version "2.21")
+    (source
+     (origin
+       (method url-fetch)
+       ;; There are two versions: the plain continuation of Alpine without extra
+       ;; patches and the version which adds extra fixes. Every distro uses
+       ;; the patched version, and so do we to not break expectations.
+       ;; http://patches.freeiz.com/alpine/readme/README.patches
+       (uri (string-append "http://patches.freeiz.com/alpine/patches/alpine-"
+                           version "/alpine-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1k9hcfjywfk3mpsl71hjza3nk6icgf1b6xxzgx10kdzg5yci5x5m"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc")
+       #:configure-flags (list (string-append "--with-ssl-include-dir="
+                                              (assoc-ref %build-inputs "openssl")
+                                              "/include/openssl")
+                               (string-append "--with-ssl-dir="
+                                              (assoc-ref %build-inputs "openssl"))
+                               (string-append "--with-ssl-certs-dir="
+                                              "/etc/ssl/certs/")
+                               (string-append "--with-ssl-lib-dir="
+                                              (assoc-ref %build-inputs "openssl")
+                                              "/lib")
+                               (string-append "--with-interactive-spellcheck="
+                                              (assoc-ref %build-inputs "aspell")
+                                              "/bin/aspell"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-reproducible
+           (lambda _
+             ;; This removes time-dependent code to make alpine reproducible.
+             (substitute* "pico/blddate.c"
+               (("%02d-%s-%d") "1970-01-01"))
+             (substitute* (list "alpine/Makefile.in"
+                                "web/src/alpined.d/Makefile.in")
+               (("`date`") "1970-01-01"))
+             #t)))))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("openssl" ,openssl)
+       ("gnutls" ,gnutls)
+       ("openldap" ,openldap)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("mit-krb5" ,mit-krb5)
+       ("aspell" ,aspell)
+       ("tcl" ,tcl)
+       ("linux-pam" ,linux-pam)))
+    (home-page "http://patches.freeiz.com/alpine/")
+    (synopsis "Alternatively Licensed Program for Internet News and Email")
+    (description
+     "Alpine is a text-based mail and news client.  Alpine includes several
+tools and applications:
+@enumerate
+@item alpine, the Alpine mailer
+@item pico, the standalone text editor, GNU nano's predecessor
+@item pilot, the standalone file system navigator
+@end enumerate\n")
+    (license asl2.0)))
-- 
2.12.2