◐ Shell
clean mode source ↗

Issue 1448: Build Python with VS 2005(MSVC8)

There are several problems that cause us can't build python with vs 
2005.

1. some libraries are outdated.

for example, tcl8.4.12, tk8.4.12. Just download a newer version will 
resolve this problem.
wget http://prdownloads.sourceforge.net/tcl/tcl8.4.16-src.tar.gz
wget http://prdownloads.sourceforge.net/tcl/tk8.4.16-src.tar.gz
wget http://prdownloads.sourceforge.net/tix/Tix8.4.2-src.tar.gz

I think it's better to upgrade bdb too, so i select bdb 4.6.21.
http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz

upgrade bzip to 1.0.4
wget http://www.bzip.org/1.0.4/bzip2-1.0.4.tar.gz

upgrade openssl to 0.9.9g
wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz

It's not convenient to build sqlite-3.5.2, so we just download a binary 
version from it's official site.
wget http://www.sqlite.org/sqlitedll-3_5_2.zip
wget http://www.sqlite.org/sqlite-source-3_5_2.zip

2. more detail on build these libraries
generally, you can follow the guide in PCbuild/readme.txt. but there 
are thing you need to pay attention to .

For Tix8.4.2, we should create a python.mak for it, and make a patch on 
makefile.vc. User also need to 'set MSVCDIR=%VCINSTALLDIR%' in cmd 
window.

For bdb-4.6.21, I can't upgrade dsw to sln with the command:
	devenv db-4.6.21\build_windows\Berkeley_DB.dsw /Upgrade
instead, open dsw in VS 2005 IDE, convert and save it.

to build openssl, as the guide said, we can use build_ssl.py in 
PCbuild. but we need to move build_ssl.py, build_ssl.bat and _ssl.mak 
to PCbuild8, and make a little modification.

3. make pcbuild.sln work properly.
some options are missed in pcbuild.sln and it's projects. we need to 
edit pyproject.vsprops and etc. 

I can't make make_versioninfo work at first, and then i found that may 
have relationship with SxS(Side by Side, manifest), I run the resource 
wizard and did'nt add resource, but the wizard create resource.h 
and .rc file, after i build the project, it work correctly. 

4. output directory changed
build python25 in x86 with debug mode, the *.lib, *.dll, *.pyd etc will 
be placed in win32debug. to make build_ssl.py, I calculate the output 
directory add it to LIBPATH.

Finally, I changed the readme.txt in PCbuild8, so you can follow the 
newer guide.
I'm rejecting this patch, for several reasons:
- it addresses too many issues in a single patch. Separate bug reports
need to be submitted for independent issues.
- for each issue, it fails to explain what the problem is. For example,
"some libraries are outdated" is not a problem per se, but only would be
a problem if those old libraries don't work with the new compiler; the
actual problem is not reported here.
- it suggests to upgrade libraries; I assume it does so for Python 2.6
and 3.0. However, upgrading libraries should be deferred until before
the release. People building the development versions of Python are
expected to arrange the build environment themselves in a way they like,
using readme.txt only as a guideline.
- the patches to upgrade the libraries are incomplete.