[Python-Dev] Windows package for new SSL package?

Mark Hammond mhammond at skippinet.com.au
Thu Sep 13 01:22:48 CEST 2007


> I can't figure out how to build a Windows package for ssl-1.1.tar.gz,
> and probably don't have the tools to do it anyway.  I presume that
> both a Windows machine and Visual Studio (because there's a C
> extension) is required?
> 
> Anyone out there who's interested in the challenge?
> 
> It's at http://www.parc.com/janssen/transient/ssl-1.1.tar.gz.
> 

I had a bit of a look at this.  I think I managed to get it building:
 
* find_ssl() is along way from working on Windows.  Python itself uses magic
to locate an SSL directory in the main Python directory's parent.  On my
system, this is c:\src\openssl-0.9.7e, but obviously that could be almost
anywhere, and with almost any name.  See PCBuild\build_ssl.py and
PCBuild\_ssl.mak for the gory details.  I'm not sure how you would like to
approach this (insist on an environment variable for the top-level SSL dir
name?), but in the meantime I hacked find_ssl() to:

    ssl_incs = [r"\src\openssl-0.9.7e\inc32",]
    ssl_libs = [r"\src\openssl-0.9.7e\out32"]
    return ssl_incs, ssl_libs, ["libeay32", "ssleay32", "gdi32", "wsock32"] 

* The call to find_ssl() appears to discard the 3rd param:

ssl_incs, ssl_libs, libs = find_ssl()
...
      ext_modules=[Extension('ssl._ssl2', ['ssl/_ssl2.c'],
                             include_dirs = ssl_incs + [socket_inc],
                             library_dirs = ssl_libs,
                             libraries = ['ssl', 'crypto'],
                             depends = ['ssl/socketmodule.h'])],

The 'libraries =' line probably means to pass 'libs' rather than the
literal.

* The "depends = ['ssl/socketmodule.h']" fails for me - no header of that
name exists in the ssl directory in your archive.

After those changes I was able to get it built and tested:
"""
Ran 15 tests in 3.157s

OK
"""

Hope this helps,

Mark



More information about the Python-Dev mailing list