diff --git a/README.rst b/README.rst
index 6a22399e19..21bd63fd64 100644
--- a/README.rst
+++ b/README.rst
@@ -88,7 +88,12 @@ System requirements:
- Python 2.7
- At least 1GB of free RAM if you want to join large public rooms like #matrix:matrix.org
-Synapse is written in python but some of the libraries is uses are written in
+Installing from source
+----------------------
+(Prebuilt packages are available for some platforms - see `Platform-Specific
+Instructions`_.)
+
+Synapse is written in python but some of the libraries it uses are written in
C. So before we can install synapse itself we need a working C compiler and the
header files for python C extensions.
@@ -131,6 +136,10 @@ Installing prerequisites on openSUSE::
sudo zypper in python-pip python-setuptools sqlite3 python-virtualenv \
python-devel libffi-devel libopenssl-devel libjpeg62-devel
+Installing prerequisites on OpenBSD::
+ doas pkg_add python libffi py-pip py-setuptools sqlite3 py-virtualenv \
+ libxslt
+
To install the synapse homeserver run::
virtualenv -p python2.7 ~/.synapse
@@ -302,7 +311,7 @@ See https://github.com/vector-im/vector-web/issues/1977 and
https://developer.github.com/changes/2014-04-25-user-content-security for more details.
-Platform Specific Instructions
+Platform-Specific Instructions
==============================
Debian
@@ -364,6 +373,32 @@ Synapse can be installed via FreeBSD Ports or Packages contributed by Brendan Mo
- Ports: ``cd /usr/ports/net/py-matrix-synapse && make install clean``
- Packages: ``pkg install py27-matrix-synapse``
+
+OpenBSD
+-------
+
+There is currently no port for OpenBSD. Additionally, OpenBSD's security
+settings require a slightly more difficult installation process.
+
+1) Create a new directory in ``/usr/local`` called ``_synapse``. Also, create a
+ new user called ``_synapse`` and set that directory as the new user's home.
+ This is required because, by default, OpenBSD only allows binaries which need
+ write and execute permissions on the same memory space to be run from
+ ``/usr/local``.
+2) ``su`` to the new ``_synapse`` user and change to their home directory.
+3) Create a new virtualenv: ``virtualenv -p python2.7 ~/.synapse``
+4) Source the virtualenv configuration located at
+ ``/usr/local/_synapse/.synapse/bin/activate``. This is done in ``ksh`` by
+ using the ``.`` command, rather than ``bash``'s ``source``.
+5) Optionally, use ``pip`` to install ``lxml``, which Synapse needs to parse
+ webpages for their titles.
+6) Use ``pip`` to install this repository: ``pip install
+ https://github.com/matrix-org/synapse/tarball/master``
+7) Optionally, change ``_synapse``'s shell to ``/bin/false`` to reduce the
+ chance of a compromised Synapse server being used to take over your box.
+
+After this, you may proceed with the rest of the install directions.
+
NixOS
-----
@@ -759,6 +794,10 @@ Then update the `users` table in the database::
Synapse Development
===================
+Before setting up a development environment for synapse, make sure you have the
+system dependencies (such as the python header files) installed - see
+`Installing from source`_.
+
To check out a synapse for development, clone the git repo into a working
directory of your choice::
@@ -770,8 +809,8 @@ to install using pip and a virtualenv::
virtualenv env
source env/bin/activate
- python synapse/python_dependencies.py | xargs -n1 pip install
- pip install setuptools_trial mock
+ python synapse/python_dependencies.py | xargs pip install
+ pip install lxml mock
This will run a process of downloading and installing all the needed
dependencies into a virtual env.
@@ -779,7 +818,7 @@ dependencies into a virtual env.
Once this is done, you may wish to run Synapse's unit tests, to
check that everything is installed as it should be::
- python setup.py test
+ PYTHONPATH="." trial tests
This should end with a 'PASSED' result::
|