From 5c0eb246d468454de9e84dca0d08c813459a5a6d Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 19 Dec 2012 07:45:02 +0900 Subject: documentation update! reSTructured (no pun intended) the sphinx docs, and trimmed README --- docs/dev/environment.rst | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/dev/environment.rst (limited to 'docs/dev/environment.rst') diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst new file mode 100644 index 00000000..7eafcdea --- /dev/null +++ b/docs/dev/environment.rst @@ -0,0 +1,59 @@ +.. _environment: + +Setting up a Work Environment +============================== + +This document covers how to get an enviroment ready to contribute code to the LEAP Client. + +Base Dependencies +------------------ +Leap client depends on these libraries: + +* `python 2.6 or 2.7` +* `qt4` libraries (see also :ref:`Troubleshooting PyQt install ` about how to install inside your virtualenv) +* `libgnutls` +* `openvpn` + +.. _virtualenv: + +Working with virtualenv +----------------------- + +Intro to virtualenv +^^^^^^^^^^^^^^^^^^^ +Virtualenv blah blah + +Install python dependencies +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can install python dependencies with pip:: + + $ apt-get install python-pip python-dev libgnutls-dev + $ pip install -r pkg/requirements.pip + +.. _pyqtvirtualenv: + +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 the following script after creating your virtualenv. It will symlink to your global PyQt installation (`this is the recommended way if you are running a debian-based system`):: + + $ pkg/postmkvenv.sh + +A second option if that does not work for you would be to install PyQt globally and pass the `--site-packages` option when you are creating your virtualenv:: + + $ apt-get install python-qt4 + $ virtualenv --site-packages . + +Or, if you prefer, you can also 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 + + +Cloning the repo +---------------- + +`XXX` -- cgit v1.2.3 From 41a084823ebc967fcabb613a97e8d72c662dbe18 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 19 Dec 2012 09:38:42 +0900 Subject: added transifex config, updated some docs --- docs/dev/environment.rst | 66 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 8 deletions(-) (limited to 'docs/dev/environment.rst') diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst index 7eafcdea..55696537 100644 --- a/docs/dev/environment.rst +++ b/docs/dev/environment.rst @@ -5,6 +5,16 @@ Setting up a Work Environment This document covers how to get an enviroment ready to contribute code to the LEAP Client. +Cloning the repo +---------------- +.. note:: + Stable releases will be in *master* branch (nothing there yet, move on!). + Development code lives in *develop* branch. + +:: + + git clone git://leap.se/leap_client + Base Dependencies ------------------ Leap client depends on these libraries: @@ -14,21 +24,43 @@ Leap client depends on these libraries: * `libgnutls` * `openvpn` +In debian-based systems:: + + $ apt-get install openvpn python-qt4 python-crypto python-gnutls + +To install the software from sources:: + + $ apt-get install python-pip python-dev libgnutls-dev + .. _virtualenv: Working with virtualenv ----------------------- -Intro to virtualenv +Intro ^^^^^^^^^^^^^^^^^^^ -Virtualenv blah blah + +*Virtualenv* is the *Virtual Python Environment builder*. + +It is a tool to create isolated Python environments. + +The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded. + +Read more about it in the `project documentation page `_. + + +Create and activate your dev environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:: + + $ virtualenv + $ source /bin/activate Install python dependencies ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -You can install python dependencies with pip:: +You can install python dependencies with pip. If you do it inside your working environment, they will be installed avoiding the need for administrative permissions:: - $ apt-get install python-pip python-dev libgnutls-dev $ pip install -r pkg/requirements.pip .. _pyqtvirtualenv: @@ -38,7 +70,7 @@ 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 the following script after creating your virtualenv. It will symlink to your global PyQt installation (`this is the recommended way if you are running a debian-based system`):: +As a workaround, you can run the following script after creating your virtualenv. It will symlink to your global PyQt installation (*this is the recommended way if you are running a debian-based system*):: $ pkg/postmkvenv.sh @@ -52,8 +84,26 @@ Or, if you prefer, you can also download the official PyQt tarball and execute ` $ python configure.py $ make && make install +.. note:: + this section could be completed with useful options that can be passed to the virtualenv command (e.g., to make portable paths, site-packages, ...). -Cloning the repo ----------------- -`XXX` + +.. _policykit: + +Running openvpn without root privileges +--------------------------------------- + +In linux, we are using ``policykit`` to be able to run openvpn without run privileges, and a policy file is needed to be installed for that to be possible. +The setup script tries to install the policy file when installing the client system-wide, so if you have installed the client in your global site-packages at least once it should have copied this file for you. + +If you *only* are running the client from inside a virtualenv, you will need to copy this file by hand:: + + $ sudo cp pkg/linux/polkit/net.openvpn.gui.leap.policy /usr/share/polkit-1/actions/net.openvpn.gui.leap.policy + +Missing Authentication agent +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you are running a desktop other than gnome or unity, you might get an error saying that you are not running the authentication agent. You can launch it like this:: + + /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 & -- cgit v1.2.3 From 0bb7a486ae2aaf8171afcbe6a9846cbd5a99e0a5 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 19 Dec 2012 23:55:03 +0900 Subject: fix links to online docs --- docs/dev/environment.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'docs/dev/environment.rst') diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst index 55696537..8561396e 100644 --- a/docs/dev/environment.rst +++ b/docs/dev/environment.rst @@ -1,7 +1,7 @@ .. _environment: -Setting up a Work Environment -============================== +Setting up a development environment +==================================== This document covers how to get an enviroment ready to contribute code to the LEAP Client. @@ -24,6 +24,8 @@ Leap client depends on these libraries: * `libgnutls` * `openvpn` +Debian +^^^^^^ In debian-based systems:: $ apt-get install openvpn python-qt4 python-crypto python-gnutls @@ -79,7 +81,8 @@ A second option if that does not work for you would be to install PyQt globally $ apt-get install python-qt4 $ virtualenv --site-packages . -Or, if you prefer, you can also download the official PyQt tarball and execute `configure.py` in the root folder of their distribution, which generates a `Makefile`:: +.. TODO add link to PyQt tar.gz +Or, if you prefer, you can also 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 @@ -99,7 +102,7 @@ The setup script tries to install the policy file when installing the client sys If you *only* are running the client from inside a virtualenv, you will need to copy this file by hand:: - $ sudo cp pkg/linux/polkit/net.openvpn.gui.leap.policy /usr/share/polkit-1/actions/net.openvpn.gui.leap.policy + $ sudo cp pkg/linux/polkit/net.openvpn.gui.leap.policy /usr/share/polkit-1/actions/ Missing Authentication agent ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- cgit v1.2.3 From 6a8b5c24571251cb39e8d83333b0450e8324dcbe Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 20 Dec 2012 01:30:18 +0900 Subject: add links to pyqt and openvpn --- docs/dev/environment.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'docs/dev/environment.rst') diff --git a/docs/dev/environment.rst b/docs/dev/environment.rst index 8561396e..55f00d5e 100644 --- a/docs/dev/environment.rst +++ b/docs/dev/environment.rst @@ -22,7 +22,7 @@ Leap client depends on these libraries: * `python 2.6 or 2.7` * `qt4` libraries (see also :ref:`Troubleshooting PyQt install ` about how to install inside your virtualenv) * `libgnutls` -* `openvpn` +* `openvpn`_ Debian ^^^^^^ @@ -76,13 +76,12 @@ As a workaround, you can run the following script after creating your virtualenv $ pkg/postmkvenv.sh -A second option if that does not work for you would be to install PyQt globally and pass the `--site-packages` option when you are creating your virtualenv:: +A second option if that does not work for you would be to install PyQt globally and pass the ``--site-packages`` option when you are creating your virtualenv:: $ apt-get install python-qt4 $ virtualenv --site-packages . -.. TODO add link to PyQt tar.gz -Or, if you prefer, you can also download the official PyQt tarball and execute `configure.py` in the root folder of their distribution, which generates a ``Makefile``:: +Or, if you prefer, you can also `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 -- cgit v1.2.3