| |
| INSTALLATION INSTRUCTIONS FOR pyOpenSSL |
| ------------------------------------------------------------------------------ |
| |
| I have tested this on Debian Linux systems (woody and sid), Solaris 2.6 and |
| 2.7. Others have successfully compiled it on Windows and NT. |
| |
| |
| -- Building the Module on a Unix System -- |
| |
| pyOpenSSL uses distutils, so there really shouldn't be any problems. To build |
| the library: |
| |
| $ python setup.py build |
| |
| If your OpenSSL header files aren't in /usr/include, you may need to supply |
| the -I flag to let the setup script know where to look. The same goes for the |
| libraries of course, use the -L flag. Note that build won't accept these |
| flags, so you have to run first build_ext and then build! Example: |
| |
| $ python setup.py build_ext -I/usr/local/ssl/include -L/usr/local/ssl/lib |
| $ python setup.py build |
| |
| Now you should have a directory called OpenSSL that contains e.g. SSL.so and |
| __init__.py somewhere in the build dicrectory, so just: |
| |
| $ python setup.py install |
| |
| If you, for some arcane reason, don't want the module to appear in the |
| site-packages directory, use the --prefix option. |
| |
| You can, of course, do |
| |
| $ python setup.py --help |
| |
| to find out more about how to use the script. |
| |
| |
| -- Building the Module on a Windows System -- |
| |
| First you should get OpenSSL linked with the same runtime library that Python |
| uses. If you are using Python 2.6 you can use the installer at: |
| |
| http://www.slproweb.com/products/Win32OpenSSL.html |
| |
| The binaries in the installer are built with Visual Studio 2008 at the |
| time of this writing, which is the same compiler used for building the |
| official Python 2.6 installers. |
| |
| If you want to build pyOpenSSL for an older Python version, it is preferred |
| to build OpenSSL yourself, either with the Visual Studio 2003 compiler or |
| with the MinGW compiler. This way you avoid all potential incompatibilities |
| between different versions of runtime library (msvcrt.dll). To build |
| OpenSSL follow the instructions in its source distribution and make sure |
| that you build a shared library, not a static one. pyOpenSSL fails some of |
| its tests when linked with the static OpenSSL libraries. Use the same |
| compiler for OpenSSL that you will use for pyOpenSSL later. Make sure that |
| OpenSSL is properly installed before continuing. To install OpenSSL when |
| building with MinGW, use the folowing script: |
| |
| set OPENSSL_INSTALL_DIR=%1 |
| mkdir %OPENSSL_INSTALL_DIR% |
| mkdir %OPENSSL_INSTALL_DIR%\bin |
| mkdir %OPENSSL_INSTALL_DIR%\include |
| mkdir %OPENSSL_INSTALL_DIR%\include\openssl |
| mkdir %OPENSSL_INSTALL_DIR%\lib |
| copy /b .\*.dll %OPENSSL_INSTALL_DIR%\bin |
| copy /b .\out\openssl.exe %OPENSSL_INSTALL_DIR%\bin |
| copy /b .\outinc\openssl\* %OPENSSL_INSTALL_DIR%\include\openssl |
| copy /b .\out\*.a %OPENSSL_INSTALL_DIR%\lib |
| |
| Ensure that OpenSSL's openssl.exe executable can be found on PATH before |
| running pyOpenSSL's setup script. The setup script finds OpenSSL's include |
| dir and lib dir based on the location of openssl.exe, and the test suite |
| requires openssl.exe for output comparison. Alternatively, you can specify |
| the --with-openssl option to setup.py's build_ext command with the path to |
| the OpenSSL installation dir: |
| |
| > python setup.py build_ext --with-openssl=C:\path\to\openssl build |
| |
| pyOpenSSL is known to build with mingw32 for Python 2.3 through Python 2.5. |
| Before using the mingw32 compiler for Python 2.3, you will have to create |
| a Python library that MinGW understands. Find and download the pexports |
| program, put it and MinGW's bin directory on path, then run from Python's |
| install dir: |
| |
| > pexports python23.dll > libs\python23.def |
| > dlltool --dllname python23.dll --def libs\python23.def \ |
| --output-lib libs\libpython23.a |
| |
| For Python 2.4 and 2.5, no special preparation is needed, just make sure that |
| MinGW's gcc is on PATH. You can specify that mingw32 be used by passing |
| the --compiler argument to build_ext: |
| |
| C:\pyOpenSSL-X.Y> setup.py build_ext -c mingw32 bdist_msi |
| |
| The bdist_msi command will build an MSI installer. It can be substituted |
| with another bdist command if another kind of installer is desired or with |
| the install command if you want to install directly. |
| |
| For Python 2.4 and 2.5 you can use Visual Studio 2003 in addition to MinGW. |
| For Python 2.6, the official Windows installer of which is built with |
| Microsoft Visual Studio 2008 (version 9.0), Microsoft Visual Studio 2008 |
| (version 9.0) is required. |
| |
| To build with MSVC, just omit the compiler specific option: |
| |
| C:\pyOpenSSL-X.Y> setup.py bdist_msi |
| |
| The resulting binary distribution will be placed in the dist directory. To |
| install it, depending on what kind of distribution you create, run it, |
| unzip it, or copy it to Python installation's site-packages. |
| |
| And similarily, you can do |
| |
| setup.py --help |
| |
| to get more information. |
| |
| Big thanks to Itamar Shtull-Trauring, Oleg Orlov, Zooko O'Whielacronx, Chris |
| Galvan, Žiga Seilnacht, and #python and #distutils on FreeNode for their |
| help with Windows build instructions and to Michael Schneider for providing |
| Windows build hosts. |
| |
| -- Documentation -- |
| |
| The documentation is written in LaTeX, using the standard Python templates, |
| and tools to compile it into a number of forms are included. You need to |
| supply things like dvips, latex2html yourself of course! |
| |
| To build the text, html, postscript or dvi forms of the documentation, this is |
| what you do: |
| |
| cd doc |
| # To make the text-only documentation: |
| make text |
| # To make the dvi form: |
| make dvi |
| |
| It's as simple as that. Note that since Python's mkhowto script is used, if |
| you do first ``make dvi'' and then ``make ps'', the dvi file will disappear. |
| I included a special build target ``make all'' that will build all the |
| documentation in an order that won't let anything disappear. |
| |
| |
| @(#) $Id: INSTALL,v 1.7 2002/06/14 12:14:19 martin Exp $ |