summaryrefslogtreecommitdiff
path: root/src/leap/bitmask
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2017-05-01 17:10:39 +0200
committerRuben Pollan <meskio@sindominio.net>2017-05-03 11:06:52 +0200
commit0cc95f1df0641606f0173226e6f1b9f44112f962 (patch)
tree45bb214c51b84a7f1e0c307571f93cb3d10f5416 /src/leap/bitmask
parenta295b63d59275ccef839d349d6d92a2cb8ee33b7 (diff)
[bug] include bitmask_helpers into the frozen binary
The bundled version of bitmask is unable to find the bitmask_helpers binary. Let's include it as part of the frozen binary generated by pyinstaller. - Resolves: #8862
Diffstat (limited to 'src/leap/bitmask')
-rw-r--r--src/leap/bitmask/gui/app.py4
-rw-r--r--src/leap/bitmask/vpn/_config.py12
-rw-r--r--src/leap/bitmask/vpn/privilege.py16
3 files changed, 29 insertions, 3 deletions
diff --git a/src/leap/bitmask/gui/app.py b/src/leap/bitmask/gui/app.py
index 42e12807..57bed56d 100644
--- a/src/leap/bitmask/gui/app.py
+++ b/src/leap/bitmask/gui/app.py
@@ -244,6 +244,10 @@ def start_app():
# DEBUG ====================================
if STANDALONE and len(sys.argv) > MIN_ARGS:
+ if sys.argv[1] == 'bitmask_helpers':
+ from leap.bitmask.vpn.helpers import main
+ return main()
+
from leap.bitmask.cli import bitmask_cli
return bitmask_cli.main()
diff --git a/src/leap/bitmask/vpn/_config.py b/src/leap/bitmask/vpn/_config.py
index 5f10734d..421d15a6 100644
--- a/src/leap/bitmask/vpn/_config.py
+++ b/src/leap/bitmask/vpn/_config.py
@@ -1,14 +1,24 @@
+import os.path
import pkg_resources
-from .constants import IS_LINUX
+from .constants import IS_LINUX
+from leap.bitmask.util import STANDALONE, here
if IS_LINUX:
def get_bitmask_helper_path():
+ if STANDALONE:
+ return os.path.join(here(), "..", "apps", "helpers",
+ "bitmask-root")
+
return pkg_resources.resource_filename(
'leap.bitmask.vpn.helpers.linux', 'bitmask-root')
def get_bitmask_polkit_policy_path():
+ if STANDALONE:
+ return os.path.join(here(), "..", "apps", "helpers",
+ "se.leap.bitmask.bundle.policy")
+
return pkg_resources.resource_filename(
'leap.bitmask.vpn.helpers.linux', 'se.leap.bitmask.bundle.policy')
diff --git a/src/leap/bitmask/vpn/privilege.py b/src/leap/bitmask/vpn/privilege.py
index 9666a943..ef33337a 100644
--- a/src/leap/bitmask/vpn/privilege.py
+++ b/src/leap/bitmask/vpn/privilege.py
@@ -31,6 +31,8 @@ from abc import ABCMeta, abstractmethod
from twisted.logger import Logger
from twisted.python.procutils import which
+from leap.bitmask.util import STANDALONE, here
+
log = Logger()
@@ -38,15 +40,25 @@ flags_STANDALONE = False
def install_helpers():
+ cmd = 'bitmask_helpers install'
+ if STANDALONE:
+ binary_path = os.path.join(here(), "bitmask")
+ cmd = "%s %s" % (binary_path, cmd)
+
# TODO check if the command has succeeded, and display error
# if failed
- commands.getoutput('pkexec bitmask_helpers install')
+ commands.getoutput('pkexec ' + cmd)
def uninstall_helpers():
+ cmd = 'bitmask_helpers uninstall'
+ if STANDALONE:
+ binary_path = os.path.join(here(), "bitmask")
+ cmd = "%s %s" % (binary_path, cmd)
+
# TODO check if the command has succeeded, and display error
# if failed
- commands.getoutput('pkexec bitmask_helpers uninstall')
+ commands.getoutput('pkexec ' + cmd)
class NoPolkitAuthAgentAvailable(Exception):