From d6786aabd5af26dcc949f97174d5bdbd103277c1 Mon Sep 17 00:00:00 2001 From: drebs Date: Tue, 19 Nov 2013 13:13:04 -0200 Subject: Fix soledad bootstrap subtasks order. Closes #4537. --- changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload | 1 + src/leap/bitmask/services/soledad/soledadbootstrapper.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload diff --git a/changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload b/changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload new file mode 100644 index 00000000..5e01c5a2 --- /dev/null +++ b/changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload @@ -0,0 +1 @@ +- Fix soledad bootstrap subtasks order. Closes #4537. diff --git a/src/leap/bitmask/services/soledad/soledadbootstrapper.py b/src/leap/bitmask/services/soledad/soledadbootstrapper.py index e8c7e9ce..d078ae96 100644 --- a/src/leap/bitmask/services/soledad/soledadbootstrapper.py +++ b/src/leap/bitmask/services/soledad/soledadbootstrapper.py @@ -196,7 +196,7 @@ class SoledadBootstrapper(AbstractBootstrapper): leap_assert(not sameProxiedObjects(self._soledad, None), "Null soledad, error while initializing") - self.deferred = deferToThread(self._do_soledad_sync) + self._do_soledad_sync() def _do_soledad_sync(self): """ -- cgit v1.2.3 From aa969cdbc9d8d0c77b0fa0e2c72164e8cb816c87 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 19 Nov 2013 17:08:22 -0300 Subject: Disable EIP if need login before to be usable. --- src/leap/bitmask/gui/mainwindow.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index b0f25af1..9074df2b 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -366,6 +366,7 @@ class MainWindow(QtGui.QMainWindow): # if we don't have any provider configured (included a pinned # one) we can't use the application, so quit. self.quit() + self.eip_needs_login.emit() else: self._finish_init() @@ -574,6 +575,9 @@ class MainWindow(QtGui.QMainWindow): if possible_password is not None: self._login_widget.set_password(possible_password) self._login() + else: + self.eip_needs_login.emit() + self._wizard = None else: self._try_autostart_eip() -- cgit v1.2.3 From 307bf9e5512d3e2037078b5722f9f9c8879e5446 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 19 Nov 2013 17:13:38 -0300 Subject: Remove unused execution path. --- src/leap/bitmask/gui/mainwindow.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 9074df2b..ac73e08b 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -358,17 +358,17 @@ class MainWindow(QtGui.QMainWindow): Called if the wizard has been cancelled or closed before finishing. + This is executed for the first run wizard only. Any other execution of + the wizard won't reach this point. """ - if self._wizard_firstrun: - providers = self._settings.get_configured_providers() - has_provider_on_disk = len(providers) != 0 - if not has_provider_on_disk: - # if we don't have any provider configured (included a pinned - # one) we can't use the application, so quit. - self.quit() - self.eip_needs_login.emit() - else: - self._finish_init() + providers = self._settings.get_configured_providers() + has_provider_on_disk = len(providers) != 0 + if not has_provider_on_disk: + # if we don't have any provider configured (included a pinned + # one) we can't use the application, so quit. + self.quit() + + self.eip_needs_login.emit() def _launch_wizard(self): """ @@ -539,8 +539,7 @@ class MainWindow(QtGui.QMainWindow): TRIGGERS: self._wizard.accepted - Also called at the end of the constructor if not first run, - and after _rejected_wizard if not first run. + Also called at the end of the constructor if not first run. Implements the behavior after either constructing the mainwindow object, loading the saved user/password, or after -- cgit v1.2.3 From f174d94e00b0619c4f5dfde769e76209823702a3 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 19 Nov 2013 17:30:41 -0300 Subject: Add providers even if the wizard is rejected. --- src/leap/bitmask/gui/mainwindow.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index ac73e08b..ce4290a4 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -367,8 +367,11 @@ class MainWindow(QtGui.QMainWindow): # if we don't have any provider configured (included a pinned # one) we can't use the application, so quit. self.quit() - - self.eip_needs_login.emit() + else: + # This happens if the user finishes the provider + # setup but does not register + self._wizard = None + self._finish_init() def _launch_wizard(self): """ -- cgit v1.2.3 From f95df925f7640537e301442a6faabbcdd282f130 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 20 Nov 2013 11:55:36 -0300 Subject: Disable the EIP start if EIP is disabled. --- src/leap/bitmask/gui/mainwindow.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index ce4290a4..6a1f4445 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1455,6 +1455,7 @@ class MainWindow(QtGui.QMainWindow): self.tr("Not supported"), error=True) else: + self._eip_status.disable_eip_start() self._eip_status.set_eip_status(self.tr("Disabled")) def _finish_eip_bootstrap(self, data): -- cgit v1.2.3 From d0a19caef10e9437b9b389764bfa50f2bb1575ac Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 20 Nov 2013 11:57:22 -0300 Subject: Remove unused import. --- src/leap/bitmask/gui/mainwindow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 6a1f4445..e21d6cd2 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -22,7 +22,7 @@ import os from PySide import QtCore, QtGui from twisted.internet import threads -from zope.proxy import ProxyBase, setProxiedObject, sameProxiedObjects +from zope.proxy import ProxyBase, setProxiedObject from leap.bitmask import __version__ as VERSION from leap.bitmask.config.leapsettings import LeapSettings -- cgit v1.2.3 From d1d724092d9eab606114dbf2aab8a9a0ad0e0e09 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 21 Nov 2013 10:16:12 -0300 Subject: Disable eip-config for uninitialized providers. - Show the user which provider has not been initialized and disable its usage. - Add support for absolute path in get_eipconfig_path. - Replace hadr-coded paths with get_eipconfig_path. --- src/leap/bitmask/gui/eip_preferenceswindow.py | 35 ++++++++++++++++++++------- src/leap/bitmask/services/eip/eipconfig.py | 14 ++++++++--- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/leap/bitmask/gui/eip_preferenceswindow.py b/src/leap/bitmask/gui/eip_preferenceswindow.py index e0c5d51f..504d1cf1 100644 --- a/src/leap/bitmask/gui/eip_preferenceswindow.py +++ b/src/leap/bitmask/gui/eip_preferenceswindow.py @@ -28,6 +28,7 @@ from leap.bitmask.config.leapsettings import LeapSettings from leap.bitmask.config.providerconfig import ProviderConfig from leap.bitmask.gui.ui_eippreferences import Ui_EIPPreferences from leap.bitmask.services.eip.eipconfig import EIPConfig, VPNGatewaySelector +from leap.bitmask.services.eip.eipconfig import get_eipconfig_path logger = logging.getLogger(__name__) @@ -52,7 +53,7 @@ class EIPPreferencesWindow(QtGui.QDialog): self.ui.lblProvidersGatewayStatus.setVisible(False) # Connections - self.ui.cbProvidersGateway.currentIndexChanged[unicode].connect( + self.ui.cbProvidersGateway.currentIndexChanged[int].connect( self._populate_gateways) self.ui.cbGateways.currentIndexChanged[unicode].connect( @@ -93,7 +94,11 @@ class EIPPreferencesWindow(QtGui.QDialog): return for provider in providers: - self.ui.cbProvidersGateway.addItem(provider) + label = provider + eip_config_path = get_eipconfig_path(provider, relative=False) + if not os.path.isfile(eip_config_path): + label = provider + self.tr(" (uninitialized)") + self.ui.cbProvidersGateway.addItem(label, userData=provider) def _save_selected_gateway(self, provider): """ @@ -120,7 +125,7 @@ class EIPPreferencesWindow(QtGui.QDialog): "Gateway settings for provider '{0}' saved.").format(provider) self._set_providers_gateway_status(msg, success=True) - def _populate_gateways(self, domain): + def _populate_gateways(self, domain_idx): """ SLOT TRIGGERS: @@ -129,15 +134,29 @@ class EIPPreferencesWindow(QtGui.QDialog): Loads the gateways that the provider provides into the UI for the user to select. - :param domain: the domain of the provider to load gateways from. - :type domain: str + :param domain: the domain index of the provider to load gateways from. + :type domain: int """ # We hide the maybe-visible status label after a change self.ui.lblProvidersGatewayStatus.setVisible(False) - if not domain: + if domain_idx == -1: return + domain = self.ui.cbProvidersGateway.itemData(domain_idx) + + if not os.path.isfile(get_eipconfig_path(domain, relative=False)): + self._set_providers_gateway_status( + self.tr("This is an uninitialized provider, " + "please log in first."), + error=True) + self.ui.pbSaveGateway.setEnabled(False) + self.ui.cbGateways.setEnabled(False) + return + else: + self.ui.pbSaveGateway.setEnabled(True) + self.ui.cbGateways.setEnabled(True) + try: # disconnect previously connected save method self.ui.pbSaveGateway.clicked.disconnect() @@ -151,11 +170,9 @@ class EIPPreferencesWindow(QtGui.QDialog): eip_config = EIPConfig() provider_config = ProviderConfig.get_provider_config(domain) - eip_config_path = os.path.join("leap", "providers", - domain, "eip-service.json") api_version = provider_config.get_api_version() eip_config.set_api_version(api_version) - eip_loaded = eip_config.load(eip_config_path) + eip_loaded = eip_config.load(get_eipconfig_path(domain)) if not eip_loaded or provider_config is None: self._set_providers_gateway_status( diff --git a/src/leap/bitmask/services/eip/eipconfig.py b/src/leap/bitmask/services/eip/eipconfig.py index 16ed4cc0..09a3d257 100644 --- a/src/leap/bitmask/services/eip/eipconfig.py +++ b/src/leap/bitmask/services/eip/eipconfig.py @@ -33,17 +33,25 @@ from leap.common.check import leap_assert, leap_assert_type logger = logging.getLogger(__name__) -def get_eipconfig_path(domain): +def get_eipconfig_path(domain, relative=True): """ - Returns relative path for EIP config. + Returns relative or absolute path for EIP config. :param domain: the domain to which this eipconfig belongs to. :type domain: str + :param relative: defines whether the path should be relative or absolute. + :type relative: bool :returns: the path :rtype: str """ leap_assert(domain is not None, "get_eipconfig_path: We need a domain") - return os.path.join("leap", "providers", domain, "eip-service.json") + + path = os.path.join("leap", "providers", domain, "eip-service.json") + + if not relative: + path = os.path.join(get_path_prefix(), path) + + return path def load_eipconfig_if_needed(provider_config, eip_config, domain): -- cgit v1.2.3 From cecd69f72165518a3f1eae13547f34d3b824db7b Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 21 Nov 2013 10:19:27 -0300 Subject: Add changes file for #4523, #4555, #4422. --- changes/eip-disabled-until-usable | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 changes/eip-disabled-until-usable diff --git a/changes/eip-disabled-until-usable b/changes/eip-disabled-until-usable new file mode 100644 index 00000000..92c2c493 --- /dev/null +++ b/changes/eip-disabled-until-usable @@ -0,0 +1,7 @@ +- Disable Turn On EIP until we have an usable provider. Closes #4523. +- Load provider if the wizard was rejected and the setup was completed. +- Disable Turn On EIP if the "Encrypted Internet" service is disabled. + Closes #4555. +- If EIP service is disabled display 'Disabled' instead of 'You need to login + to use Encrypted Internet'. +- Disable eip-config until we have configured the provider. Closes #4422. -- cgit v1.2.3 From a9dc083c7ddf0181e5124bbae170c4ac9f752738 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 25 Nov 2013 15:13:00 -0200 Subject: Avoids the checking for an "updated" policy file for debian package. In the case of the debian package, we already take care to put the file in place, so this check is not needed. --- changes/bug_4404-do-not-install-policykit-in-deb | 1 + src/leap/bitmask/services/eip/linuxvpnlauncher.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 changes/bug_4404-do-not-install-policykit-in-deb diff --git a/changes/bug_4404-do-not-install-policykit-in-deb b/changes/bug_4404-do-not-install-policykit-in-deb new file mode 100644 index 00000000..80745c05 --- /dev/null +++ b/changes/bug_4404-do-not-install-policykit-in-deb @@ -0,0 +1 @@ +- Avoid attempt to install policykit file in debian package. Closes: #4404 diff --git a/src/leap/bitmask/services/eip/linuxvpnlauncher.py b/src/leap/bitmask/services/eip/linuxvpnlauncher.py index d02f6f96..73a0a948 100644 --- a/src/leap/bitmask/services/eip/linuxvpnlauncher.py +++ b/src/leap/bitmask/services/eip/linuxvpnlauncher.py @@ -148,18 +148,21 @@ class LinuxVPNLauncher(VPNLauncher): def missing_other_files(kls): """ 'Extend' the VPNLauncher's missing_other_files to check if the polkit - files is outdated. If the polkit file that is in OTHER_FILES exists but - is not up to date, it is added to the missing list. + files is outdated, in the case of an standalone bundle. + If the polkit file that is in OTHER_FILES exists but is not up to date, + it is added to the missing list. :returns: a list of missing files :rtype: list of str """ # we use `super` in order to send the class to use missing = super(LinuxVPNLauncher, kls).missing_other_files() - polkit_file = LinuxPolicyChecker.get_polkit_path() - if polkit_file not in missing: - if privilege_policies.is_policy_outdated(kls.OPENVPN_BIN_PATH): - missing.append(polkit_file) + + if flags.STANDALONE is True: + polkit_file = LinuxPolicyChecker.get_polkit_path() + if polkit_file not in missing: + if privilege_policies.is_policy_outdated(kls.OPENVPN_BIN_PATH): + missing.append(polkit_file) return missing -- cgit v1.2.3 From 897017bfdd1ab67e2662fdd6e97b980c1e5d6258 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Mon, 25 Nov 2013 17:22:52 -0300 Subject: Select the provider selected in the login widget. In the preferences window, now we select the current provider from the login widget, no matter if the user is logged in or not. [Closes #4490] --- changes/4490_preferences-selects-current-login-widget-provider | 2 ++ src/leap/bitmask/gui/mainwindow.py | 6 +++--- src/leap/bitmask/gui/preferenceswindow.py | 9 +++++---- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 changes/4490_preferences-selects-current-login-widget-provider diff --git a/changes/4490_preferences-selects-current-login-widget-provider b/changes/4490_preferences-selects-current-login-widget-provider new file mode 100644 index 00000000..e4c9e907 --- /dev/null +++ b/changes/4490_preferences-selects-current-login-widget-provider @@ -0,0 +1,2 @@ +- Make the preferences window selects the current selected provider in the + login widget even if the user is not logged in. Closes #4490. diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index e21d6cd2..25e25e45 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -467,9 +467,9 @@ class MainWindow(QtGui.QMainWindow): Displays the preferences window. """ - preferences_window = PreferencesWindow(self, self._srp_auth, - self._provider_config, - self._soledad) + preferences_window = PreferencesWindow( + self, self._srp_auth, self._provider_config, self._soledad, + self._login_widget.get_selected_provider()) self.soledad_ready.connect(preferences_window.set_soledad_ready) preferences_window.show() diff --git a/src/leap/bitmask/gui/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py index 8e9ef95a..b4bddef2 100644 --- a/src/leap/bitmask/gui/preferenceswindow.py +++ b/src/leap/bitmask/gui/preferenceswindow.py @@ -42,7 +42,7 @@ class PreferencesWindow(QtGui.QDialog): """ Window that displays the preferences. """ - def __init__(self, parent, srp_auth, provider_config, soledad): + def __init__(self, parent, srp_auth, provider_config, soledad, domain): """ :param parent: parent object of the PreferencesWindow. :parent type: QWidget @@ -52,6 +52,8 @@ class PreferencesWindow(QtGui.QDialog): :type provider_config: ProviderConfig :param soledad: Soledad instance :type soledad: Soledad + :param domain: the selected domain in the login widget + :type domain: unicode """ QtGui.QDialog.__init__(self, parent) self.AUTOMATIC_GATEWAY_LABEL = self.tr("Automatic") @@ -83,9 +85,6 @@ class PreferencesWindow(QtGui.QDialog): # check if the user is logged in if srp_auth is not None and srp_auth.get_token() is not None: # check if provider has 'mx' ... - domain = provider_config.get_domain() - self._select_provider_by_name(domain) - if provider_config.provides_mx(): enabled_services = self._settings.get_enabled_services(domain) mx_name = get_service_display_name(MX_SERVICE) @@ -111,6 +110,8 @@ class PreferencesWindow(QtGui.QDialog): "In order to change your password you need to be logged in.") self._set_password_change_status(msg) + self._select_provider_by_name(domain) + self.ui.gbPasswordChange.setEnabled(pw_enabled) def set_soledad_ready(self): -- cgit v1.2.3 From 4ca43c0ea751231a1f59702af9e347541faa859b Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 26 Nov 2013 14:13:09 -0200 Subject: do not compare to True as per pep8 recommendations --- src/leap/bitmask/services/eip/linuxvpnlauncher.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/leap/bitmask/services/eip/linuxvpnlauncher.py b/src/leap/bitmask/services/eip/linuxvpnlauncher.py index 73a0a948..d24e7ae7 100644 --- a/src/leap/bitmask/services/eip/linuxvpnlauncher.py +++ b/src/leap/bitmask/services/eip/linuxvpnlauncher.py @@ -77,7 +77,7 @@ def _try_to_launch_agent(): Tries to launch a polkit daemon. """ env = None - if flags.STANDALONE is True: + if flags.STANDALONE: env = {"PYTHONPATH": os.path.abspath('../../../../lib/')} try: # We need to quote the command because subprocess call @@ -158,7 +158,7 @@ class LinuxVPNLauncher(VPNLauncher): # we use `super` in order to send the class to use missing = super(LinuxVPNLauncher, kls).missing_other_files() - if flags.STANDALONE is True: + if flags.STANDALONE: polkit_file = LinuxPolicyChecker.get_polkit_path() if polkit_file not in missing: if privilege_policies.is_policy_outdated(kls.OPENVPN_BIN_PATH): -- cgit v1.2.3 From cbdf89cb96288bb76b5a3583bfddd327a4e283f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Wed, 27 Nov 2013 18:59:03 -0300 Subject: Add support for versioneer while using gitbash in Windows --- versioneer.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/versioneer.py b/versioneer.py index 34e48073..885ebcfd 100644 --- a/versioneer.py +++ b/versioneer.py @@ -230,7 +230,7 @@ def versions_from_vcs(tag_prefix, versionfile_source, verbose=False): GIT = "git" if sys.platform == "win32": - GIT = "git.cmd" + GIT = "git.exe" stdout = run_command([GIT, "describe", "--tags", "--dirty", "--always"], cwd=root) if stdout is None: @@ -420,7 +420,7 @@ def versions_from_vcs(tag_prefix, versionfile_source, verbose=False): GIT = "git" if sys.platform == "win32": - GIT = "git.cmd" + GIT = "git.exe" stdout = run_command([GIT, "describe", "--tags", "--dirty", "--always"], cwd=root) if stdout is None: @@ -476,7 +476,7 @@ import sys def do_vcs_install(versionfile_source, ipy): GIT = "git" if sys.platform == "win32": - GIT = "git.cmd" + GIT = "git.exe" run_command([GIT, "add", "versioneer.py"]) run_command([GIT, "add", versionfile_source]) run_command([GIT, "add", ipy]) @@ -489,13 +489,13 @@ def do_vcs_install(versionfile_source, ipy): present = True f.close() except EnvironmentError: - pass + pass if not present: f = open(".gitattributes", "a+") f.write("%s export-subst\n" % versionfile_source) f.close() run_command([GIT, "add", ".gitattributes"]) - + SHORT_VERSION_PY = """ # This file was generated by 'versioneer.py' (0.7+) from -- cgit v1.2.3 From 00e544f4f312fc926dd2f68d094c0e2d37347b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Thu, 28 Nov 2013 09:29:25 -0300 Subject: Add --nobind as VPN parameter --- changes/bug_4543_nobind | 2 ++ src/leap/bitmask/services/eip/vpnlauncher.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 changes/bug_4543_nobind diff --git a/changes/bug_4543_nobind b/changes/bug_4543_nobind new file mode 100644 index 00000000..bacd3624 --- /dev/null +++ b/changes/bug_4543_nobind @@ -0,0 +1,2 @@ +- Add --nobind as a VPN parameter to prevent binding on local + addresses. Fixes #4543. \ No newline at end of file diff --git a/src/leap/bitmask/services/eip/vpnlauncher.py b/src/leap/bitmask/services/eip/vpnlauncher.py index 07497814..99cae7f9 100644 --- a/src/leap/bitmask/services/eip/vpnlauncher.py +++ b/src/leap/bitmask/services/eip/vpnlauncher.py @@ -147,7 +147,8 @@ class VPNLauncher(object): args = [] args += [ - '--setenv', "LEAPOPENVPN", "1" + '--setenv', "LEAPOPENVPN", "1", + '--nobind' ] if openvpn_verb is not None: -- cgit v1.2.3 From a9765e721f210301ce06da3d8bccb4fc1a275834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Fri, 29 Nov 2013 13:59:30 -0300 Subject: Properly close Soledad at quit --- changes/bug_4504_properly_close_soledad | 1 + src/leap/bitmask/gui/mainwindow.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changes/bug_4504_properly_close_soledad diff --git a/changes/bug_4504_properly_close_soledad b/changes/bug_4504_properly_close_soledad new file mode 100644 index 00000000..b33db9c2 --- /dev/null +++ b/changes/bug_4504_properly_close_soledad @@ -0,0 +1 @@ +- Properly close Soledad at quit time. Fixes #4504. \ No newline at end of file diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 25e25e45..3758bab5 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1652,9 +1652,9 @@ class MainWindow(QtGui.QMainWindow): # XXX this can timeout after loong time: See #3368 self._srp_auth.logout() - if self._soledad: + if self._soledad_bootstrapper.soledad is not None: logger.debug("Closing soledad...") - self._soledad.close() + self._soledad_bootstrapper.soledad.close() else: logger.error("No instance of soledad was found.") -- cgit v1.2.3 From 77440863b06df9af8df6998d02e200cca817d19d Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 26 Nov 2013 13:58:40 -0300 Subject: Use repr() to show unicode values. --- src/leap/bitmask/provider/providerbootstrapper.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/leap/bitmask/provider/providerbootstrapper.py b/src/leap/bitmask/provider/providerbootstrapper.py index 2adf8aa8..7068f287 100644 --- a/src/leap/bitmask/provider/providerbootstrapper.py +++ b/src/leap/bitmask/provider/providerbootstrapper.py @@ -105,7 +105,7 @@ class ProviderBootstrapper(AbstractBootstrapper): Checks that the name resolution for the provider name works """ leap_assert(self._domain, "Cannot check DNS without a domain") - logger.debug("Checking name resolution for %s" % (self._domain)) + logger.debug("Checking name resolution for %r" % (self._domain)) # We don't skip this check, since it's basic for the whole # system to work @@ -119,7 +119,7 @@ class ProviderBootstrapper(AbstractBootstrapper): checks out """ leap_assert(self._domain, "Cannot check HTTPS without a domain") - logger.debug("Checking https for %s" % (self._domain)) + logger.debug("Checking https for %r" % (self._domain)) # We don't skip this check, since it's basic for the whole # system to work. @@ -154,7 +154,7 @@ class ProviderBootstrapper(AbstractBootstrapper): """ leap_assert(self._domain, "Cannot download provider info without a domain") - logger.debug("Downloading provider info for %s" % (self._domain)) + logger.debug("Downloading provider info for %r" % (self._domain)) # -------------------------------------------------------------- # TODO factor out with the download routines in services. @@ -228,7 +228,7 @@ class ProviderBootstrapper(AbstractBootstrapper): Populates the check queue. :param domain: domain to check - :type domain: str + :type domain: unicode :param download_if_needed: if True, makes the checks do not overwrite already downloaded data @@ -271,7 +271,7 @@ class ProviderBootstrapper(AbstractBootstrapper): leap_assert(self._provider_config, "Cannot download the ca cert " "without a provider config!") - logger.debug("Downloading ca cert for %s at %s" % + logger.debug("Downloading ca cert for %r at %r" % (self._domain, self._provider_config.get_ca_cert_uri())) if not self._should_proceed_cert(): @@ -302,7 +302,7 @@ class ProviderBootstrapper(AbstractBootstrapper): leap_assert(self._provider_config, "Cannot check the ca cert " "without a provider config!") - logger.debug("Checking ca fingerprint for %s and cert %s" % + logger.debug("Checking ca fingerprint for %r and cert %r" % (self._domain, self._provider_config.get_ca_cert_path())) -- cgit v1.2.3 From cb8eb981d3646f3734390f12ed48910961c56e2b Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 26 Nov 2013 14:13:59 -0300 Subject: Encode URIs out. --- src/leap/bitmask/provider/providerbootstrapper.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/leap/bitmask/provider/providerbootstrapper.py b/src/leap/bitmask/provider/providerbootstrapper.py index 7068f287..a325a3e7 100644 --- a/src/leap/bitmask/provider/providerbootstrapper.py +++ b/src/leap/bitmask/provider/providerbootstrapper.py @@ -111,7 +111,7 @@ class ProviderBootstrapper(AbstractBootstrapper): # system to work # err --- but we can do it after a failure, to diagnose what went # wrong. Right now we're just adding connection overhead. -- kali - socket.gethostbyname(self._domain) + socket.gethostbyname(self._domain.encode('idna')) def _check_https(self, *args): """ @@ -131,8 +131,8 @@ class ProviderBootstrapper(AbstractBootstrapper): verify = self.verify.encode(sys.getfilesystemencoding()) try: - res = self._session.get("https://%s" % (self._domain,), - verify=verify, + uri = "https://{0}".format(self._domain.encode('idna')) + res = self._session.get(uri, verify=verify, timeout=REQUEST_TIMEOUT) res.raise_for_status() except requests.exceptions.SSLError as exc: @@ -190,7 +190,7 @@ class ProviderBootstrapper(AbstractBootstrapper): logger.debug("Requesting for provider.json... " "uri: {0}, verify: {1}, headers: {2}".format( uri, verify, headers)) - res = self._session.get(uri, verify=verify, + res = self._session.get(uri.encode('idna'), verify=verify, headers=headers, timeout=REQUEST_TIMEOUT) res.raise_for_status() logger.debug("Request status code: {0}".format(res.status_code)) -- cgit v1.2.3 From d7a9ea8845461e765052733f62e77cd71a1cde82 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Mon, 2 Dec 2013 12:01:18 -0300 Subject: Encode paths out. --- src/leap/bitmask/provider/providerbootstrapper.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/leap/bitmask/provider/providerbootstrapper.py b/src/leap/bitmask/provider/providerbootstrapper.py index a325a3e7..f5a2003f 100644 --- a/src/leap/bitmask/provider/providerbootstrapper.py +++ b/src/leap/bitmask/provider/providerbootstrapper.py @@ -161,10 +161,10 @@ class ProviderBootstrapper(AbstractBootstrapper): # Watch out! We're handling the verify paramenter differently here. headers = {} + domain = self._domain.encode(sys.getfilesystemencoding()) provider_json = os.path.join(util.get_path_prefix(), - "leap", - "providers", - self._domain, "provider.json") + "leap", "providers", domain, + "provider.json") mtime = get_mtime(provider_json) if self._download_if_needed and mtime: @@ -206,10 +206,8 @@ class ProviderBootstrapper(AbstractBootstrapper): provider_config = ProviderConfig() provider_config.load(data=provider_definition, mtime=mtime) - provider_config.save(["leap", - "providers", - self._domain, - "provider.json"]) + provider_config.save(["leap", "providers", + domain, "provider.json"]) api_version = provider_config.get_api_version() if SupportedAPIs.supports(api_version): -- cgit v1.2.3 From c6c6df50903ac30b9455fda4adc0dd1a07b65106 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Mon, 2 Dec 2013 12:03:23 -0300 Subject: Add changes file for #4592. --- changes/bug-4592_Support-non-ascii-characters-in-a-provider-name | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/bug-4592_Support-non-ascii-characters-in-a-provider-name diff --git a/changes/bug-4592_Support-non-ascii-characters-in-a-provider-name b/changes/bug-4592_Support-non-ascii-characters-in-a-provider-name new file mode 100644 index 00000000..b27d3dc4 --- /dev/null +++ b/changes/bug-4592_Support-non-ascii-characters-in-a-provider-name @@ -0,0 +1 @@ +- Support non-ascii characters in a provider name. Closes #4952. -- cgit v1.2.3 From c59b6ac74dc8e9054237f28f37c9f9573c9b5713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Mon, 2 Dec 2013 13:59:37 -0300 Subject: Remove EIP has stopped message --- changes/bug4632_remove_eip_stopped_message | 2 ++ src/leap/bitmask/gui/mainwindow.py | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changes/bug4632_remove_eip_stopped_message diff --git a/changes/bug4632_remove_eip_stopped_message b/changes/bug4632_remove_eip_stopped_message new file mode 100644 index 00000000..35836336 --- /dev/null +++ b/changes/bug4632_remove_eip_stopped_message @@ -0,0 +1,2 @@ +- Do not show the generic message "EIP has stopped" since it's + redundant. Fixes #4632. \ No newline at end of file diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 25e25e45..0d55040f 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1369,8 +1369,7 @@ class MainWindow(QtGui.QMainWindow): Sets eip status to off """ # XXX this should be handled by the state machine. - self._eip_status.set_eip_status(self.tr("EIP has stopped"), - error=error) + self._eip_status.set_eip_status("", error=error) self._eip_status.set_eip_status_icon("error") def _eip_finished(self, exitCode): -- cgit v1.2.3 From 4945a2233363b496640e71a5f7bc0fd37d185592 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 4 Dec 2013 23:11:52 -0400 Subject: Add the ability to run the runner inside a virtualenv using virtualenvwrapper.sh --- pkg/tools/with_venvwrapper.sh | 12 ++++++++++++ run_tests.sh | 26 ++++++++++++++++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100755 pkg/tools/with_venvwrapper.sh diff --git a/pkg/tools/with_venvwrapper.sh b/pkg/tools/with_venvwrapper.sh new file mode 100755 index 00000000..988d2822 --- /dev/null +++ b/pkg/tools/with_venvwrapper.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +#Wraps a command in a virtualenwrapper passed as first argument. +#Example: +#with_virtualenvwrapper.sh leap-bitmask ./run_tests.sh + +alias pyver='python -c "import $1;print $1.__path__[0]; print $1.__version__;"' + +source `which virtualenvwrapper.sh` +workon $1 +echo "running version: " `pyver leap.bitmask` +$2 $3 $4 $5 diff --git a/run_tests.sh b/run_tests.sh index 9f9262ba..13050872 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,9 +1,9 @@ #!/bin/bash -set -eu +set -e function usage { - echo "Usage: $0 [OPTION]..." + echo "Usage: $0 [OPTION]...[@virtualenv-name]" echo "Run leap-client test suite" echo "" echo " -V, --virtual-env Always use virtualenv. Install automatically if not present" @@ -22,6 +22,8 @@ function usage { echo "Note: with no options specified, the script will try to run the tests in a virtual environment," echo " If no virtualenv is found, the script will ask if you would like to create one. If you " echo " prefer to run tests NOT in a virtual environment, simply pass the -N option." + echo " If you pass @virtualenv-name, the given virtualenv will be used as long as " + echo " virtualenvwrapper.sh can be found in the PATH." exit } @@ -37,6 +39,7 @@ function process_option { -c|--coverage) coverage=1;; -A|--all) alltests=1;; -i|--progressive) progressive=1;; + @*) venvwrapper=1; source_venv=`echo $1 | cut -c 2-`;; -*) noseopts="$noseopts $1";; *) noseargs="$noseargs $1" esac @@ -44,6 +47,7 @@ function process_option { venv=.venv with_venv=pkg/tools/with_venv.sh +with_venvwrapper=pkg/tools/with_venvwrapper.sh always_venv=0 never_venv=0 force=0 @@ -51,6 +55,8 @@ no_site_packages=0 installvenvopts= noseargs= noseopts= +venvwrapper=0 +source_venv= wrapper="" just_pep8=0 no_pep8=0 @@ -82,9 +88,19 @@ if [ $progressive -eq 1 ]; then noseopts="$noseopts --with-progressive" fi - function run_tests { echo "running tests..." + + if [ $venvwrapper -eq 1 ]; then + VIRTUAL_ENV=$WORKON_HOME/$source_venv + wrapper="$with_venvwrapper $source_venv" + + fi + + #NOSETESTS="nosetests leap --exclude=soledad* $noseopts $noseargs" + NOSETESTS="$VIRTUAL_ENV/bin/nosetests . $noseopts $noseargs" + #--with-coverage --cover-package=leap" + # Just run the test suites in current environment echo "NOSETESTS=$NOSETESTS" ${wrapper} $NOSETESTS @@ -98,6 +114,7 @@ function run_pep8 { srcfiles="src/leap" # Just run PEP8 in current environment pep8_opts="--ignore=E202,W602 --exclude=*_rc.py,ui_*,_version.py --repeat" + ${wrapper} pep8 ${pep8_opts} ${srcfiles} } @@ -105,9 +122,6 @@ function run_pep8 { # in the current debhelper build process, # so I exclude the topmost tests -#NOSETESTS="nosetests leap --exclude=soledad* $noseopts $noseargs" -NOSETESTS="$VIRTUAL_ENV/bin/nosetests . $noseopts $noseargs" -#--with-coverage --cover-package=leap" if [ $never_venv -eq 0 ] then -- cgit v1.2.3 From d7a7c886b06acbe3ff5e5abb3911fd4905432ca6 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 5 Dec 2013 10:00:27 -0400 Subject: change path to working directory, since we reuse venv across projects --- pkg/tools/with_venvwrapper.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/tools/with_venvwrapper.sh b/pkg/tools/with_venvwrapper.sh index 988d2822..693c0ac9 100755 --- a/pkg/tools/with_venvwrapper.sh +++ b/pkg/tools/with_venvwrapper.sh @@ -4,9 +4,13 @@ #Example: #with_virtualenvwrapper.sh leap-bitmask ./run_tests.sh +wd=`pwd` alias pyver='python -c "import $1;print $1.__path__[0]; print $1.__version__;"' source `which virtualenvwrapper.sh` +echo "Activating virtualenv " $1 +echo "------------------------------------" workon $1 +cd $wd echo "running version: " `pyver leap.bitmask` $2 $3 $4 $5 -- cgit v1.2.3 From 54e504422b7561ebe0ff9f0de64f8ba34d19331f Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 5 Dec 2013 22:53:28 -0400 Subject: add buildbot build image --- README.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.rst b/README.rst index 4bebc180..fbfbf629 100644 --- a/README.rst +++ b/README.rst @@ -5,6 +5,8 @@ Bitmask .. image:: https://pypip.in/v/leap.bitmask/badge.png :target: https://crate.io/packages/leap.bitmask +.. image:: http://lemur.leap.se:8010/png?builder=bitmask-linux-quick + **Bitmask** is the multiplatform desktop client for the services offered by `the LEAP Platform`_. -- cgit v1.2.3 From 96a82b7b2dd7d638577d82ba4f54bbe658f85ea7 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 5 Dec 2013 23:17:18 -0400 Subject: add downloads badge --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index fbfbf629..fc0f9772 100644 --- a/README.rst +++ b/README.rst @@ -5,6 +5,7 @@ Bitmask .. image:: https://pypip.in/v/leap.bitmask/badge.png :target: https://crate.io/packages/leap.bitmask +.. image:: https://pypip.in/d/leap.bitmask/badge.png .. image:: http://lemur.leap.se:8010/png?builder=bitmask-linux-quick -- cgit v1.2.3 From c7cbe582ff52b1c991eba2c2322b1a2248f0eb1b Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 5 Dec 2013 11:16:29 -0300 Subject: Disable Turn On EIP in tray if EIP is disabled. [Closes #4630] --- src/leap/bitmask/gui/eip_status.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/leap/bitmask/gui/eip_status.py b/src/leap/bitmask/gui/eip_status.py index 1899d6a4..4b4d360f 100644 --- a/src/leap/bitmask/gui/eip_status.py +++ b/src/leap/bitmask/gui/eip_status.py @@ -77,6 +77,10 @@ class EIPStatusWidget(QtGui.QWidget): self._provider = "" + # Action for the systray + self._eip_disabled_action = QtGui.QAction( + "{0} is {1}".format(self._service_name, self.tr("disabled")), self) + def _make_status_clickable(self): """ Makes upload and download figures clickable. @@ -252,6 +256,15 @@ class EIPStatusWidget(QtGui.QWidget): self.eip_button.hide() msg = self.tr("You must login to use {0}".format(self._service_name)) self.eip_label.setText(msg) + self._eip_status_menu.setTitle("{0} is {1}".format( + self._service_name, self.tr("disabled"))) + + # Replace EIP tray menu with an action that displays a "disabled" text + menu = self._systray.contextMenu() + menu.insertAction( + self._eip_status_menu.menuAction(), + self._eip_disabled_action) + self._eip_status_menu.menuAction().setVisible(False) @QtCore.Slot() def enable_eip_start(self): @@ -262,6 +275,11 @@ class EIPStatusWidget(QtGui.QWidget): logger.debug('Showing EIP start button') self.eip_button.show() + # Restore the eip action menu + menu = self._systray.contextMenu() + menu.removeAction(self._eip_disabled_action) + self._eip_status_menu.menuAction().setVisible(True) + # XXX disable (later) -------------------------- def set_eip_status(self, status, error=False): """ -- cgit v1.2.3 From d3fd07839ec873db22c1a396eaf72951f59bc2f1 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 5 Dec 2013 11:17:23 -0300 Subject: Use service name instead of hardcoded one. --- src/leap/bitmask/gui/mainwindow.py | 40 +++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 36d3ca67..929919ac 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -44,6 +44,8 @@ from leap.bitmask.platform_init import IS_WIN, IS_MAC from leap.bitmask.platform_init.initializers import init_platform from leap.bitmask.provider.providerbootstrapper import ProviderBootstrapper +from leap.bitmask.services import get_service_display_name, EIP_SERVICE + from leap.bitmask.services.mail import conductor as mail_conductor from leap.bitmask.services import EIP_SERVICE, MX_SERVICE @@ -339,6 +341,8 @@ class MainWindow(QtGui.QMainWindow): self.start_eip_machine() self._mail_conductor.start_mail_machine() + self._eip_name = get_service_display_name(EIP_SERVICE) + if self._first_run(): self._wizard_firstrun = True self._wizard = Wizard(bypass_checks=bypass_checks) @@ -643,7 +647,8 @@ class MainWindow(QtGui.QMainWindow): systrayMenu.addAction(self._action_visible) systrayMenu.addSeparator() - eip_menu = systrayMenu.addMenu(self.tr("Encrypted Internet: OFF")) + eip_status_label = "{0}: {1}".format(self._eip_name, self.tr("OFF")) + eip_menu = systrayMenu.addMenu(eip_status_label) eip_menu.addAction(self._action_eip_startstop) self._eip_status.set_eip_status_menu(eip_menu) systrayMenu.addSeparator() @@ -1230,10 +1235,9 @@ class MainWindow(QtGui.QMainWindow): provider_config, self._eip_config, provider) if not loaded: - self._eip_status.set_eip_status( - self.tr("Could not load Encrypted Internet " - "Configuration."), - error=True) + eip_status_label = self.tr("Could not load {0} configuration.") + eip_status_label = eip_status_label.format(self._eip_name) + self._eip_status.set_eip_status(eip_status_label, error=True) # signal connection aborted to state machine qtsigs = self._eip_connection.qtsigs qtsigs.connection_aborted_signal.emit() @@ -1270,9 +1274,9 @@ class MainWindow(QtGui.QMainWindow): self._set_eipstatus_off() except EIPNoTunKextLoaded: self._eip_status.set_eip_status( - self.tr("Encrypted Internet cannot be started because " + self.tr("{0} cannot be started because " "the tuntap extension is not installed properly " - "in your system.")) + "in your system.").format(self._eip_name)) self._set_eipstatus_off() except EIPNoPkexecAvailable: self._eip_status.set_eip_status( @@ -1407,17 +1411,18 @@ class MainWindow(QtGui.QMainWindow): # XXX check if these exitCodes are pkexec/cocoasudo specific if exitCode in (126, 127): - self._eip_status.set_eip_status( - self.tr("Encrypted Internet could not be launched " - "because you did not authenticate properly."), - error=True) + eip_status_label = self.tr( + "{0} could not be launched " + "because you did not authenticate properly.") + eip_status_label = eip_status_label.format(self._eip_name) + self._eip_status.set_eip_status(eip_status_label, error=True) self._vpn.killit() signal = qtsigs.connection_aborted_signal elif exitCode != 0 or not self.user_stopped_eip: - self._eip_status.set_eip_status( - self.tr("Encrypted Internet finished in an " - "unexpected manner!"), error=True) + eip_status_label = self.tr("{0} finished in an unexpected manner!") + eip_status_label = eip_status_label.format(self._eip_name) + self._eip_status.set_eip_status(eip_status_label, error=True) signal = qtsigs.connection_died_signal if exitCode == 0 and IS_MAC: @@ -1486,10 +1491,9 @@ class MainWindow(QtGui.QMainWindow): # DO START EIP Connection! self._eip_connection.qtsigs.do_connect_signal.emit() else: - self._eip_status.set_eip_status( - self.tr("Could not load Encrypted Internet " - "Configuration."), - error=True) + eip_status_label = self.tr("Could not load {0} configuration.") + eip_status_label = eip_status_label.format(self._eip_name) + self._eip_status.set_eip_status(eip_status_label, error=True) def _eip_intermediate_stage(self, data): # TODO missing param -- cgit v1.2.3 From 65d7232bc2c78be022bbc793aac1a0c933dd8b34 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 5 Dec 2013 11:21:35 -0300 Subject: Add changes file for #4630. --- changes/bug-4630_disable-turn-on-eip-in-tray | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/bug-4630_disable-turn-on-eip-in-tray diff --git a/changes/bug-4630_disable-turn-on-eip-in-tray b/changes/bug-4630_disable-turn-on-eip-in-tray new file mode 100644 index 00000000..35cfeb6f --- /dev/null +++ b/changes/bug-4630_disable-turn-on-eip-in-tray @@ -0,0 +1 @@ +- Disable Turn On EIP in tray if the service is disabled. Closes #4630. -- cgit v1.2.3 From 55f0b96a85662198a0543560aff1518ec383ce95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Fri, 6 Dec 2013 16:43:19 -0300 Subject: Update relnotes for 0.3.8 --- relnotes.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/relnotes.txt b/relnotes.txt index 99898aa2..98af7a30 100644 --- a/relnotes.txt +++ b/relnotes.txt @@ -1,8 +1,8 @@ ANNOUNCING Bitmask, the internet encryption toolkit, release 0.3.7 The LEAP team is pleased to announce the immediate availability of -version 0.3.7 of Bitmask, the Internet Encryption Toolkit, codename -"The Big Lebowsky". +version 0.3.8 of Bitmask, the Internet Encryption Toolkit, codename +"Three week child". https://downloads.leap.se/client/ @@ -34,7 +34,7 @@ NOT trust your life to it (yet!). WHAT CAN THIS VERSION OF BITMASK DO FOR ME? -Bitmask 0.3.7 improves greatly its mail support and stability in +Bitmask 0.3.8 improves greatly its mail support and stability in general, among other various bug fixes. You can refer to the CHANGELOG for the meat. @@ -93,6 +93,6 @@ beyond any border. The LEAP team, -Nov 15, 2013 +Dec 6, 2013 Somewhere in the middle of the intertubes. EOF -- cgit v1.2.3 From 5e18d4e5459595f369d94d0d5b3a280348370ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Fri, 6 Dec 2013 16:43:46 -0300 Subject: Fold in changes --- CHANGELOG.rst | 24 ++++++++++++++++++++++ ...eferences-selects-current-login-widget-provider | 2 -- ...Support-non-ascii-characters-in-a-provider-name | 1 - changes/bug-4630_disable-turn-on-eip-in-tray | 1 - changes/bug4632_remove_eip_stopped_message | 2 -- changes/bug_4404-do-not-install-policykit-in-deb | 1 - changes/bug_4504_properly_close_soledad | 1 - ...537_fix-bootstrap-subtasks-order-and-key-upload | 1 - changes/bug_4543_nobind | 2 -- changes/eip-disabled-until-usable | 7 ------- 10 files changed, 24 insertions(+), 18 deletions(-) delete mode 100644 changes/4490_preferences-selects-current-login-widget-provider delete mode 100644 changes/bug-4592_Support-non-ascii-characters-in-a-provider-name delete mode 100644 changes/bug-4630_disable-turn-on-eip-in-tray delete mode 100644 changes/bug4632_remove_eip_stopped_message delete mode 100644 changes/bug_4404-do-not-install-policykit-in-deb delete mode 100644 changes/bug_4504_properly_close_soledad delete mode 100644 changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload delete mode 100644 changes/bug_4543_nobind delete mode 100644 changes/eip-disabled-until-usable diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4fc4246e..866d6f28 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,30 @@ History ------- +0.3.8 Dec 6 -- the "Three week child" release: ++++++++++++++++++++++++++++++++++++++++++++++++ +- Make the preferences window selects the current selected provider in + the login widget even if the user is not logged in. Closes #4490. +- Support non-ascii characters in a provider name. Closes #4952. +- Disable Turn On EIP in tray if the service is disabled. Closes #4630. +- Do not show the generic message "EIP has stopped" since it's + redundant. Fixes #4632. +- Avoid attempt to install policykit file in debian package. Closes: + #4404 +- Properly close Soledad at quit time. Fixes #4504. +- Fix soledad bootstrap subtasks order. Closes #4537. +- Add --nobind as a VPN parameter to prevent binding on local + addresses. Fixes #4543. +- Disable Turn On EIP until we have an usable provider. Closes #4523. +- Load provider if the wizard was rejected and the setup was + completed. +- Disable Turn On EIP if the "Encrypted Internet" service is disabled. + Closes #4555. +- If EIP service is disabled display 'Disabled' instead of 'You need + to login to use Encrypted Internet'. +- Disable eip-config until we have configured the provider. Closes + #4422. + 0.3.7 Nov 15 -- the "The Big Lebowsky" release: +++++++++++++++++++++++++++++++++++++++++++++++ - Use custom SysTray in order to display per-service tooltip easily. diff --git a/changes/4490_preferences-selects-current-login-widget-provider b/changes/4490_preferences-selects-current-login-widget-provider deleted file mode 100644 index e4c9e907..00000000 --- a/changes/4490_preferences-selects-current-login-widget-provider +++ /dev/null @@ -1,2 +0,0 @@ -- Make the preferences window selects the current selected provider in the - login widget even if the user is not logged in. Closes #4490. diff --git a/changes/bug-4592_Support-non-ascii-characters-in-a-provider-name b/changes/bug-4592_Support-non-ascii-characters-in-a-provider-name deleted file mode 100644 index b27d3dc4..00000000 --- a/changes/bug-4592_Support-non-ascii-characters-in-a-provider-name +++ /dev/null @@ -1 +0,0 @@ -- Support non-ascii characters in a provider name. Closes #4952. diff --git a/changes/bug-4630_disable-turn-on-eip-in-tray b/changes/bug-4630_disable-turn-on-eip-in-tray deleted file mode 100644 index 35cfeb6f..00000000 --- a/changes/bug-4630_disable-turn-on-eip-in-tray +++ /dev/null @@ -1 +0,0 @@ -- Disable Turn On EIP in tray if the service is disabled. Closes #4630. diff --git a/changes/bug4632_remove_eip_stopped_message b/changes/bug4632_remove_eip_stopped_message deleted file mode 100644 index 35836336..00000000 --- a/changes/bug4632_remove_eip_stopped_message +++ /dev/null @@ -1,2 +0,0 @@ -- Do not show the generic message "EIP has stopped" since it's - redundant. Fixes #4632. \ No newline at end of file diff --git a/changes/bug_4404-do-not-install-policykit-in-deb b/changes/bug_4404-do-not-install-policykit-in-deb deleted file mode 100644 index 80745c05..00000000 --- a/changes/bug_4404-do-not-install-policykit-in-deb +++ /dev/null @@ -1 +0,0 @@ -- Avoid attempt to install policykit file in debian package. Closes: #4404 diff --git a/changes/bug_4504_properly_close_soledad b/changes/bug_4504_properly_close_soledad deleted file mode 100644 index b33db9c2..00000000 --- a/changes/bug_4504_properly_close_soledad +++ /dev/null @@ -1 +0,0 @@ -- Properly close Soledad at quit time. Fixes #4504. \ No newline at end of file diff --git a/changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload b/changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload deleted file mode 100644 index 5e01c5a2..00000000 --- a/changes/bug_4537_fix-bootstrap-subtasks-order-and-key-upload +++ /dev/null @@ -1 +0,0 @@ -- Fix soledad bootstrap subtasks order. Closes #4537. diff --git a/changes/bug_4543_nobind b/changes/bug_4543_nobind deleted file mode 100644 index bacd3624..00000000 --- a/changes/bug_4543_nobind +++ /dev/null @@ -1,2 +0,0 @@ -- Add --nobind as a VPN parameter to prevent binding on local - addresses. Fixes #4543. \ No newline at end of file diff --git a/changes/eip-disabled-until-usable b/changes/eip-disabled-until-usable deleted file mode 100644 index 92c2c493..00000000 --- a/changes/eip-disabled-until-usable +++ /dev/null @@ -1,7 +0,0 @@ -- Disable Turn On EIP until we have an usable provider. Closes #4523. -- Load provider if the wizard was rejected and the setup was completed. -- Disable Turn On EIP if the "Encrypted Internet" service is disabled. - Closes #4555. -- If EIP service is disabled display 'Disabled' instead of 'You need to login - to use Encrypted Internet'. -- Disable eip-config until we have configured the provider. Closes #4422. -- cgit v1.2.3