FAQ about patches | More patches | Main Page | SHA256 digest for this patch

Run Alpine in Cygwin
Patch is available for version: alpine 1.00 alpine 1.10 alpine 2.00 alpine 2.01
 
Building Alpine in Cygwin is not by any means easy, so you will have to bear with me.
 
If you just want the recipe and not read any explanations, go directly to the summary.
 
First the bad news: Alpine does not build out of the box. It needs to be patched in order to be built, or needs to be modified every time the build fails so that it will build. Even then, it will still fail. To make it more complex, the way it fails is different, depending on the version of the Cygwin DLL.
 
However, luckily enough, the patch for each of the versions of Alpine applies almost without issues to other versions of Alpine. The patches up to version 2.00 work with Cygwin 1.5.X versions of the DLL, but do not work with version 1.7.X. The patch for version 2.01 works with version 1.7.X, and it should work with version 1.5.X too and older versions of Alpine.
 
The patch you can get in this page will help you solve most problems that exist, so download it and apply it to the source code. This patch assumes that you have already installed the following packages:
 * autoconf		* automake		* libtool
 * gcc-core		* gcc-g++		* make
 * gettext-devel	* libncurses-devel	* openssl-devel
 * openldap-devel	* libiconv		* libcrypt-devel
 * minires (obsolete, after Cygwin 1.5.X)

Optional packages:
 * aspell
Update: minires is not needed in Cygwin 1.7.X, but you still need the patch.
 
I have built Alpine without openldap-devel, but then you will need to modify the Makefiles, on which the build fails on, by adding -lcrypto after -lssl.
 
Now let us build Alpine. In order to do that, execute the command
./configure --without-pthread --without-tcl
and then once this is done execute the command
make IP6=4
Here's what's going on. If you just run ./configure without any extra parameters, Alpine will fail to build because cygwin does not define PTHREAD_STACK_MIN, so it is better to avoid this by building without pthread support.
 
The make IP6=4, builds without support for ipv6, which is also ok in todays world, I think that cygwin is already ipv6 ready, and i have not tried the ipv6 build, so if you try it and think it works fine, please let me know and i will remove that instruction as part of the build.
 
That's it. Was not that bad, was it?

Summary

The following must be done only once.
  • Install the following packages:
     * autoconf		* automake		* libtool
     * gcc-core		* gcc-g++		* make
     * gettext-devel	* libncurses-devel	* openssl-devel
     * openldap-devel	* libiconv		* libcrypt-devel
     * minires (obsolete, after Cygwin 1.5.X)
    
    Optional packages:
     * aspell
    
Now, for every time that you want to build Alpine,
  • Apply the patch from this web page.
  • run the command
    autoreconf -if && ./configure --without-pthread --without-tcl && make IP6=4
    
    (the patch modifies the configure script)
  • You are done!. Enjoy :).
Having problems? I might be able to help you. Let me know how can I help you.

Last Updated 20:07:41 MST Thu Dec 13 2012.