Build instructions for the Windows installer. refs #2363
authorDaira Hopwood <daira@jacaranda.org>
Thu, 12 Mar 2015 15:29:02 +0000 (15:29 +0000)
committerDaira Hopwood <daira@jacaranda.org>
Thu, 9 Apr 2015 14:40:01 +0000 (15:40 +0100)
Author: Ramakrishnan Muthukrishnan <ram@leastauthority.com>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
docs/build/windows-installer.rst [new file with mode: 0644]

diff --git a/docs/build/windows-installer.rst b/docs/build/windows-installer.rst
new file mode 100644 (file)
index 0000000..8cee823
--- /dev/null
@@ -0,0 +1,92 @@
+Building Tahoe-LAFS on Windows-7 (64-bit)
+=========================================
+
+This document details the steps to build Tahoe-LAFS on Windows. The instructions
+were tried on Windows-7 64-bit. Building on a 32-bit machine shouldn't be too
+different.
+
+
+Download and install Microsoft Visual C++ compiler for Python 2.7
+-----------------------------------------------------------------
+
+For reasons detailed in <https://docs.python.org/2/extending/windows.html>,
+Python extension modules need to be built using a compiler compatible with
+the same version of Visual C++ that was used to build Python itself. Until
+recently, this meant downloading Microsoft Visual Studio 2008 Express Edition
+and Windows SDK 3.5. The recent release of the Microsoft Visual C++ compiler
+for Python 2.7 made things a lot simpler.
+
+So, the first step is to download and install the C++ compiler from Microsoft from `this link`_.
+
+.. _this link: http://www.microsoft.com/en-us/download/details.aspx?id=44266
+
+
+Download and install Perl
+-------------------------
+
+Download and install ActiveState Perl:
+
+* go to `the ActiveState Perl download page`_.
+* identify the correct link and manually change it from http to https.
+
+.. _the ActiveState Perl download page: https://www.activestate.com/activeperl/downloads
+
+
+Download and install the latest OpenSSL version
+-----------------------------------------------
+
+* Download the latest OpenSSL from `the OpenSSL source download page`_.
+* Untar it.
+* Invoke ``"C:\Users\UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat" x86_amd64``
+* Go to the untar'ed openssl source base directory and run the following commands.
+* ``mkdir c:\dist``
+* ``perl Configure VC-WIN64A --prefix=c:\dist\openssl64 no-asm enable-tlsext``
+* ``ms\do_win64a.mak``
+* ``nmake -f ms\ntdll.mak``
+* ``nmake -f ms\ntdll.mak install``
+
+At the time of writing, the latest version was OpenSSL 1.0.1l.
+
+.. _the OpenSSL source download page: https://www.openssl.org/source/
+
+
+Building PyOpenSSL
+------------------
+
+* Set up the build environment:
+
+``"C:\Users\UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat" x86_amd64``
+
+* Download and untar pyOpenSSL 0.13.1 (see `ticket #2221`_ for why we currently
+  use this version).
+* Set OpenSSL ``LIB``, ``INCLUDE`` and ``PATH``.
+
+``set PYCA_WINDOWS_LINK_TYPE=dynamic``
+``set LIB=c:\dist\openssl64\lib;%LIB%``
+``set INCLUDE=c:\dist\openssl64\include;%INCLUDE%``
+``set PATH=c:\dist\openssl64\bin;%PATH%``
+
+* ``python setup.py build``
+* ``python setup.py install``
+
+.. _ticket #2221: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2221
+
+
+Building Tahoe-LAFS
+-------------------
+
+Now, with all the prerequisites built and installed, we can proceed to build Tahoe-LAFS.
+
+* Download and install ``git``.
+* Download and install Python 2.7.x.
+* ``git clone https://github.com/tahoe-lafs/tahoe-lafs.git``
+* ``cd tahoe-lafs``
+* ``python setup.py build``
+* Test the build by invoking the ``bin\tahoe`` script.
+
+
+Building the installer
+----------------------
+
+* TBD
+