alpine - Mail user agent; Apache-licenced successor to Pine ChangeLog


# Alpine 2.21
# ===========
# Earlier releases of Slackware included Pine
# Slackware 12.2, 13.0, 13.1, 13.37: alpine 2.00
# Slackware 14.0: alpine 2.02
# Slackware 14.1: alpine 2.11
# Slackware 14.2: alpine 2.20

# Here is an article about University of Washington retiring Alpine and Pine
# as of December 31, 2018:
# Deskmail, Alpine and Pine to retire Dec. 31, 2018
# ...but development continues via what used to be (only) a site for Alpine
# patches.

# Very early versions of this HOWTO installed Alpine under the default prefix,
# but below we use the /usr prefix now.  If yours is installed under
# any other such as /usr/local, either remove it (see the bottom) or adjust
# the instructions below to reflect your actual installation paths

# To uninstall Alpine, or clean up files from an older version before
# installing the new one, skip down to the bottom for instructions

# Prerequisites:
# gettext (if you don't pass --disable-nls)
# sendmail (used as a MSA)
# inews (optional)
# Hunspell or aspell or ispell (optional; for spell check)
# PAM (optional)
# ncurses
# OpenSSL or LibreSSL (optional; for SSL/TLS support)
# OpenLDAP (optional)
# Kerberos
# Tcl (required for Web Alpine; optional)

# If you're replacing Pine with Alpine, run this to remove Pine
killall pine
test -x /sbin/removepkg && /sbin/removepkg pine
for pfx in /usr /usr/local; do
  ( cd ${pfx}/bin ; rm -f pine pinef pico pilot )
  ( cd ${pfx}/man/man1 ; rm -f pine.1 pico.1 pilot.1 )

# Get Alpine
test -f installed/alpine-2.21.tar.xz && mv installed/alpine-2.21.tar.xz .
test ! -f alpine-2.21.tar.xz &&

# Verify tarball w/ md5sum:
echo "02dad85c1be80ce020206f222ecf5ac8  alpine-2.21.tar.xz" | md5sum -c

# Verify tarball w/ gpg:
( gpg --list-keys 6AA14BD5 > /dev/null 2>&1 ||
  wget -nc -O - |
   gpg --import - ) &&
wget -nc &&
  gpg --verify alpine-2.21.tar.xz.sig &&
   rm alpine-2.21.tar.xz.sig

# Extract it
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "alpine-*" -exec rm -r {} \;
tar xJvf ~/alpine-2.21.tar.xz
cd alpine-2.21
test $UID = 0 && chown -R root:root .

# I use --disable-nls below, I only read/write English (well) and do not
# need translations.

# If you build it with SSL/TLS support, the default is to only allow
# plaintext passwords over encrypted connections.

# When specifying paths for OpenSSL, keep in mind that the source default
# prefix for >= 1.1.x is /usr/local, the source default for < 1.1.x is
# /usr/local/ssl, and the usual distribution default prefix for binary
# packages will be /usr.  If your system is 32-bit, libraries are probably
# in 'lib' and if 64-bit they are probably in 'lib64'.  Use the appropriate
# OpenSSL prefix for your system via --with-ssl-dir
# This is used by configure to come up with ./c-client/CFLAGS
# If if fails to build, see the other --with-ssl* configure options.
# You may need to specify --with-ssl-lib-dir=/usr/local/ssl/lib64 or
# --with-ssl-include-dir=/some/other/path/include/openssl

# Configure the build
test -d /usr/local/ssl/include/openssl && SSLPFX=/usr/local/ssl
test -d /usr/local/include/openssl && SSLPFX=/usr/local
./configure --prefix=/usr --mandir=/usr/man --disable-nls --with-system-pinerc=/etc/pine.conf --with-system-fixed-pinerc=/etc/pine.conf.fixed --with-ssl-dir=${SSLPFX}
unset SSLPFX

# Build it

# Become root to install it

# Back up your pine.conf and pine.conf.fixed
mkdir -p -m 0700 ~/backup/alpine
for cfgdir in /usr/local/lib64 /usr/local/lib /usr/local/etc /etc;
  test -d $cfgdir &&
   ( cd $cfgdir
     test -f pine.conf &&
      cp -ab pine.conf ~/backup/alpine/pine.conf-$(date +%Y%m%d)
     test -f pine.conf.fixed &&
      cp -ab pine.conf.fixed        ~/backup/alpine/pine.conf.fixed-$(date +%Y%m%d) )

# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg alpine

# Install it
make install

# To create a sample site-wide configuration file, run:
# alpine -pinerc /etc/pine.conf
# then open up pine.conf and modify it as necessary.  To create site-wide
# fixed (not changeable by the user) configuration options, create a
# pine.conf.fixed and make sure only root has write permissions on it.

# Web Alpine is in ./web/
# See web/README and web/INSTALL for more info

# There are other things in ~/src/alpine-2.21/imap that you may want to
# check out, like mailutil (run it for usage).
# To check how many messages you have in a local mbox folder with it:
# ./mailutil check /var/spool/mail/jason
# Check how many messages you have in a folder named "lists" on a
# Cyrus IMAP server via IMAP + TLS (ignoring the complaint about the
# self-signed certificate and not using rsh to connect):
# ./mailutil check {localhost/user=jason/novalidate-cert/NoRsh}INBOX.lists
# Check how many messages you have in your Cyrus POP3 inbox via POP3 + TLS:
# ./mailutil check {localhost/pop3/user=jason/novalidate-cert}INBOX

# Make sure your non-root account can remove the source later
chown -R $(logname) .
chmod -R u+w .

# Become yourself again

mkdir -p -m 0700 installed
rm -f installed/alpine-*.tar.*
mv alpine-2.21.tar.xz installed/

# If you ever want to uninstall Alpine, this should do it:
test -d src/alpine-* && ( cd src/alpine-* ; make uninstall )
( cd /etc ; rm -f pine.conf pine.conf.fixed )
for pfx in /usr /usr/local;
  ( cd ${pfx}/bin ; rm -f alpine pico pilot rpdump rpload )
  ( cd ${pfx}/lib ; rm -f pine.conf pine.conf.fixed )
  test -d ${pfx}/lib64 &&
   ( cd ${pfx}/lib64 ; rm -f pine.conf pine.conf.fixed )
  ( cd ${pfx}/man/man1
    rm -f alpine.1 pico.1 pilot.1 rpdump.1 rpload.1 )
  ( cd ${pfx}/share/man/man1
    rm -f alpine.1 pico.1 pilot.1 rpdump.1 rpload.1 )
find ~/src -maxdepth 1 -type d -name "alpine-*" -exec rm -r {} \;
rm -f ~/installed/alpine-*.tar.*

List of HOWTOs

Last updated: 2022-06-09 1:35pm EDT(-0400)
Copyright © 2001-2023 Jason Englander. All Rights reserved.