
Also known as ISC bind. This import adds utilities such as host(1), dig(1), and nslookup(1), as well as many other tools and libraries. Change-Id: I035ca46e64f1965d57019e773f4ff0ef035e4aa3
202 lines
7.9 KiB
Plaintext
202 lines
7.9 KiB
Plaintext
Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
|
|
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
|
|
|
|
BIND 9.10 for Win32 Source Build Instructions. 02-Feb-2014
|
|
|
|
Building BIND 9.10 on Windows has the following prerequisites:
|
|
|
|
1) You need to install Perl for Windows. ActivePerl
|
|
(http://www.activestate.com/) and Strawberry Perl
|
|
(http://www.strawberryperl.com) have both been tested and found
|
|
to work.
|
|
|
|
2) OpenSSL (http://www.openssl.org) must be downloaded and built on
|
|
the system on which you are building BIND.
|
|
|
|
3) If you wish to use the statistics channel, LibXML2
|
|
(ftp://xmlsoft.org/libxml2) must be downloaded and built on
|
|
the system on which you are building BIND.
|
|
|
|
4) Optional external packages (not used by default)
|
|
|
|
If you wish to use IP geolocation, GeoIP API and database must be
|
|
downloaded, patched and built on the system on which you are building
|
|
BIND.
|
|
|
|
If you wish to use readline, the readline library must be downloaded
|
|
and built on the system on which you are building BIND.
|
|
|
|
5) The BIND Installer (BINDInstall) includes a copy of the
|
|
redistributable runtime object vcredist_x86.exe (or vcredist_x64.exe),
|
|
which is included with Visual Studio and can be downloaded from
|
|
Microsoft. This file must be in place prior to running Configure.
|
|
|
|
6) BIND is known to run on the following versions of Windows:
|
|
Windows XP (with Service Pack 2 or higher), Vista, 7, 8, Server 2003,
|
|
Server 2008, Server 2008R2, and Server 2012.
|
|
|
|
Step 1: Download and build OpenSSL
|
|
|
|
OpenSSL is required for DNSSEC. If you wish to build BIND 9 without
|
|
DNSSEC support, skip to step 2.
|
|
|
|
Download and untar the OpenSSL sources from http://www.openssl.org/.
|
|
Extract them at in the same directory in which you extracted the BIND 9
|
|
source: If BIND 9 is in \build\bind-9.10.0, for instance, OpenSSL should
|
|
be in \build\openssl-1.0.1g (subject to version number changes).
|
|
|
|
Note: Building OpenSSL requires that you install Perl as it uses it
|
|
during its build process. The following commands work as of
|
|
openssl-1.0.1g, but you should check the OpenSSL distribution to see
|
|
if the build instructions in the INSTALL.W32 (or INSTALL.W64) file
|
|
have changed, in particular for the assembler options:
|
|
|
|
32-bit builds:
|
|
(In an x86 Visual Studio Command Prompt window)
|
|
cd openssl-1.0.1g
|
|
perl Configure --prefix=c:\openssl enable-static-engine VC-WIN32
|
|
ms\do_ms
|
|
nmake /f ms\ntdll.mak
|
|
|
|
64-bit builds:
|
|
(In an x64 Visual Studio Command Prompt window)
|
|
cd openssl-1.0.1g
|
|
perl Configure --prefix=c:\openssl64 enable-static-engine VC-WIN64A
|
|
ms\do_win64a
|
|
nmake /f ms\ntdll.mak
|
|
|
|
The "enable-static-engine" option is needed when an OpenSSL engine
|
|
will be used -- for example, when using the GOST signing algorithm or
|
|
OpenSSL-based PKCS#11 support.
|
|
|
|
If you wish to use OpenSSL-based PKCS#11 to control a cryptographic
|
|
hardware service module, please see "PKCS#11 (Cryptoki) support" in
|
|
chapter 4 of the BIND 9 Administrator Reference Guide. You will need to
|
|
apply the patch in bind9\bin\pkcs11\openssl-1.0.1g-patch (this can be
|
|
done using the Cygwin 'patch' utility) and add --pk11-libname and
|
|
--pk11-flavor to the Configure command above.
|
|
|
|
Step 2: Download and build LibXML2
|
|
|
|
LibXML2 is required to use the statistics channel. If you wish to
|
|
build BIND 9 without support for this feature, skip to step 3.
|
|
|
|
Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2.
|
|
Extract them in the same directory in which you extracted the BIND 9
|
|
source: If BIND 9 is in \build\bind-9.10.0, for instance, libxml2 should
|
|
be in \build\libxml2-2.9.1 (subject to version number changes).
|
|
|
|
Now build libxml2, and copy the resulting files into the include and lib
|
|
directories:
|
|
|
|
cd libxml2-2.9.1\win32
|
|
cscript configure.js compiler=msvc vcmanifest=yes static=yes \
|
|
debug=no iconv=no
|
|
nmake /f Makefile.msvc libxml
|
|
|
|
Step 3: Download and build GeoIP
|
|
|
|
Geographic ("geoip") ACLs require libGeoIP. If you wish to build BIND 9
|
|
without support for this feature, skip to step 4.
|
|
|
|
The libGeoIP source code is available from:
|
|
|
|
https://github.com/maxmind/geoip-api-c/releases.
|
|
|
|
As of this writing, the current version of libGeoIP is 1.6.0. There
|
|
is a known bug in this and all prior versions which prevents it from
|
|
building a suitable DLL with thread support on Windows. You can apply
|
|
the patch file bind9/win32utils/GeoIP.diff to address the problem.
|
|
This patch has been submitted upstream, and will be included in
|
|
future versions of libGeoIP.
|
|
|
|
Step 4: Download and build Readline
|
|
|
|
The readline library adds command-line editing in nslookup and nsupdate.
|
|
If you wish to build BIND 9 without support for this feature, skip to
|
|
step 5.
|
|
|
|
Because the original GNU source for the readline library has no WIN32
|
|
support, it will be necessary to download a version of the static
|
|
readline library source that is ready to be built by Visual Studio. One
|
|
such version is available at:
|
|
|
|
http://gpsim.sourceforge.net/gpsimWin32/gpsimWin32.html#readline_lib
|
|
|
|
Step 5: Make the redistributable runtime object available
|
|
|
|
Check that the Microsoft redistributable object (vcredist_x86.exe or
|
|
vcredist_x64.exe) is available to the build. The file may be placed
|
|
in the directory in which the BIND 9 source was extracted (for
|
|
instance, if BIND 9 is in \build\bind-9.10.0, the redistributable
|
|
may be placed in \build\vcredist_x86.exe). Or, the path to the file
|
|
can be specified via the VCREDIST_PATH environment variable, or via
|
|
the "with-vcredist=PATH" option to the configuration script (see
|
|
step 4). If none of these options is used, Configure will attempt to
|
|
find the redistributable based on clues in the build environment.
|
|
|
|
Step 6: Configuring the BIND build
|
|
|
|
From the command prompt, cd to the win32utils directory under
|
|
the BIND 9 root:
|
|
|
|
cd bind-9.10.0\win32utils
|
|
|
|
In this directory, you can prepare the Windows build by running:
|
|
|
|
perl Configure <options> win32
|
|
|
|
For 64 bit:
|
|
|
|
perl Configure <options> x64
|
|
|
|
This will set up all the files needed for building BIND 9 according
|
|
to the given options. To see the available options, run:
|
|
|
|
perl Configure help
|
|
|
|
To remove all files generated by Configure, run:
|
|
|
|
perl Configure clean
|
|
|
|
Step 7: Building BIND
|
|
|
|
To build using 'nmake' or older versions of Visual Studio (e.g.
|
|
VS 2005 or VS 2008), go to the legacy subdirectory:
|
|
|
|
cd legacy
|
|
|
|
and follow the instructions in win32-build.txt.
|
|
|
|
Note: Only 32-bit builds are supported in this mode.
|
|
|
|
To build using the Visual Studio GUI in VS 2010 or VS 2012:
|
|
open the bind9.sln solution file; this will load the project
|
|
files for all of the BIND 9 libraries and applications. Select
|
|
"Build->Batch Build", click "Select All", then click "Build".
|
|
|
|
To build using MSBuild in VS 2010 or VS 2012: call MSBuild on
|
|
the bind9.sln solution file:
|
|
|
|
msbuild /t:Build /p:Configuration=Release bind9.sln
|
|
msbuild /t:Build /p:Configuration=Debug bind9.sln
|
|
|
|
Note: This mode does not support building for Windows XP.
|
|
|
|
Step 8: Install
|
|
|
|
Installation is accomplished by running the BINDInstall program. All
|
|
DLL's are copied to the Program Files area and all applications
|
|
(including BINDInstall which may be necessary for uninstalling BIND
|
|
9) to the bin directory. If BIND 8 has previously been installed on
|
|
the system it must be uninstalled first by running it's own
|
|
BINDInstall program. The BIND 9 installer does not yet do this.
|
|
|
|
Note: BINDInstall.exe requires the MFC (Microsoft Foundation Class).
|
|
This is only distributed with non-free (i.e., not "Express") versions of
|
|
Visual Studio. The other BIND 9 libraries and applications do not have
|
|
this dependency.
|
|
|
|
Please report bugs, whether in the process of building the application
|
|
or in BIND 9 itself, to bind9-bugs@isc.org.
|