summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali <kali@leap.se>2013-02-14 06:10:21 +0900
committerkali <kali@leap.se>2013-02-14 06:10:21 +0900
commitc22061a8e862e9ea0c78fed91e3e8d9ce32cbaf2 (patch)
treec1efd6a0db14430ecf1996d5f66d638e29177cd7
parentc18e8bd5bdf61fbd10056c8f6de84856ec81ccad (diff)
parent2e21c3137b2a771a36ddb1e2e6c5a7a3f6f67b92 (diff)
Merge branch 'release/v0.2.0' into debian
-rw-r--r--docs/checklist_for_leap_client_release.wiki9
-rw-r--r--docs/conf.py4
-rw-r--r--docs/user/install.rst45
-rw-r--r--src/leap/eip/checks.py10
-rw-r--r--src/leap/gui/firstrun/login.py23
5 files changed, 58 insertions, 33 deletions
diff --git a/docs/checklist_for_leap_client_release.wiki b/docs/checklist_for_leap_client_release.wiki
index c61b258c..1340d684 100644
--- a/docs/checklist_for_leap_client_release.wiki
+++ b/docs/checklist_for_leap_client_release.wiki
@@ -1,18 +1,19 @@
= LEAP CLient Release Checklist (*) =
- * [ ] validate rc
- * [ ] all rc-critical closed!
+ * [.] validate rc
+ * [X] all rc-critical closed!
* [ ] all bbots green
* [ ] uploaded translations: make translations
* [ ] re-generate pyqt resources
* [ ] update docs
+ * [ ] check installation sections
* [ ] CREDITS
* [ ] relnotes.txt
* [ ] docs/known_issues.rst
* [ ] NEWS.rst: Add release name and date to top-most item in NEWS.
- * [ ] change docs/quickstart.rst to point to just the current
+ * [ ] change docs/install.rst to point to just the current
leap-client-X.Y.Z.deb binaries and .tar.gz source code files
* [ ] on release/vX.Y.Z branch: git pull
* [ ] git tag X.Y.Z
@@ -45,4 +46,4 @@
notes
-----
-(*) this checklist kindly borrowed from tahoe-lafs documentation =)
+(*) the original version of this handy checklist kindly borrowed from tahoe-lafs documentation =)
diff --git a/docs/conf.py b/docs/conf.py
index 05c8cf5b..296cb262 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -48,9 +48,9 @@ copyright = u'2012, The LEAP Encryption Access Project'
# built documents.
#
# The short X.Y version.
-version = '0.1.0'
+version = '0.2.0'
# The full version, including alpha/beta/rc tags.
-release = '0.1.0'
+release = '0.2.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/user/install.rst b/docs/user/install.rst
index 1f0fd831..a52c1b87 100644
--- a/docs/user/install.rst
+++ b/docs/user/install.rst
@@ -9,32 +9,51 @@ We assume that you want to get it properly installed before being able to use it
Debian package
--------------
-.. warning::
+If you are lucky enough to be using a debian system... well, you are lucky enough :)
- No updated debian package yet.
+To be able to install ``leap-client``, you need to add the leap repo to your software sources. First you add the leap keys to your keyring::
-Once we have a release candidate, probably the easiest way of having the LEAP Client installed will be to install a .deb package under debian or ubuntu systems.
+ gpg --recv-key 0x1E34A1828E207901 0x485B12FA218E81EB
+ gpg -a --export 0x1E34A1828E207901 | sudo apt-key add -
+
+Now you edit :file:`/etc/apt/sources.list` and add the leap repository::
+
+ deb http://deb.leap.se/debian unstable main
+
+Get the package ``leap-keyring``, so you can install the packages in a trusted way and get key updates automatically::
+
+ apt-get update
+ apt-get install leap-keyring
+
+And, finally, install the client::
+
+ apt-get install leap-client
Distribute & Pip
----------------
-.. warning::
+Install the dependencies::
+
+ apt-get install openvpn python-qt4 python-dev python-openssl
+
+
+And then installing the client with `pip <http://www.pip-installer.org/>`_ is as simple as::
- This does not work yet, since we have not released an initial version yet to the cheese shop.
+ pip install leap-client
-Installing LEAP Client will be as simple as using `pip <http://www.pip-installer.org/>`_ once we have a release candidate::
+Show me the code!
+-----------------
- $ pip install leap-client
+You can get the latest tarball ::
-Get the code
-------------
+ wget https://leap.se/downloads/leap-client/tarball/latest
-.. warning::
+Or the zipball::
- This... won't work either, as-is. This should be the third optional way to install stable releases from master branch. Right now that does not work because there is *nothing* updated in the master branch. Leaving this here since this is what we will be doing, but if you really intend to have a working tree, refer to the sections :ref:`setting up a working environment <environment>` or :ref:`fetching latest code for testing <fetchinglatest>`.
+ wget http://leap.se/downloads/leap-client/zipball/latest
-You can get the code from LEAP public git repository ::
+Or, if you prefer, you can also get the code from LEAP public git repository ::
git clone git://leap.se/leap_client
@@ -42,6 +61,6 @@ Or from the github mirror ::
git clone git://github.com/leapcode/leap_client.git
-Once you have grabbed a copy of the sources, you can install it into your site-packages easily ::
+Once you have grabbed a copy of the sources for whatever mean, you can install it into your site-packages::
$ pyton setup.py install
diff --git a/src/leap/eip/checks.py b/src/leap/eip/checks.py
index af824c57..52230db2 100644
--- a/src/leap/eip/checks.py
+++ b/src/leap/eip/checks.py
@@ -57,14 +57,15 @@ class ProviderCertChecker(object):
with provider.
"""
def __init__(self, fetcher=requests,
- domain=None):
+ domain=None,
+ apidomain=None):
self.fetcher = fetcher
self.domain = domain
#XXX needs some kind of autoinit
#right now we set by hand
#by loading and reading provider config
- self.apidomain = None
+ self.apidomain = apidomain
self.cacert = eipspecs.provider_ca_path(domain)
def run_all(
@@ -235,10 +236,9 @@ class ProviderCertChecker(object):
except requests.exceptions.SSLError:
logger.warning('SSLError while fetching cert. '
'Look below for stack trace.')
- # XXX raise better exception
- return self.fail("SSLError")
+ raise eipexceptions.HttpsBadCertError("SSLError")
except Exception as exc:
- return self.fail(exc.message)
+ raise eipexceptions.EIPClientError(exc.message)
try:
logger.debug('validating cert...')
diff --git a/src/leap/gui/firstrun/login.py b/src/leap/gui/firstrun/login.py
index 1efceaa9..409cb9bf 100644
--- a/src/leap/gui/firstrun/login.py
+++ b/src/leap/gui/firstrun/login.py
@@ -1,6 +1,8 @@
"""
LogIn Page, used inf First Run Wizard
"""
+import logging
+
from PyQt4 import QtCore
from PyQt4 import QtGui
@@ -13,6 +15,8 @@ from leap.gui import styles
from leap.gui.constants import APP_LOGO, APP_WATERMARK, FULL_USERNAME_REGEX
+logger = logging.getLogger(__name__)
+
class LogInPage(InlineValidationPage, UserFormMixIn): # InlineValidationPage
@@ -112,7 +116,9 @@ class LogInPage(InlineValidationPage, UserFormMixIn): # InlineValidationPage
# page here as a mean to catch
# srp authentication errors while
wizard = self.wizard()
- eipconfigchecker = wizard.eipconfigchecker(domain=domain)
+ pconfig = wizard.eipconfigchecker(domain=domain)
+ pconfig.defaultprovider.load()
+ pconfig.set_api_domain()
########################
# 1) try name resolution
@@ -126,7 +132,7 @@ class LogInPage(InlineValidationPage, UserFormMixIn): # InlineValidationPage
# two-by-one
def resolvedomain():
try:
- eipconfigchecker.fetch_definition(domain=domain)
+ pconfig.fetch_definition(domain=domain)
# we're using requests here for all
# the possible error cases that it catches.
@@ -144,30 +150,29 @@ class LogInPage(InlineValidationPage, UserFormMixIn): # InlineValidationPage
yield((self.tr("Resolving domain name"), 20), resolvedomain)
wizard.set_providerconfig(
- eipconfigchecker.defaultprovider.config)
+ pconfig.defaultprovider.config)
########################
# 2) do authentication
########################
credentials = username, password
pCertChecker = wizard.providercertchecker(
- domain=domain)
+ domain=domain,
+ apidomain=pconfig.get_api_domain())
def validate_credentials():
- #################
- # FIXME #BUG #638
- verify = False
try:
pCertChecker.download_new_client_cert(
- credentials=credentials,
- verify=verify)
+ credentials=credentials)
except auth.SRPAuthenticationError as exc:
+ logger.debug('srp auth error in validate credentials step')
return self.fail(
self.tr("Authentication error: %s" % exc.message))
except Exception as exc:
+ logger.error('unknown error in validate credentials step')
return self.fail(exc.message)
else: