The Windows build now depends on Python 3.6 to fetch externals, but it
will be downloaded via NuGet (which is downloaded via PowerShell) if it
is not available via `py -3.6`. This means the only thing that must be
installed on a modern Windows box to do a full build of CPython with all
extensions is Visual Studio.
Cherry-picked from 51599e2bdd, parts of 40a23e8899, parts of 68d663cf85, d5cd21d75a, and possibly others that I've missed.
Also:
* Rename db -> bsddb for disambiguity
* Update sqlite3 to 3.14.2.0 since it's the version we use on 3.x, and it's simpler to just use it than to also upload the old version to cpython-source-deps
* Add PCbuild/*.ilk to .gitignore
* Silence warnings caused by duplicated defines from Modules\expat\winconfig.h
* Add WIN32 define to VS9.0 project files to match MSBuild project files.
* bpo-30368: Update build_ssl.py to restore Perl-less building
OpenSSL 1.0.2 releases changed how files are copied in the makefile,
thus causing Perl to be required even for Python's "prepared" OpenSSL.
Now build_ssl.py does the requisite copies before running nmake.
* bpo-30368: Update build_ssl.py to use prepared OpenSSL
* Updates SSL-linking projects to use the new include{suffix} directory
* build_ssl.py now only copies those files not handled by prepare_ssl.py
* * bpo-30368: Update build_ssl.py to use prepared OpenSSL
* Update SSL-linking projects to use the new include{suffix} directory
* Move comment to following line
This changes the main documentation, doc strings, source code comments, and a
couple error messages in the test suite. In some cases the word was removed
to fix the grammar.
The old project files move to PC/VS9.0 and remain supported.
VS2008 is still required to build 2.7; VS2010 (or later, plus Windows SDK 7.1)
is *also* required to use the new project files.
When ``None`` was passed as a ``REG_BINARY`` value to SetValueEx,
PyMem_DEL was called on an uninitialized buffer. Patch by John Ehresman.
(Also an incidental typo fix in a comment in test_winreg)
requires them. Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.
When converting REG_DWORD registry values into Python, the conversion
needs to be made from an *unsigned* long (k instead of i) to match the
DWORD type.
Update the various project files with Python/random.c which was recently added.
On my old Windows XP computer:
- VS8.0 works reasonably.
- I don't have the VS7.1 compiler.
- VC6 does not compile, at least with the SDK shipped with the compiler (12 years ago!); newer SDKs might work.