LEAP The LEAP Encryption Access Project your internet encryption toolkit Installation ============= Dependencies -------------- Listed in pkg/requirements.pip and pkg/test-requirements.pip * python 2.6 or 2.7 * python setuptools * qt4 libraries * python-qt4 * python-gnutls == 1.1.9 * python-nose, python-mock, python-coverage (if you want to run tests) If you are on a debian-based system, you can run: apt-get install python-qt4 python-qt4-doc pyqt4-dev-tools python-gnutls libgnutls-dev python-setuptools python-nose Install PyQt ------------ pip install PyQt will fail because PyQt4 does not use the standard setup.py mechanism. Instead, they use configure.py which generates a Makefile. python configure.py make && make install You can: * (recommended) run pkg/postmkvenv.sh after creating your virtualenv. It will symlink to your global PyQt installation. * install PyQt globally and make a virtualenv with --site-packages * run pkg/install_pyqt.sh inside your virtualenv (with --no-site-packages) Install --------------- # need to run this if you are installing from the git source tree # not needed if installing from a tarball. python setup.py branding # run this if you have installed previous versions before python setup.py clean python setup.py install # as root if installing globally. Running the App ----------------- If you're running a branded build, the script name will have a suffix that depends on your build flavor. Look for it in /usr/local/bin % leap-springbok-client In order to run in debub mode: % leap-springbok-client --debug --logfile /tmp/leap.log To see all options: % leap-springbok-client --help Development ============== Hack -------------- Some steps 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're in the development branch (leap_client)% git checkout develop (leap_client)% pkg/postmkvenv.sh (leap_client)% python setup.py branding (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 setup/test-requires The ./run_tests.sh command should install all of them in your virtualenv for you. Running tests ------------- ./run_tests.sh force no virtualenv and create coverage reports: ./run_tests.sh -N -c if you want to run specific tests, pass the (sub)module to nose: nosetests leap.util or nosetests leap.util.test_leap_argparse Colorized output ---------------- Install rednose locally and activate it. (leap_client)% pip install rednose (leap_client)% export NOSE_REDNOSE=1 enjoy :) 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.