Refactoring of IIS build scripts

This commit is contained in:
Victor Hora
2017-07-17 08:43:20 -03:00
committed by Felipe Zimmerle
parent 61bce8d9a9
commit 1e8b4669eb
7 changed files with 177 additions and 82 deletions

View File

@@ -1,44 +1,52 @@
WARNING!
The build process for ModSecurityIIS for Windows was a relatively complicated process. Understanding it required advanced knowledge of Windows and Unix environments.
So the build process was refactored to make it easier for users to create their own builds with the automated batch scripts.
Building ModSecurityIIS on Windows is a relatively complicated process. Understanding it requires advanced knowledge of Windows and Unix environments.
Using the same versions of libraries as listed below is strongly recommended.
* build_release.bat -> The main build script that calls all the others to have a working release
* build_msi.bat -> Creates the MSI self-installer for easy deploy / removal / distribution
* build_dependencies.bat -> Sets (and downloads if needed) all required dependencies
* build_modsecurity.bat -> Builds ModSecurity (requires all depenedencies being set)
* download_files.bat -> Downloads all required dependencies to the default Downloads folder
** This script is disabled by default. If you want to enable it, uncomment the "@call download_files.bat" line on build_dependencies.bat
The dependencies folder also includes a set o batch scripts which sets each dependency
on its own. These scripts are called by the build_dependencies.bat script.
Using the same versions of libraries as listed below is recommended.
--------------------------------------
Compilation Prerequisites:
* Windows 7 x86_x64 (Should work on newer versions of Windows too)
* Vistual Studio 2013 Express (Other versions should work, but you need to set the correct path for vcvars.bat scripts)
* IIS enabled/installed
* 7-Zip
--------------------------------------
Tested on:
Windows 7 x64
Vistual Studio 2010 Ultimate SP1
IIS enabled/installed
The latest versions of ModSecurity dependencies known to work well are the following:
cmake-3.8.2-win32-x86
pcre-8.40 (patch required and included on file "patch-pcre-8.40.vbs")
zlib-1.2.11
libxml2-2.9.4
lua-5.3.4
curl-7.54.1
httpd-2.4.27 (bin-VC11)
yajl-2.1.0
ssdeep-2.13
cmake 2.8.7
curl 7.24.0
apache 2.2.22 or apache 2.4.3
libxml2 2.7.7
lua 5.1.5
pcre 8.30
zlib 1.2.7
7-Zip
--------------------------------------
1. Create working directory c:\work and drop directory c:\drop
2. Sync SVN ModSecurity branch to c:\work\mod_security
3. Copy files from c:\work\mod_security\iis\winbuild to c:\work
4. Download and install cmake (unpack to c:\work\cmake-2.8.7-win32-x86)
5. Download and install 7-Zip
6. Adjust paths in c:\work\init.bat accordingly if needed
7. Download curl, apache, libxml2, lua, pcre and zlib, place them in zip files in c:\work
1. Create working directory (e.g. c:\work) and drop the latest clone from ModSecurity's 2.x Github (https://github.com/SpiderLabs/ModSecurity/archive/v2/master.zip)
2. Make sure the prerequisites mentioned above are all set
3. If you haven't download the dependency files before, uncomment the "@call download_files.bat" line on build_dependencies.bat to have them downloaded prior
4. Open a command prompt (cmd.exe) and head to the "iis" folder inside ModSecurity tree working directory (e.g. cd c:\work\ModSecurity\iis)
5. If you need to modify anything (e.g. paths, versions etc), carefully edit the batch files.
6. Run build_release.bat
7. When done, the binaries, lib and pdb files should appear under c:\work\ModSecurity\iis\release\x86 (32-bit) and c:\work\ModSecurity\iis\release\amd64 (64-bit)
* At this point, if you had a previous installation of ModSecurity and would like to test you can place the x86 files to "C:\Windows\SysWOW64\inetsrv" and x64 files to "C:\Windows\System32\inetsrv"
curl-7.24.0.zip
httpd-2.2.22-win32-src.zip or (httpd-2.4.3.zip (source) and httpd-2.4.3-win32.zip + httpd-2.4.3-win64.zip (binaries))
libxml2-2.7.7.zip
lua-5.1.5.zip
pcre-8.30.zip
zlib-1.2.7.zip
8. If all went well, you can build the MSI installer by running the build_msi.bat script.
Modify c:\work\build.bat accordingly (if other versions were used)
8. Open cmd.exe window, go to c:\work and run buildall.bat
9. When done, the binaries, lib and pdb files should appear under c:\drop\x86 (32-bit) and c:\drop\amd64 (64-bit)
10. Open the VS ModSecurity IIS installer project
11. Copy new binaries to the installer's x86 and amd64 directories
12. Build installer from within VS
* The built installable package places the files to the correct folders, automatically configures the ModSecurity IIS native module and configures web.config to enable ModSecurity for all IIS sites.