summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst171
1 files changed, 171 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 00000000..cc30c544
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,171 @@
+=========================================
+The LEAP Encryption Access Project Client
+=========================================
+
+*your internet encryption toolkit*
+
+Installation
+=============
+
+Base Dependencies
+------------------
+Leap client depends on these libraries:
+
+* python 2.6 or 2.7
+* qt4 libraries (see installing Qt section below)
+* libgnutls
+* openvpn
+
+Python packages are listed in ``pkg/requirements.pip`` and ``pkg/test-requirements.pip``
+
+Debian systems
+--------------
+# XXX TODO: move to packaging doc.
+
+* python-qt4
+* python-crypto
+* python setuptools
+* python-nose, python-mock, python-coverage (if you want to run tests)
+
+Note: these two need a version that is not found in the current debian stable or in ubuntu 12.04.
+
+* python-gnutls == 1.1.9
+* python-keyring
+
+Under a debian-based system, you can run::
+
+ # apt-get install openvpn python-qt4 python-crypto
+
+For testing:
+
+ python-nose python-mock python-coverage
+
+For _building_ the package you will need to install also::
+
+ pyqt4-dev-tools libgnutls-dev python-setuptools python-all-dev
+
+
+Install python dependencies with pip
+-------------------------------------
+# XXX TODO: move to developers doc.
+
+Use pip (preferrable inside a virtualenv) to install the required python packages::
+
+ # apt-get install python-pip python-dev libgnutls-dev
+ % pip install -r pkg/requirements.pip
+
+
+Install leap-client
+-------------------
+
+After getting the source and installing all the dependencies, proceed to install ``leap-client`` package:
+
+# run this if you have installed previous versions before::
+
+ python setup.py clean
+
+And finally, build and install leap-client::
+
+ python setup.py install # as root if installing globally.
+
+
+Running the App
+-----------------
+
+After a successful installation, there should be a launcher called leap-client somewhere in your path::
+
+ % leap-client
+
+In order to run the client in debug mode::
+
+ % leap-client --debug --logfile /tmp/leap.log
+
+To see all the available command line options::
+
+ % leap-client --help
+
+
+Development
+==============
+
+Troubleshooting PyQt install inside a virtualenv
+------------------------------------------------
+If you attempt to install PyQt inside a virtualenv using pip, it will fail because PyQt4 does not use the standard setup.py mechanism.
+
+As a workaround, you can:
+
+ * run pkg/postmkvenv.sh after creating your virtualenv. It will symlink to your global PyQt installation _(recommended)_.
+ * install PyQt globally and make a virtualenv with --site-packages
+
+Or, if you prefer, you can download the official PyQt tarball and execute `configure.py` in the root folder of their distribution, which generates a Makefile::
+
+ python configure.py
+ make && make install
+
+
+Hack
+--------------
+
+The LEAP client git repository is available at:
+git://leap.se/leap_client
+
+Some steps need to be run when setting a development environment for the first time.
+
+# recommended: enable a **virtualenv** to isolate your libraries::
+
+ % virtualenv . # ensure your .gitignore knows about it
+ % source bin/activate
+
+# make sure you are in the development branch::
+
+ (leap_client)% git checkout develop
+ (leap_client)% pkg/postmkvenv.sh
+ (leap_client)% python setup.py develop
+
+to avoid messing with the entry point and global versions installed,
+it's recommended to run the app like this during development cycle::
+
+ (leap_client)% cd src/leap
+ (leap_client)% python app.py --debug
+
+Install testing dependencies
+----------------------------
+
+have a look at ``pkg/test-requirements.pip``
+The ./run_tests.sh command should install all of them in your virtualenv for you.
+
+Running tests
+-------------
+
+There is a convenience script at ``./run_tests.sh``
+
+If you want to run specific tests, pass the (sub)module to nose::
+ nosetests leap.util
+
+or::
+ nosetests leap.util.tests.test_leap_argparse
+
+Hint: colorized output
+----------------------
+Install ``rednose`` locally and activate it, and give your eyes a rest :)::
+
+ (leap_client)% pip install rednose
+ (leap_client)% export NOSE_REDNOSE=1
+
+
+Tox
+---
+For running testsuite against all the supported python versions (currently 2.6 and 2.7), run::
+
+ % tox -v
+
+
+Compiling resource/ui files
+-----------------------------
+
+You should refresh resource/ui files every time you change an image or a resource/ui (.ui / .qc). From the root folder::
+
+ % make ui
+ % make resources
+
+As there are some tests to guard against unwanted resource updates, you will have to update the resource hash in those failing tests.