Installation

Requirements

  • LibreSSL >= 2.3.3

  • cffi > 1.0.0

  • pytest (optional, running tests)

  • make (optional, building docs)

  • sphinx (optional, building docs)

  • sphinx-autoapi (optional, building docs)

Build dependencies:

  • Windows: Microsoft Visual Studio 2015, cmake >=3.5

  • GNU/Linux: gcc, make, autotools

Prerequisities

In the following $package_path means the path to pylibressl’s extracted/cloned source tree root.

GNU/Linux

Unpack LibreSSL source tarball (can be found here) and execute ./configure --prefix=PREFIX, make and make install. You might want to run make check as well. PREFIX should be $package_path/pylibressl/libressl.

Windows (Visual Studio)

First of all, cmake should be installed. The following steps were tested with cmake 3.5 and Visual Studio 2015, but it should work for sufficiently recent versions too.

Unpack LibreSSL sources and execute the following in the source root:

mkdir build-vs
cd build-vs
cmake -G"Visual Studio 14 2015" ..

It will generate Visual Studio solution and other build files. Then you can build it in MSBuild console using msbuild.exe LibreSSL.sln.

Create directories $package_path\pylibressl\libressl\{include,lib}. Copy build-vs\crypto\Debug\crypto.lib to $package_path\pylibressl\libressl\lib, include\openssl to $package_path\pylibressl\libressl\include.

Building and running

GNU/Linux

Before testing/building run

export LD_LIBRARY_PATH=$package_path/pylibressl/libressl/lib

To build extensions in dev mode, call make devbuild. Run tests using make test or make quiet_test. To build the package so that it would be available to other tools use python setup.py install or python setup.py develop.

Windows

Add $package_path\libressl\lib to your PATH. Build and install package using python setup.py install or python setup.py develop. Optionally you can run tests using python setup.py tests or python -m pytest in the project root.

Generating documentation

To build the documentation, install sphinx and sphinx-autoapi and run the following in the project root:

sphinx-apidoc -e -M -o docs/ . setup.py
cd docs/
make html

or just

make docs

HTMLs will be written to docs/_build/html.