Issue #17717: Pull NASM from svn.python.org for OpenSSL build.
diff --git a/Misc/NEWS b/Misc/NEWS
index 1ef092c..97aa75f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -305,6 +305,9 @@
Windows
-------
+- Issue #17717: The Windows build scripts now use a copy of NASM pulled from
+ svn.python.org to build OpenSSL.
+
- Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j.
diff --git a/PCbuild/build_ssl.py b/PCbuild/build_ssl.py
index 151aa54..53c7e35 100644
--- a/PCbuild/build_ssl.py
+++ b/PCbuild/build_ssl.py
@@ -170,6 +170,17 @@
if ssl_dir is None:
sys.exit(1)
+ # add our copy of NASM to PATH. It will be on the same level as openssl
+ for dir in os.listdir(os.path.join(ssl_dir, os.pardir)):
+ if dir.startswith('nasm'):
+ nasm_dir = os.path.join(ssl_dir, os.pardir, dir)
+ nasm_dir = os.path.abspath(nasm_dir)
+ os.environ['PATH'] += os.pathsep.join(['', nasm_dir])
+ break
+ else:
+ print('NASM was not found, make sure it is on PATH')
+
+
old_cd = os.getcwd()
try:
os.chdir(ssl_dir)
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index c38f990..a65926d 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -144,7 +144,9 @@
You must install the NASM assembler from
http://nasm.sf.net
- for x86 builds. Put nasm.exe anywhere in your PATH.
+ for x86 builds. Put nasm.exe anywhere in your PATH. If you use the
+ Tools\buildbot\external(-amd64).bat method for getting sources, it also
+ downloads a version of NASM, which the ssl build script will add to PATH.
You can also install ActivePerl from
http://www.activestate.com/activeperl/
diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat
index 51f82e0..7ca41a6 100644
--- a/Tools/buildbot/external-common.bat
+++ b/Tools/buildbot/external-common.bat
@@ -37,6 +37,10 @@
if exist db-4.4.20 rd /s/q db-4.4.20
if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0
+@rem NASM, for OpenSSL build
+@rem if exist nasm-2.11.06 rd /s/q nasm-2.11.06
+if not exist nasm-2.11.06 svn export http://svn.python.org/projects/external/nasm-2.11.06
+
@rem OpenSSL
if exist openssl-1.0.1i rd /s/q openssl-1.0.1i
if not exist openssl-1.0.1j svn export http://svn.python.org/projects/external/openssl-1.0.1j