Introduction

You probably are aware that Pine is not being developed anymore. One of the main complains people had about Pine was that its source code for the Windows version was not available. This made it impossible, except for those affiliated to the Pine team, to patch Pine.

Being able to patch a program does not only give you the ability to enhance that program. It also allows you to fix bugs, or more importantly, security problems the program might have. While Unix/Linux/Mac users of Pine could patch Pine to fix any problems, those using Windows had to wait until the next release of Pine to fix theirs. Considering that most hackers are looking for ways to intrude in anyone's computer, this was not a very popular decision, whatever motivated that decision in the first place.

Ever since the first alpha release of Alpine, all of that changed. Now it is possible to build Alpine, on your own at your own leisure. I want to thank everyone who helped me in getting my build going. This page summarizes how to carry out that process successfully.

In order to build Alpine, you will need

Installing Visual Studio

You do not need all of Visual Studio, just Visual Studio C++. All you need is the express edition.

At the end of the installation you are asked to update your installation of Visual C++. Make sure you do it. In this case the installer will open your default browser, so make sure your default browser is set up to be Internet Explorer. Firefox does not work for this, so just make sure that before you try to update your installation, you have set Internet Explorer as your default browser.

Install also the Microsoft Platform SDK and follow the directions in that page to make it compatible with Visual Studio Express. This is a one time set up, so even though it takes long time to do it, once you are done with it, you are really done with it.

Downloading and Unpacking Alpine

You can get the clean source code of Alpine from ftp://ftp.cac.washington.edu/alpine/, or you can get a patched source code of Alpine from http://patches.freeiz.com/alpine/.

To decompress the source code of Alpine, use a decompressor, like winzip or winrar or your favorite one.

For a reason which I will investigate later, the build script of Alpine does not work if the the full path to the folder that contains the source code of Alpine contains a space, so if you are using Windows 2000 or XP, and you download the souce code and save it either in My Documents or in the Desktop, there will still be a space in your path, because there is a space in "C:\Documents and Settings", which is at the beginning of your path, anyway.

For this reason, it is better if you save the source code of Alpine in a folder directly under your main drive, as in C:\Alpine-source.

From now on we will assume that you have decompressed the source code of Alpine. This should have produced a folder called Alpine-X.YZ, which we will assume you saved in C:\Alpine-source.

Building Alpine Using Visual C++ Express

Now we assume that you have succesfully unpacked Alpine and saved it into a folder whose path does not contain any spaces, so the full path to the source code of Alpine is something like C:\Alpine-source\AlpineX.YZ.

Now start Visual C++ Express and in order to build Alpine do the following steps.

After all of this, you should be back in Visual C++. Now the final step is to go to the Build menu and select Build My Alpine. That's it.

What you should see now is that a series of warnings, and messages should come from the compiler. Ignore all of them. In fact, eventually the build will fail, but it will fail after Alpine was built, so do not worry, your build of Alpine was successful, and you are done. The executable is in C:\Alpine-source\alpineX.YZ\alpine\alpine.exe.

Since I do this process a lot, i keep deleting the source code of Alpine and replacing it with source code that is either enhanced by a modification, or has a bug fix, so I normally create a shortcut in the desktop to the binary, rather than copy the binary to the Desktop. In that way, the shortcut is always pointing to the correct binary.