From Segfault
Jump to navigation Jump to search


sudo apt-get install libpam-dev libssl-dev libncurses-dev

Eduardo Chappa maintains and has setup a Git repository too. We want to checkout via https, so we have to install their root certificate first:

sudo mkdir -m0755 /usr/local/share/ca-certificates/repo-or-cz
sudo wget -O /usr/local/share/ca-certificates/repo-or-cz/rorcz_root_cert.crt
sudo update-ca-certificates

With that in place, we can checkout without setting GIT_SSL_NO_VERIFY=1:

git clone alpine-git

For historical reasons, the old snapshots could be obtained here:

wget              # MD5: 84e44cbf71ed674800a5d57eed9c1c52
svn co

There's also re-alpine, which is kinda maintained:

git clone git:// 

With the source in place, let's build this thing:

./configure --prefix=/opt/alpine --disable-mouse --disable-keyboard-lock --without-krb5 \
    --without-ldap --without-tcl --with-ssl --with-default-dead-letter-folder=.dead.letter
sudo make install


We can configure alpine via the builtin SETUP or by editing .pinerc.


  • start Alpine
  • press S for SETUP, L for COLLECTION LISTS.
    • That way we can have more than one account, e.g. your local mbox, your imap inbox and so on
  • press A for ADD, type in a Nickname
  • Servername:"alice"
  • Path: while this depends on the namespace of your IMAP server, in many cases that will be INBOX
  • View: again, this depends on your IMAP server. I'll enter *, see the builtin help for details.
  • press !^X to save
  • press $ and then U to move your new collection to the top - we want to use it as our default inbox from now on
  • press E to EXIT the COLLECTION LIST menu.
  • press S, then C for CONFIG
  • personal-name: John Doe
  • smtp-server:"alice"
  • inbox-path: {"alice"}INBOX
  • default-fcc: {"alice"}INBOX.Sent
  • postponed-folder: {"alice"}INBOX.Drafts
  • specify a witty signature-file
  • I prefer enabling single-column-folder-list, enable-full-header-cmd and no-enable-arrow-navigation-relaxed - YMMV


Fire up your editor of choice and modify at least the following values:

 personal-name=Alice P.
 postponed-folder={"alice"}INBOX.Drafts {"alice"}INBOX.[*],"alice"

SSL Notes

  • /novalidate-cert is only needed, when using self-signed certs. While this might be needed in your case (certificates from one of the big CAs are expensive!), be sure to verify the certificate and its fingerprint at least once!
  • If a PEM encoded CA-certifcate is available (ask your ISP!):
 openssl s_client -connect -CAfile CA-cert.pem
 openssl s_client -connect
 openssl x509 -fingerprint -noout -in cert.pem      # to print the fingerprint of cert.pem
  • To verify the server's cert with the CA certificate (ask your ISP!):
 openssl verify -CAfile CA-cert.pem server-cert.pem




Note: Pine has been discontinued in 2006!

$ sudo apt-get install libpam-dev libssl-dev libncurses-dev
$ wget
$ openssl md5 pine.tar.bz2 | grep 39ca07b3d305b4cd0d6aaf4585123275
MD5(pine.tar.bz2)= 39ca07b3d305b4cd0d6aaf4585123275

Unpack & build:

bzip2 -dc pine*.tar.bz2 | tar -xf -
cd pine-*
./build SSLDIR=/usr/lib/ssl SSLCERTS=/etc/ssl/certs SSLINCLUDE=/usr/include/openssl lnp  # Linux,   +PAM,SSL
./build SSLDIR=/usr/lib/ssl SSLCERTS=/etc/ssl/certs SSLINCLUDE=/usr/include/openssl gs5  # Solaris, +SSL
./build CC=/usr/sfw/bin/gcc   SSLDIR=/usr/lib/ssl   SSLINCLUDE=/usr/include/openssl      # Solaris, +SSL,
                                                                                         # gcc instead of SUNWspro
$ ldd bin/pine | egrep 'pam|ssl|curs' => /lib/ (0xb7f42000) => /lib/ (0xb7f3a000) => /usr/lib/i686/cmov/ (0xb7ef7000)

$ sudo cp bin/pine /usr/local/bin/
$ sudo chown root:root /usr/local/bin/pine
  • Be sure to specify ./build first, then pass the environment variables, then the target - order matters here!
  • SSLDIR is 'openssl version -d'
  • SSLINCLUDE and SSLCERTS may vary from system to system :(
  • SSLCERTS is needed to verify the authenticity of the server's certificates



  • RFC 2060 (IMAP4)
  • RFC 2246 (TLS)