| Building spamd/spamc under Windows |
| ---------------------------------- |
| |
| Spamd currently does not run under Windows, but spamc does. |
| |
| With SpamAssassin 3.4.2, spamd has been made available for Windows. Note |
| that this is still experimental. In terms of stability and perfomance it |
| heavily depends on which Perl distribution and/or module versions you |
| are using. So do not use it in a production environment. Alternatively, |
| spamd also works when built and run in the Cygwin Unix emulation |
| environment, and a pure Windows spamc can be used with it. You can also |
| run a pure Windows spamc that communicates with spamd running on any |
| network accessible computer. The unix sockets option is not supported |
| under Windows, so only TCP/IP can be used, either with or without SSL. |
| |
| Building spamc for Windows requires a lot more installed on your |
| computer than running it does. If all you want to do is run spamc |
| without the full SpamAssassin on your Windows machine, it is easier if |
| you can get a binary executable from someone else who has built it. |
| |
| When building SpamAssassin under Windows, building spamc is |
| optional. You can specify BUILD_SPAMC=yes or BUILD_SPAMC=no on the |
| command line when you run 'perl Makefile.PL'. If you don't, you will be |
| asked during the build process if you want to build spamc. |
| |
| System requirements |
| ------------------- |
| |
| To build spamc you have to be able to build SpamAssassin and have a |
| suitable C compiler. |
| |
| To build SpamAssassin you must have installed a Windows version of Perl |
| and the modules that are listed as required in the general SpamAssassin |
| documentation. |
| |
| Building spamc for Windows has been tested with Microsoft Visual C++ 6.0 |
| and with Microsoft Visual C++ Toolkit 2003. It will probably just work |
| with any recent version of VC++. Some installation files would have to |
| be changed to use with any other C compiler. |
| |
| Microsoft Visual C++ Toolkit 2003 can be downloaded for free. It |
| requires two other free downloads to be able to build spamc. To use it: |
| |
| Download and install Microsoft Visual C++ Toolkit 2003 from |
| http://msdn.microsoft.com/visualc/vctoolkit2003/ |
| |
| Download and install the Core Platform SDK from |
| http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ |
| That download requires Internet Explorer and accepting installation |
| of an ActiveX control to access. |
| |
| Download the self-extracting archive file |
| http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe |
| Run it to create the files nmake.exe and nmake.err, which should both |
| be placed in a directory that is in the Path, such as \perl\bin. |
| |
| To run the spamc executable once it is built you do not need to have |
| VC++ or perl installed. |
| |
| Spamc requires spamd to be running on some system that it can talk to |
| using tcp/ip over a network or on the same machine. The test cases in |
| the build process will only work if the SPAMD_HOST environment variable |
| is set to the host name of a computer running spamd on the test port, |
| which defaults to 48373. This has been tested on a single computer in |
| which spamd was built and run under Cygwin, and SPAMD_HOST in the |
| Windows test command shell was set to localhost. |
| |
| Building and testing a dual Cygwin/Windows system |
| ------------------------------------------------- |
| |
| To build such a combined setup, first install SpamAssassin under Cygwin |
| by unpacking the source files into some directory, for example, |
| /usr/local/src/spamassassin, then in a Cygwin bash shell |
| |
| cd /usr/local/src/spamassassin |
| perl Makefile.PL |
| make |
| make test |
| make install |
| |
| This assumes that you have already installed perl and all necessary perl |
| modules as described elsewhere in the SpamAssassin install |
| documentation. |
| |
| Now that you have a working SpamAssassin under Cygwin you can use that |
| to test the spamc that you will build under Windows. |
| |
| Building the Windows version |
| ---------------------------- |
| |
| Unpack the SpamAssassin source tree into a different directory than you |
| used for building the Cygwin version, for example C:\spamassassin\. |
| |
| Start up a Widows command shell. In the shell, set the environment |
| variable SPAMD_HOST to be the host name or ip address of the spamd |
| server to be used for testing. In this case you would use the command |
| |
| set SPAMD_HOST=localhost |
| |
| To use a port other than the deault testing port 48373, set the |
| environment variable SPAMD_PORT. To use SSL during the test, |
| |
| set SC_ARGS=-S |
| |
| Make sure that the environment is set up for running VC++. In VC++ 6.0 |
| there is a batch file created during installation that sets the |
| environment. In a typical installation that would be found at |
| |
| "\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT" |
| |
| Microsoft Visual C++ Toolkit 2003 has a similar batch file which has to |
| be changed to include the appropriate paths for the Platform SDK |
| installation. |
| |
| Then use the commands |
| |
| cd \spamasassin |
| perl Makefile.PL BUILD_SPAMC=yes |
| nmake |
| |
| In a Cygwin bash shell, start up spamd with the command line |
| |
| spamd -D -x -p 48373 |
| |
| You should add the -L option if you are not running network |
| tests. Specify the various SSL options or a different port if you set |
| SC_ARGS to the corresponding spamc options or if you set SPAMD_PORT to a |
| value other than the default. |
| |
| Back in the Windows command shell, enter the commands |
| |
| nmake test |
| nmake install |
| |
| That's it. You should now have two working versions of SpamAssassin, one |
| under Cygwin and one under Windows. |