How I built Pine 4.44 for MacOS X version 10.1.5
--Josh Larios <jdlarios@cac.washington.edu> 2002/07/23

Note: I'm using the tcsh shell which came with 10.1, so if (like any sane person would) you've installed and switched to bash, look for any tcsh-isms in the instructions below and translate them to bash. "setenv" becomes "export", for example.

A number of these steps seem to expect perl to be in /usr/local/bin/. Let's make a symlink so they don't fail:

sudo mkdir -p /usr/local/bin
sudo ln -s /usr/bin/perl /usr/local/bin/perl
Ok, now we can get started.

+ First thing, fix the openssl installation. I don't know if this step is required with 10.1.5. If you have a bunch of files whose names end in ".0" and ".pem" in /System/Library/OpenSSL/certs/ and a bunch of ".h" files in /System/Library/OpenSSL/include/, then you can skip this part. Except for the making a symlink to the headers part; that's probably important.

get and unpack openssl-0.9.6b.tar.gz from http://www.openssl.org/source/

Go into the openssl source directory:

cd openssl-0.9.6b
Copy the header files to the system OpenSSL directory:
sudo cp -r include /System/Library/OpenSSL/
Make a symlink to the headers where most things will expect them:
sudo ln -s /System/Library/OpenSSL/include/openssl /usr/include/openssl
Trick the makefile into thinking you've already built openssl:
ln -s /usr/bin/openssl apps/
Rebuild the certificate files:
make rehash
Copy the certificate files into the system OpenSSL directory:
tar -cf - certs/ | ( cd /System/Library/OpenSSL/ ; sudo tar -xvf - )
You're done with the openssl source now; you can remove it if you want.

+ Let's try building some ldap libraries, so we can enable ldap support

Ok, we're going to need some outside help for this step. Let's grab ltconfig and ltmain.sh (we'll be using them shortly) from http://fink.sourceforge.net/doc/porting/libtool.php

get and unpack openldap from http://www.openldap.org/software/download/ (I'm using openldap-stable-20020618.tgz, which corresponds to version 2.0.25, because that's what was current when I started).

cd openldap-2.0.25
The libtool which comes with openldap-2.0.25 doesn't work quite right on 10.1, so now we'll replace it with the one we grabbed from sourceforge:
cp /PATH/TO/ltconfig /PATH/TO/ltmain.sh build/
Configure openldap to build the libraries, but not slapd or slurpd. (This is just my preference, since I don't really do ldap, and don't know what slapd and slurpd are for. If you know and want them, go ahead and build them too.)
./configure --disable-slapd --disable-slurpd
make depend
Build the libraries. This will take a while. A long while.
make
Since we didn't build slapd, we're going to assume the make succeeded, and skip the "make test" step. Let's go straight to installation:
sudo make install
(I'm not 100% sure that step was necessary, but it probably can't hurt.) That's it for ldap. DON'T remove the ldap source directory just yet, though.

+ Whee, on to Pine!

Download and unpack the pine source. I'm using 4.44.

cd pine4.44
Make a symlink to the openldap source in your pine directory:
ln -s /PATH/TO/openldap-2.0.15 ldap
Let's see if I can get kerberos support working.

First thing, download the latest package from MIT at http://web.mit.edu/network/kerberos-form.html. We want the "MIT Kerberos for Macintosh 4.0/4.0.1 Release", or whatever's current. This is a 27Mb file.

Ok, filled out the form, downloaded 4.0 from MIT, installed it. (Required a reboot.)

Make a symlink from /usr to pine4.44/krb5, as per contrib/krb5-setup:

ln -s /usr krb5
Edit contrib/krb5-setup and change all the instances of ".so" to ".dylib". Also edit imap/src/osdep/unix/Makefile and down in the osx section (around line 528) add the line:
EXTRALDFLAGS="-flat_namespace" \
Add that somewhere before the last line of the osx section, so the \ at the end doesn't screw things up.

Now, try building it:

./build SSLDIR=/System/Library/OpenSSL/ SSLLIB=/usr/lib osx
or
./build PASSFILE=.pine.pwd SSLDIR=/System/Library/OpenSSL/ SSLLIB=/usr/lib osx
PASSFILE is listed as a dangerous option in the tech notes for pine, FYI, and probably shouldn't be used on multiuser systems. But there ya go; that's how you'd include it.

Woohoo! Looks like it worked for me. Hmm. That's unexpected.