summaryrefslogtreecommitdiff
path: root/INSTALL.rst
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2015-10-19 14:30:05 +0200
committerMatěj Cepl <mcepl@cepl.eu>2015-11-02 14:34:22 +0100
commit10625197c29c1de5c9bd26361cbae12d8912a20d (patch)
tree4a607abcca79008cc458c18d9330383940eb7112 /INSTALL.rst
parentdaf41853d3312b3a7a10f148d78c933778c955cc (diff)
downloadm2crypto-10625197c29c1de5c9bd26361cbae12d8912a20d.tar.gz
Fix the biggest disasters in README.
Fixes #61
Diffstat (limited to 'INSTALL.rst')
-rw-r--r--INSTALL.rst233
1 files changed, 233 insertions, 0 deletions
diff --git a/INSTALL.rst b/INSTALL.rst
new file mode 100644
index 0000000..2924349
--- /dev/null
+++ b/INSTALL.rst
@@ -0,0 +1,233 @@
+==================== Installing M2Crypto ====================
+
+:Maintainer: Heikki Toivonen :Web-Site:
+http://chandlerproject.org/Projects/MeTooCrypto
+
+.. contents::
+
+Pre-requisites
+--------------
+
+The following software packages are pre-requisites:
+
+- **Python 2.6 or newer**
+- **OpenSSL 1.0.1e or newer**
+- **SWIG 1.3.40 or newer**
+- Python 2.6 platforms require the Python package unittest2 to be
+ installed
+
+Note about OpenSSL versions early in the 0.9.7 series
+-----------------------------------------------------
+
+Early OpenSSL 0.9.7 versions require the **i386** symbol to be defined.
+Uncomment this line in setup.py:
+
+#'-D\_\_i386\_\_', # Uncomment for early OpenSSL 0.9.7 versions
+
+if you get this compile-time error:
+
+This openssl-devel package does not work your architecture?
+
+Note about Fedora Core -based Distributions
+-------------------------------------------
+
+Fedora Core (and RedHat, CentOS etc.) have made changes to OpenSSL
+configuration compared to many other Linux distributions. If you can not
+build M2Crypto normally, try the fedora\_setup.sh script included with
+M2Crypto sources.
+
+Installing on Unix-like systems, including Cygwin
+-------------------------------------------------
+
+::
+
+::
+
+ $ tar zxf m2crypto-<version>.tar.gz
+ $ cd m2crypto-<version>
+ $ python setup.py build
+ $ python setup.py install
+
+If you have installed setuptools you can also optionally run tests like
+this:
+
+::
+
+ $ python setup.py test
+
+This assumes OpenSSL is installed in /usr. You can provide an alternate
+OpenSSL prefix location with --openssl option to build\_ext command.
+Other commands accept standard options if you need them.
+
+Some distributions, like Fedora Core, package OpenSSL headers in a
+different location from OpenSSL itself. In that case you need to tell
+build\_ext the additional include location with -I option.
+
+Differences when installing on Windows
+--------------------------------------
+
+Before building from source, you need to install OpenSSL's include
+files, import libraries and DLLs. By default setup.py assumes that
+OpenSSL include files are in ``c:\pkg\openssl\include``, and the import
+libraries in ``c:\pkg\openssl\lib``. As with other platforms, you can
+specify a different OpenSSL location with --openssl option to build\_ext
+command.
+
+Using OpenSSL 0.9.8 on Windows requires Python be built with applink.c
+(add an include statement in python.c). This is not a requirement for
+Linux or MacOSX. (applink.c is provided by OpenSSL.)
+
+MSVC++ ~\ :sub:`:sub:`:sub:`~```
+
+setup.py is already configured to work with MSVC++ by default.
+
+With MSVC++, the OpenSSL DLLs, as built, are named ``libeay32.dll`` and
+``ssleay32.dll``. Install these somewhere on your PATH; for example in
+``c:\bin``, together with ``openssl.exe``.
+
+For MSVC++, the import libraries, as built by OpenSSL, are named
+``libeay32.lib`` and ``ssleay32.lib``.
+
+MINGW :sub:`:sub:`:sub:`~```
+
+.. NOTE:: The following instructions for building M2Crypto with MINGW
+are from M2Crypto 0.12. These instructions should continue to work for
+this release, although I have not tested them.
+
+Read Sebastien Sauvage's webpage:
+
+::
+
+ http://sebsauvage.net/python/mingw.html
+
+For mingw32, the OpenSSL import libraries are named ``libeay32.a`` and
+``libssl32.a``. You may need to edit setup.py file for these.
+
+You'll also need to create ``libpython2[123].a``, depending on your
+version of Python.
+
+OpenSSL DLLs for mingw32 are named ``libeay32.dll`` and
+``libssl32.dll``. Install these somewhere on your PATH; for example in
+``c:\bin``, together with ``openssl.exe``.
+
+Build M2Crypto:
+
+::
+
+ python setup.py build -cmingw32
+ python setup.py install
+
+BC++ :sub:`:sub:`~``\ ~
+
+.. NOTE:: The following instructions for building M2Crypto with MSVC++
+6.0 and BC++ 5.5 free compiler suite are from M2Crypto 0.10. These
+instructions should continue to work for this release, although I have
+not tested them.
+
+For BC++ these files are created from the MSVC++-built ones using the
+tool ``coff2omf.exe``. I call them ``libeay32_bc.lib`` and
+``ssleay32_bc.lib``, respectively. You will need to edit setup.py file
+for these.
+
+You'll also need Python's import library, e.g., ``python22.lib``, to be
+the BC++-compatible version; i.e., create ``python22_bc.lib`` from
+``python22.lib``, save a copy of ``python22.lib`` (as
+``python22_vc.lib``, say), then rename ``python22_bc.lib`` to
+``python22.lib``.
+
+Now you are ready to build M2Crypto. Do one of the following::
+
+::
+
+ python setup.py build
+ python setup.py build -cbcpp
+
+Then,
+
+::
+
+::
+
+ python setup.py install
+
+MacOSX
+------
+
+| Follow the standard instructions to build and install M2Crypto.
+| However, should you encounter difficulties, you may want to consider
+the following possibilities.
+
+- Distutils from Python 2.5 provides support for universal builds (ppc
+ and i386) and Distutils requires a recent version of Xcode. See
+ http://developer.apple.com/tools/download/
+
+- OpenSSL 0.9.7l gets installed in /usr with Apple's Security Update
+ 2006-007. If you need features in OpenSSL 0.9.8, you should consider
+ installing 0.9.8 in /usr/local. The commands are:
+
+ OpenSSL: ./config shared --prefix=/usr/local make make test sudo make
+ install [or... install\_sw]
+
+ M2Crypto: python setup.py build build\_ext --openssl=/usr/local sudo
+ python setup.py install build\_ext --openssl=/usr/local
+
+To make Universal builds, you will need to uncomment a line in setup.py:
+
+extra\_link\_args = ['-Wl,-search\_paths\_first'],
+
+If that does not work, here is what Marc Hedlund was able to get
+working:
+
+First, download OpenSSL 0.9.8d and unpack it. Edit the OpenSSL Makefiles
+per PROBLEMS. Then:
+
+::
+
+ ./config no-shared no-asm --prefix=/usr/local
+ make
+ make test
+ sudo make install
+ make clean
+ ./Configure no-shared no-asm --prefix=/usr/local darwin-ppc-cc
+ make build_libs "CC=cc -arch ppc"
+ lipo -info lib*
+ mkdir -p build/ppc
+ mv lib* build/ppc
+ make clean
+ ./Configure no-shared no-asm --prefix=/usr/local darwin-i386-cc
+ make build_libs "CC=cc -arch i386"
+ lipo -info lib*
+ mkdir -p build/i386
+ mv lib* build/i386/
+ /bin/ls -1 build/i386/ > libnames.tmp
+ mkdir universal
+
+Create a script in the OpenSSL directory called 'make\_universal', with
+these contents:
+
+::
+
+ #!/bin/sh
+ for lib in `cat libnames.tmp`; do
+ lipo -create build/*/$lib -output universal/$lib
+ done
+ exit 0
+
+Then:
+
+::
+
+ sh make_universal
+ lipo -info universal/lib*
+ sudo cp universal/lib* /usr/local/lib
+ lipo -info /usr/local/lib/lib{crypto,ssl}*
+ cd ../m2crypto-0.17
+
+Then edit the m2crypto setup.py and uncomment the extra\_link\_args line
+at the end.
+
+::
+
+ python setup.py build build_ext --openssl=/usr/local
+ sudo python setup.py install build_ext --openssl=/usr/local
+