summaryrefslogtreecommitdiff
path: root/win32utils
diff options
context:
space:
mode:
authorLaMont Jones <lamont@debian.org>2009-11-16 19:24:48 -0600
committerLaMont Jones <lamont@debian.org>2009-11-16 19:25:06 -0600
commitf133ad6c8e92691761b732d65cca85e4e27d6f51 (patch)
tree2b2e7d58577939c092be097da9736ad855a00a60 /win32utils
parent2306fd1207ccddc925d7b42b9842a29db6e81e40 (diff)
downloadbind9-f133ad6c8e92691761b732d65cca85e4e27d6f51.tar.gz
9.7.0a2
Diffstat (limited to 'win32utils')
-rw-r--r--win32utils/BINDBuild.dsw42
-rw-r--r--win32utils/BuildAll.bat2
-rw-r--r--win32utils/BuildSetup.bat9
-rw-r--r--win32utils/SetupLibs.bat (renamed from win32utils/BuildOpenSSL.bat)17
-rw-r--r--win32utils/readme1st.txt121
-rw-r--r--win32utils/updatelibxml2.pl215
-rw-r--r--win32utils/updateopenssl.pl7
-rw-r--r--win32utils/win32-build.txt140
8 files changed, 403 insertions, 150 deletions
diff --git a/win32utils/BINDBuild.dsw b/win32utils/BINDBuild.dsw
index a33b5556..830df40d 100644
--- a/win32utils/BINDBuild.dsw
+++ b/win32utils/BINDBuild.dsw
@@ -114,6 +114,48 @@ Package=<4>
###############################################################################
+Project: "revoke"="..\bin\dnssec\win32\revoke.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name dnssectool
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "settime"="..\bin\dnssec\win32\settime.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libdns
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libisc
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name dnssectool
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "keygen"="..\bin\dnssec\win32\keygen.dsp" - Package Owner=<4>
Package=<5>
diff --git a/win32utils/BuildAll.bat b/win32utils/BuildAll.bat
index 18c880fb..3ecab466 100644
--- a/win32utils/BuildAll.bat
+++ b/win32utils/BuildAll.bat
@@ -109,6 +109,8 @@ nmake /nologo -f keygen.mak CFG="keygen - Win32 Release" NO_EXTERNAL_DEPS="1"
nmake /nologo -f signzone.mak CFG="signzone - Win32 Release" NO_EXTERNAL_DEPS="1"
nmake /nologo -f dsfromkey.mak CFG="dsfromkey - Win32 Release" NO_EXTERNAL_DEPS="1"
nmake /nologo -f keyfromlabel.mak CFG="keyfromlabel - Win32 Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f revoke.mak CFG="revoke - Win32 Release" NO_EXTERNAL_DEPS="1"
+nmake /nologo -f settime.mak CFG="settime - Win32 Release" NO_EXTERNAL_DEPS="1"
cd ..\..
rem This is the BIND 9 Installer
diff --git a/win32utils/BuildSetup.bat b/win32utils/BuildSetup.bat
index d2a6936a..9b40fe8e 100644
--- a/win32utils/BuildSetup.bat
+++ b/win32utils/BuildSetup.bat
@@ -19,14 +19,15 @@ rem BuildSetup.bat
rem This script sets up the files necessary ready to build BIND 9.
rem This requires perl to be installed on the system.
-rem Get and update for the latest build of the openssl library
-perl updateopenssl.pl
-
rem Set up the configuration file
cd ..
copy config.h.win32 config.h
cd win32utils
+rem Get and update for the latest build of the openssl and libxml libraries
+perl updateopenssl.pl
+perl updatelibxml2.pl
+
rem Generate the version information
perl makeversion.pl
@@ -69,7 +70,7 @@ echo Copying the migration notes.
copy ..\doc\misc\migration ..\Build\Release
copy ..\doc\misc\migration-4to9 ..\Build\Release
-call BuildOpenSSL.bat
+call SetupLibs.bat
rem
rem set vcredist here so that it is correctly expanded in the if body
diff --git a/win32utils/BuildOpenSSL.bat b/win32utils/SetupLibs.bat
index 7d597f32..64c8628b 100644
--- a/win32utils/BuildOpenSSL.bat
+++ b/win32utils/SetupLibs.bat
@@ -1,6 +1,6 @@
echo off
rem
-rem Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+rem Copyright (C) 2007,2009 Internet Systems Consortium, Inc. ("ISC")
rem
rem Permission to use, copy, modify, and distribute this software for any
rem purpose with or without fee is hereby granted, provided that the above
@@ -14,13 +14,18 @@ rem LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
rem OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
rem PERFORMANCE OF THIS SOFTWARE.
-rem BuildOpenSSL.bat
-rem This script copys the OpenSSL dlls into place.
-rem This script may be modified by updateopenssl.pl.
+rem SetupLibs.bat
+rem This script copys the openssl and libxml2 dlls into place.
+rem This script may be modified by updateopenssl.pl and/or updatelibxml2.pl.
echo Copying the OpenSSL DLL.
-copy ..\..\openssl-0.9.8d\out32dll\libeay32.dll ..\Build\Release\
-copy ..\..\openssl-0.9.8d\out32dll\libeay32.dll ..\Build\Debug\
+copy ..\..\openssl-0.9.8k\out32dll\libeay32.dll ..\Build\Release\
+copy ..\..\openssl-0.9.8k\out32dll\libeay32.dll ..\Build\Debug\
+
+echo Copying the libxml DLL.
+
+copy ..\..\libxml2-2.7.3\win32\bin.msvc\libxml2.dll ..\Build\Release\
+copy ..\..\libxml2-2.7.3\win32\bin.msvc\libxml2.dll ..\Build\Debug\
rem Done
diff --git a/win32utils/readme1st.txt b/win32utils/readme1st.txt
index d36155f8..15a8a661 100644
--- a/win32utils/readme1st.txt
+++ b/win32utils/readme1st.txt
@@ -1,35 +1,32 @@
-Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 2001, 2003 Internet Software Consortium.
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
-$Id: readme1st.txt,v 1.20 2008/12/14 21:33:25 tbox Exp $
+$Id: readme1st.txt,v 1.23 2009/06/22 23:47:53 tbox Exp $
- Release of BIND 9.5 for Window 2000/XP/2003
+ Release of BIND 9.7 for Windows and later.
-This is a release of BIND 9.5 for Window 2000/XP/2003.
-Only IPv4 stacks are supported on the box running this version of BIND.
-IPv6 stacks will be supported in a future release.
+This is a release of BIND 9.7 for Windows XP and later.
Important Kit Installation Information
-As of release 9.3.0, BINDInstall requires that you install
-it under an account with restricted privileges. The installer
-will prompt you for an account name, the default is "named", and
-a password for that account. It will also check for the existence
-of that account. If it does not exist is will create it with only
-the privileges required to run BIND. If the account does exist it
-will check that it has only the one privilege required:
-"Log on as a service". If it has too many privileges it will prompt
-you if you want to continue.
+As of release 9.3.0, BINDInstall requires that you install it under
+an account with restricted privileges. The installer will prompt
+you for an account name, the default is "named", and a password for
+that account. It will also check for the existence of that account.
+If it does not exist is will create it with only the privileges
+required to run BIND. If the account does exist it will check that
+it has only the one privilege required: "Log on as a service". If
+it has too many privileges it will prompt you if you want to continue.
With BIND running under an account name it is necessary for all
-files and directories that BIND uses to have permissions set up
-for the named account if the files are on an NTFS disk. BIND requires
+files and directories that BIND uses to have permissions set up for
+the named account if the files are on an NTFS disk. BIND requires
that the account have read and write access to the directory for
the pid file, any files that are maintained either for slave zones
or for master zones supporting dynamic updates. The account will
-also need read access to the named.conf and any other file that
-it needs to read.
+also need read access to the named.conf and any other file that it
+needs to read.
It is important that on Windows the directory directive is used in
the options section to tell BIND where to find the files used in
@@ -40,12 +37,12 @@ e.g.
directory "C:\WINDOWS\system32\dns\etc";
};
-If you have previously installed BIND 8 or BIND 4 on the system that
-you wish to install this kit, you MUST use the BIND 8 or BIND 4 installer
-to uninstall the previous kit. For BIND 8.2.x, you can use the
-BINDInstall that comes with the BIND 8 kit to uninstall it. The BIND 9
-installer will NOT uninstall the BIND 8 binaries. That will be fixed
-in a future release.
+If you have previously installed BIND 8 or BIND 4 on the system
+that you wish to install this kit, you MUST use the BIND 8 or BIND
+4 installer to uninstall the previous kit. For BIND 8.2.x, you can
+use the BINDInstall that comes with the BIND 8 kit to uninstall it.
+The BIND 9 installer will NOT uninstall the BIND 8 binaries. That
+will be fixed in a future release.
Unpack the kit into any convenient directory and run the BINDInstall
program. This will install the named and associated programs into
@@ -55,12 +52,12 @@ Messages are logged to the Application log in the EventViewer.
Controlling BIND
-Windows NT/2000 uses the same rndc program as is used on Unix
-systems. The rndc.conf file must be configured for your system in
-order to work. You will need to generate a key for this. To do this
-use the rndc-confgen program. The program will be installed in the
-same directory as named: dns/bin/. From the DOS prompt, use the
-command this way:
+Windows uses the same rndc program as is used on Unix systems. The
+rndc.conf file must be configured for your system in order to work.
+You will need to generate a key for this. To do this use the
+rndc-confgen program. The program will be installed in the same
+directory as named: dns/bin/. From the DOS prompt, use the command
+this way:
rndc-confgen -a
@@ -71,10 +68,10 @@ details of this. An rndc.conf can also be generated by running:
rndc-confgen > rndc.conf
-which will create the rndc.conf file in the current directory, but not
-copy it to the dns/etc directory where it needs to reside. If you create
-rndc.conf this way you will need to copy the same key statement into
-named.conf.
+which will create the rndc.conf file in the current directory, but
+not copy it to the dns/etc directory where it needs to reside. If
+you create rndc.conf this way you will need to copy the same key
+statement into named.conf.
The additions look like the following:
@@ -87,24 +84,23 @@ controls {
Note that the value of the secret must come from the key generated
above for rndc and must be the same key value for both. Details of
this may be found in section 3.4.1.2 of the ARM. If you have rndc
-on a Unix box you can use it to control BIND on the NT/W2K box as
-well as using the Windows version of rndc to control a BIND 9
-daemon on a Unix box. However you must have key statements valid for
-the servers you wish to control, specifically the IP address and key
+on a Unix box you can use it to control BIND on the Windows box as
+well as using the Windows version of rndc to control a BIND 9 daemon
+on a Unix box. However you must have key statements valid for the
+servers you wish to control, specifically the IP address and key
in both named.conf and rndc.conf. Again see section 3.4.1.2 of the
ARM for details.
In order to you rndc from a different system it is important to
ensure that the clocks are synchronized. The clocks must be kept
within 5 minutes of each other or the rndc commands will fail
-authentication. Use NTP or other time synchronization software
-to keep your clocks accurate. NTP can be found at
-http://www.ntp.org/.
+authentication. Use NTP or other time synchronization software to
+keep your clocks accurate. NTP can be found at http://www.ntp.org/.
In addition BIND is installed as a win32 system service, can be
started and stopped in the same way as any other service and
-automatically starts whenever the system is booted. Signals are
-not supported and are in fact ignored.
+automatically starts whenever the system is booted. Signals are not
+supported and are in fact ignored.
Note: Unlike most Windows applications, named does not, change its
working directory when started as a service. If you wish to use
@@ -113,46 +109,45 @@ directory using the directory directive options.
Documentation
-This kit includes Documentation in HTML format. The documentation is not
-copied during the installation process so you should move it to any convenient
-location for later reference. Of particular importance is the BIND 9
-Administrator's Reference Manual (Bv9ARM*.html) which provides detailed
-information on BIND 9. In addition, there are HTML pages for each of the
-BIND 9 applications.
+This kit includes Documentation in HTML format. The documentation
+is not copied during the installation process so you should move
+it to any convenient location for later reference. Of particular
+importance is the BIND 9 Administrator's Reference Manual (Bv9ARM*.html)
+which provides detailed information on BIND 9. In addition, there
+are HTML pages for each of the BIND 9 applications.
DNS Tools
-The following tools have been built for Windows NT: dig, nslookup,
+The following tools have been built for Windows: dig, nslookup,
host, nsupdate, rndc, rndc-confgen, named-checkconf, named-checkzone,
dnssec-keygen, dnssec-signzone, dnssec-dsfromkey and dnssec-keyfromlabel.
-The tools will NOT run on Win9x, only WinNT and Win2000. The latter
-tools are for use with DNSSEC. All tools are installed in the
-dns/bin directory.
+The latter tools are for use with DNSSEC. All tools are installed
+in the dns/bin directory.
IMPORTANT NOTE ON USING THE TOOLS:
-It is no longer necessary to create a resolv.conf file on Windows as
-the tools will look in the registry for the required nameserver
+It is no longer necessary to create a resolv.conf file on Windows
+as the tools will look in the registry for the required nameserver
information. However if you wish to create a resolv.conf file as
follows it will use it in preference to the registry nameserver
entries.
To create a resolv.conf you need to place it in the System32\Drivers\etc
-directory and it needs to contain a list of nameserver addresses to
-use to find the nameserver authoritative for the zone. The format of
-this file is:
+directory and it needs to contain a list of nameserver addresses
+to use to find the nameserver authoritative for the zone. The format
+of this file is:
nameserver 1.2.3.4
nameserver 5.6.7.8
-Replace the IP addresses with your real addresses. 127.0.0.1 is a valid
-address if you are running a nameserver on the localhost.
+Replace the IP addresses with your real addresses. 127.0.0.1 is a
+valid address if you are running a nameserver on the localhost.
Problems
Please report all problems to bind9-bugs@isc.org and not to me. All
-other questions should go to the bind-users@isc.org mailing list or the
-comp.protocol.dns.bind news group.
+other questions should go to the bind-users@isc.org mailing list
+or the comp.protocol.dns.bind news group.
Danny Mayer
mayer@ntp.isc.org
diff --git a/win32utils/updatelibxml2.pl b/win32utils/updatelibxml2.pl
new file mode 100644
index 00000000..bb8ba0f7
--- /dev/null
+++ b/win32utils/updatelibxml2.pl
@@ -0,0 +1,215 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# $Id: updatelibxml2.pl,v 1.3 2009/07/19 04:50:15 each Exp $
+
+# updatelibxml2.pl
+# This script locates the latest version of libxml2 in the grandparent
+# directory and updates the build scripts to use that version.
+# Copied from updateopenssl.pl.
+#
+# Path and directory
+$path = "..\\..\\";
+
+# List of files that need to be updated with the actual version of the
+# libxml2 directory
+@filelist = ("SetupLibs.bat",
+ "../lib/dns/win32/libdns.mak",
+ "../lib/dns/win32/libdns.dsp",
+ "../bin/check/win32/checktool.dsp",
+ "../bin/check/win32/namedcheckconf.dsp",
+ "../bin/check/win32/namedcheckconf.mak",
+ "../bin/check/win32/namedcheckzone.dsp",
+ "../bin/check/win32/namedcheckzone.mak",
+ "../bin/confgen/win32/confgentool.dsp",
+ "../bin/confgen/win32/ddnsconfgen.dsp",
+ "../bin/confgen/win32/ddnsconfgen.mak",
+ "../bin/confgen/win32/rndcconfgen.dsp",
+ "../bin/confgen/win32/rndcconfgen.mak",
+ "../bin/dig/win32/dig.dsp",
+ "../bin/dig/win32/dig.mak",
+ "../bin/dig/win32/dighost.dsp",
+ "../bin/dig/win32/host.dsp",
+ "../bin/dig/win32/host.mak",
+ "../bin/dig/win32/nslookup.dsp",
+ "../bin/dig/win32/nslookup.mak",
+ "../bin/dnssec/win32/dnssectool.dsp",
+ "../bin/dnssec/win32/dsfromkey.dsp",
+ "../bin/dnssec/win32/dsfromkey.mak",
+ "../bin/dnssec/win32/keyfromlabel.dsp",
+ "../bin/dnssec/win32/keyfromlabel.mak",
+ "../bin/dnssec/win32/keygen.dsp",
+ "../bin/dnssec/win32/keygen.mak",
+ "../bin/dnssec/win32/revoke.dsp",
+ "../bin/dnssec/win32/revoke.mak",
+ "../bin/dnssec/win32/settime.dsp",
+ "../bin/dnssec/win32/settime.mak",
+ "../bin/dnssec/win32/signzone.dsp",
+ "../bin/dnssec/win32/signzone.mak",
+ "../bin/named/win32/named.dsp",
+ "../bin/named/win32/named.mak",
+ "../bin/nsupdate/win32/nsupdate.dsp",
+ "../bin/nsupdate/win32/nsupdate.mak",
+ "../bin/rndc/win32/rndc.dsp",
+ "../bin/rndc/win32/rndc.mak",
+ "../lib/bind9/win32/libbind9.dsp",
+ "../lib/bind9/win32/libbind9.mak",
+ "../lib/dns/win32/libdns.dsp",
+ "../lib/dns/win32/libdns.mak",
+ "../lib/isc/win32/libisc.dsp",
+ "../lib/isc/win32/libisc.mak",
+ "../lib/isc/win32/libisc.def",
+ "../lib/isccc/win32/libisccc.dsp",
+ "../lib/isccc/win32/libisccc.mak",
+ "../lib/isccfg/win32/libisccfg.dsp",
+ "../lib/isccfg/win32/libisccfg.mak");
+
+# Locate the libxml2 directory
+$substr = getdirectory();
+if ($substr eq 0) {
+ print "No directory found\n";
+}
+else {
+ print "Found $substr directory\n";
+}
+
+if ($substr ne 0) {
+ #Update the list of files
+ $ind = 0;
+ updateconfig(1);
+ foreach $file (@filelist) {
+ print "Updating file $file\n";
+ updatefile($file, $substr, 1);
+ $ind++;
+ }
+}
+else {
+ #Update the configuration to reflect libxml2 being absent
+ $ind = 0;
+ updateconfig(0);
+ foreach $file (@filelist) {
+ print "Updating file $file\n";
+ updatefile($file, $substr, 0);
+ $ind++;
+ }
+}
+
+# Function to find the libxml2 directory
+sub getdirectory {
+ my(@namelist);
+ my($file, $name);
+ my($cnt);
+ opendir(DIR,$path) || return (0);
+ @namelist = grep (/^libxml2-[0-9]+\.[0-9]+\.[0-9]+[a-z]*$/i, readdir(DIR));
+ closedir(DIR);
+
+ # Make sure we have something
+ if (scalar(@namelist) == 0) {
+ return (0);
+ }
+ # Now see if we have a directory or just a file.
+ # Make sure we are case insensitive
+ foreach $file (sort {uc($a) cmp uc($b)} @namelist) {
+ if (-d $path.$file) {
+ $name = $file;
+ }
+ }
+
+ # If we have one use it otherwise report the error
+ # Note that we are only interested in the last one
+ # since the sort should have taken care of getting
+ # the latest
+ if (defined($name)) {
+ return ($name);
+ }
+ else {
+ return (0);
+ }
+}
+
+# function to replace the libxml2 directory name with the latest one
+sub updatefile {
+ my($filename, $substr, $line);
+ my(@Lines);
+
+ $filename = $_[0];
+ $substr = $_[1];
+ $havexml = $_[2];
+
+ open (RFILE, $filename) || die "Can't open file $filename: $!";
+ @Lines = <RFILE>;
+ close (RFILE);
+
+ # Replace the string
+ foreach $line (@Lines) {
+ if ($havexml) {
+ $line =~ s/libxml2-[0-9]+\.[0-9]+\.[0-9]+[a-z]*/$substr/gi;
+ if ($filename =~ /\.mak$/) {
+ $line =~ s/^# (LIBXML=.*\/libxml2\.lib.*)$/\1/;
+ } elsif ($filename =~ /\.dsp$/ ) {
+ $line =~ s/^!MESSAGE (LIBXML=.*\/libxml2\.lib.*)$/\1/;
+ $line =~ s/^!MESSAGE (# ADD LINK32 .*\/libxml2\.lib.*)$/\1/;
+ }
+ $line =~ s/^; (isc_socketmgr_renderxml)$/\1/;
+ $line =~ s/^; (isc_mem_renderxml)$/\1/;
+ $line =~ s/^; (isc_taskmgr_renderxml)$/\1/;
+ } else {
+ if ($filename =~ /\.mak$/) {
+ $line =~ s/^(LIBXML=.*\/libxml2.lib.*)$/# \1/i;
+ } elsif ($filename =~ /\.dsp$/ ) {
+ $line =~ s/^(# ADD LINK32 .*\/libxml2.lib.*)$/!MESSAGE \1/i;
+ $line =~ s/^(LIBXML=.*\/libxml2.lib.*)$/!MESSAGE \1/i;
+ }
+ $line =~ s/^(isc_socketmgr_renderxml)$/; \1/;
+ $line =~ s/^(isc_mem_renderxml)$/; \1/;
+ $line =~ s/^(isc_taskmgr_renderxml)$/; \1/;
+ }
+ }
+
+ #update the file
+ open (RFILE, ">$filename") || die "Can't open file $filename: $!";
+ foreach $line (@Lines) {
+ print RFILE $line;
+ }
+ close(RFILE);
+}
+
+# update config.h to define or undefine HAVE_LIBXML2
+sub updateconfig {
+ my($havexml, $substr, $line);
+ my(@Lines);
+
+ $havexml = $_[0];
+
+ open (RFILE, "../config.h") || die "Can't open config.h";
+ @Lines = <RFILE>;
+ close (RFILE);
+
+ foreach $line (@Lines) {
+ if ($havexml) {
+ $line =~ s/^.*#undef HAVE_LIBXML2.*$/define HAVE_LIBXML2 1/;
+ } else {
+ $line =~ s/^#define HAVE_LIBXML2 .*$/\/\* #undef HAVE_LIBXML2 \*\//;
+ }
+ }
+
+ open (RFILE, ">../config.h") || die "Can't open config.h";
+ print "Updating file ../config.h\n";
+ foreach $line (@Lines) {
+ print RFILE $line;
+ }
+ close(RFILE);
+}
diff --git a/win32utils/updateopenssl.pl b/win32utils/updateopenssl.pl
index 6376a740..1c3ed539 100644
--- a/win32utils/updateopenssl.pl
+++ b/win32utils/updateopenssl.pl
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
-# Copyright (C) 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2006, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -14,7 +14,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: updateopenssl.pl,v 1.8 2007/08/06 04:42:38 marka Exp $
+# $Id: updateopenssl.pl,v 1.10 2009/07/17 23:47:41 tbox Exp $
# updateopenssl.pl
# This script locates the latest version of OpenSSL in the grandparent
@@ -25,8 +25,7 @@ $path = "..\\..\\";
# List of files that need to be updated with the actual version of the
# openssl directory
-@filelist = ("BuildOpenSSL.bat",
- "../lib/dns/win32/libdns.mak",
+@filelist = ("../lib/dns/win32/libdns.mak",
"../lib/dns/win32/libdns.dsp");
# Locate the openssl directory
diff --git a/win32utils/win32-build.txt b/win32utils/win32-build.txt
index c3a52af4..4ee14fc8 100644
--- a/win32utils/win32-build.txt
+++ b/win32utils/win32-build.txt
@@ -1,18 +1,27 @@
-Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC")
+Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 2001, 2002 Internet Software Consortium.
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
-$Id: win32-build.txt,v 1.13 2008/12/14 21:33:25 tbox Exp $
+$Id: win32-build.txt,v 1.15 2009/07/17 23:47:41 tbox Exp $
- BIND 9.4 for Win32 Source Build Instructions. 28-May-2005
+ BIND 9.7 for Win32 Source Build Instructions. 02-Jul-2009
-Building BIND 9.4 on Windows NT/2000 has the following prerequisites:
+Building BIND 9.7 on Windows XP/2003/2008 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.
-1) You need to install Perl for Windows NT/2000. ActiveState
-(http://www.activestate.com/) is the one most people install and use;
2) OpenSSL (http://www.openssl.org) needs to be downloaded and built
on the system on which you are building BIND.
-3) If you want to build using Visual C++ 6.0, you'll need some extra
+
+3) If you wish to use the statistics channel, LibXML2
+(ftp://xmlsoft.org/libxml2) needs to be downloaded and built on
+the system on which you are building BIND. (If you do not wish
+to use the statistics channel, remove HAVE_LIBXML2 from config.h.win32.)
+
+4) If you want to build using Visual C++ 6.0, you'll need some extra
files that are to be found in the Platform SDK (which you will need
to install), namely:
@@ -40,25 +49,51 @@ Server (SP3 or later), Windows 2000 Professional (SP1 or later),
Windows 2000 Server or any kind (SP1 or later), Windows XP, Windows 2003
Server. It will NOT build or run on Windows 95, Windows 98, etc. platforms.
-Step 1: Download and Build OpenSSL
+Step 1: Download and build OpenSSL
Download and untar the OpenSSL sources from http://www.openssl.org/.
-if you have place the BIND sources in /BIND9 you should place the
-OpenSSL sources in /openssl-0.9.7c or the appropriate directory name
-created when you untarred the openssl tarball.
+Extract them at in the same directory in which you extracted the BIND9
+source: If BIND9 is in \build\bind-9.7.0, for instance, OpenSSL should be
+in \build\openssl-0.9.8k (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-0.9.8k, but you should check the OpenSSL distribution
+to see if the build instructions have changed:
+
+ cd openssl-0.9.8k
+ perl Configure VC-WIN32 --prefix=c:/openssl
+ ms\do_masm
+ nmake /f ms\ntll.mak
+
+Step 2: Download and build libxml2
+
+Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2.
+Extract them at in the same directory in which you extracted the BIND9
+source: If BIND9 is in \build\bind-9.7.0, for instance, libxml2 should
+be in \build\libxml2-2.7.3 (subject to version number changes).
+
+Now build libxml2, and copy the resulting files into the include and lib
+directories:
+
+ cd libxml2-2.7.3\win32
+ cscript configure.js compiler=msvc vcmanifest=yes static=yes debug=no iconv=no
+ nmake /f Makefile.msvc libxml
+
+Step 2: Building BIND
-Note: Building OpenSSL also requires that you install Perl as it uses
-it during its build process. Follow the instructions for NT given
-in the INSTALL.W32 file to build the kit. This will produce libeay32.lib
-and libeay32.dll in the out32dll subdirectory.
+You must build openssl and libxml2 first.
+From the command prompt cd to the win32utils directory under
+the BIND9 root:
-Step 2 Building BIND
+ cd bind-9.7.0\win32utils
+
+If using VC++ 6.0, run the BuildAll.bat file:
-You must build openssl first.
+ BuildAll
-From the command prompt cd to the win32utils under the BIND root.
-Execute the BuildAll.bat file. This will do the following:
+This will do the following:
1) copy config.h.win32 to config.h in the root.
2) create the versions.h file in the root.
3) Build the gen application in the lib/dns directory.
@@ -74,60 +109,24 @@ Execute the BuildAll.bat file. This will do the following:
8) Copies the BIND 9 ARM HTML files and the application HTML files
to the Build\Release area.
-If you wish to use Visual Studio for building, you can just run the
-BuildSetup.bat file which will create all the necessary files and you
-can then use the BINDBuild.dsw to open the workspace for all of the
-libraries and applications. These files reside in the same win32utils
-directory as this file.
+If you wish to use the Visual Studio GUI for building, you can just
+run the BuildSetup.bat file:
-The following files are built:
+ BuildSetup
+
+This will create or find and copy into place several files which are
+necessary for the build to proceed. It also locates and copies into place
+the DLLs for OpenSSL and libxml2.
-libbind9.dll
-libisc.dll
-libdns.dll
-libisccc.dll
-libisccfg.dll
-liblwres.dll
-named.exe
-bindevt.dll
-BINDInstall.exe
+Use BINDBuild.dsw (also located in the win32utils directory) to open the
+workspace for all of the BIND9 libraries and applications. Select
+"Build->Batch Build", click "Select All", then click "Build".
-rndc.exe
-dig.exe
-host.exe
-nslookup.exe
-nsupdate.exe
+After the build has completed, run the BuildPost.bat file:
-named-checkconf.exe
-named-checkzone.exe
+ BuildPost
-dnssec-keygen.exe
-dnssec-signzone.exe
-dnssec-dsfromkey.exe
-dnssec-keyfromlabel.exe
-
-If you are building with VS.NET (aka VC++ V7) you will need additional
-system DLL's:
-
-mfc71.dll
-msvcr71.dll
-
-or
-
-mfc70.dll
-msvcr70.dll
-
-depending on your version of the compiler.
-
-You should end up with 18-20 binaries in the bind9/Build/Release
-directory. The Install instructions Readme1st.txt from win32utils and
-libeay32.dll from the openssl/out32dll/ directory are also copied into
-the Build area. In addition you should have 22 HTML files and a number
-of text files.
-
-The set of files in the directory bind9/Build/Release form the
-installation kit which can then be zipped and distributed to any
-suitable Windows NT 4.0 or Windows 2000 platform.
+...which does post-build processing.
Installation is accomplished by running the BINDInstall program. All DLL's
are copied to the system32 area and all applications (including BINDInstall
@@ -139,8 +138,3 @@ not yet do this.
All bugs found, whether in the process of building the application or
running BIND or the tools should be reported to the bind9 bugs email
account at bind9-bugs@isc.org.
-
- Danny Mayer
- mayer@ntp.isc.org
-
-