summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2014-05-07 11:24:53 -0500
committerKali Kaneko <kali@leap.se>2014-05-12 11:25:16 -0500
commit14b208105a6417aefd351f5b38f33bb89358ddcd (patch)
tree735e017905319ccc5084fe37041db9b3df94f6e6
parentac19940deb6f0d8c73dc73211d5575c270eff12b (diff)
hardcode openvpn binary for bundle
-rw-r--r--changes/bug-5592_harcode_openvpn_path_for_bundle1
-rw-r--r--src/leap/bitmask/services/eip/linuxvpnlauncher.py36
-rw-r--r--src/leap/bitmask/services/eip/vpnlauncher.py35
3 files changed, 28 insertions, 44 deletions
diff --git a/changes/bug-5592_harcode_openvpn_path_for_bundle b/changes/bug-5592_harcode_openvpn_path_for_bundle
new file mode 100644
index 00000000..67f4b533
--- /dev/null
+++ b/changes/bug-5592_harcode_openvpn_path_for_bundle
@@ -0,0 +1 @@
+- Hardcode paths for openvpn if STANDALONE=True. Related: #5592
diff --git a/src/leap/bitmask/services/eip/linuxvpnlauncher.py b/src/leap/bitmask/services/eip/linuxvpnlauncher.py
index 791c318c..6d54c27b 100644
--- a/src/leap/bitmask/services/eip/linuxvpnlauncher.py
+++ b/src/leap/bitmask/services/eip/linuxvpnlauncher.py
@@ -100,41 +100,19 @@ leapfile = lambda f: "%s/%s" % (SYSTEM_CONFIG, f)
class LinuxVPNLauncher(VPNLauncher):
PKEXEC_BIN = 'pkexec'
-
- # FIXME should get the absolute path to openvpn. See #5592
- OPENVPN_BIN = 'openvpn'
BITMASK_ROOT = "/usr/sbin/bitmask-root"
- # FIXME get ABSOLUTE PATH
- OPENVPN_BIN_PATH = os.path.join(
- get_path_prefix(), "..", "apps", "eip", OPENVPN_BIN)
-
# We assume this is there by our openvpn dependency, and
# we will put it there on the bundle too.
- # TODO adapt to the bundle path.
- OPENVPN_DOWN_ROOT_BASE = "/usr/lib/openvpn/"
- OPENVPN_DOWN_ROOT_FILE = "openvpn-plugin-down-root.so"
- OPENVPN_DOWN_ROOT_PATH = "%s/%s" % (
- OPENVPN_DOWN_ROOT_BASE,
- OPENVPN_DOWN_ROOT_FILE)
-
- # XXX Should be able to pick the right resolvconf script
- # on the fly.
- RESOLV_UPDATE_FILE = "resolv-update"
- RESOLV_UPDATE_SCRIPT = leapfile(RESOLV_UPDATE_FILE)
-
- RESOLVCONF_FILE = "update-resolv-conf"
- RESOLVCONF_SCRIPT = leapfile(RESOLVCONF_FILE)
-
- UP_SCRIPT = RESOLVCONF_SCRIPT
- DOWN_SCRIPT = RESOLVCONF_SCRIPT
-
- UPDOWN_FILES = (UP_SCRIPT, DOWN_SCRIPT)
+ if flags.STANDALONE:
+ OPENVPN_BIN_PATH = "/usr/sbin/leap-openvpn"
+ else:
+ OPENVPN_BIN_PATH = "/usr/sbin/openvpn"
- # XXX GET BOTH POLKIT FILES: the one for vpn and the other for the wrapper
POLKIT_PATH = LinuxPolicyChecker.get_polkit_path()
- OTHER_FILES = (POLKIT_PATH, RESOLV_UPDATE_SCRIPT, RESOLVCONF_SCRIPT,
- BITMASK_ROOT)
+
+ # XXX openvpn binary TOO
+ OTHER_FILES = (POLKIT_PATH, BITMASK_ROOT)
@classmethod
def maybe_pkexec(kls):
diff --git a/src/leap/bitmask/services/eip/vpnlauncher.py b/src/leap/bitmask/services/eip/vpnlauncher.py
index af3116f2..ed49ba59 100644
--- a/src/leap/bitmask/services/eip/vpnlauncher.py
+++ b/src/leap/bitmask/services/eip/vpnlauncher.py
@@ -168,16 +168,19 @@ class VPNLauncher(object):
leap_assert_type(eipconfig, EIPConfig)
leap_assert_type(providerconfig, ProviderConfig)
- kwargs = {}
- if flags.STANDALONE:
- kwargs['path_extension'] = os.path.join(
- get_path_prefix(), "..", "apps", "eip")
-
- openvpn_possibilities = which(kls.OPENVPN_BIN, **kwargs)
- if len(openvpn_possibilities) == 0:
+ # XXX this still has to be changed on osx and windows accordingly
+ #kwargs = {}
+ #openvpn_possibilities = which(kls.OPENVPN_BIN, **kwargs)
+ #if not openvpn_possibilities:
+ #raise OpenVPNNotFoundException()
+ #openvpn = first(openvpn_possibilities)
+ # -----------------------------------------
+ if not os.path.isfile(kls.OPENVPN_BIN_PATH):
+ logger.warning("Could not find openvpn bin in path %s" % (
+ kls.OPENVPN_BIN_PATH))
raise OpenVPNNotFoundException()
- openvpn = first(openvpn_possibilities)
+ openvpn = kls.OPENVPN_BIN_PATH
args = []
args += [
@@ -295,13 +298,15 @@ class VPNLauncher(object):
:rtype: list
"""
- leap_assert(kls.UPDOWN_FILES is not None,
- "Need to define UPDOWN_FILES for this particular "
- "launcher before calling this method")
- file_exist = partial(_has_updown_scripts, warn=False)
- zipped = zip(kls.UPDOWN_FILES, map(file_exist, kls.UPDOWN_FILES))
- missing = filter(lambda (path, exists): exists is False, zipped)
- return [path for path, exists in missing]
+ # XXX remove when we ditch UPDOWN in osx and win too
+ #leap_assert(kls.UPDOWN_FILES is not None,
+ #"Need to define UPDOWN_FILES for this particular "
+ #"launcher before calling this method")
+ #file_exist = partial(_has_updown_scripts, warn=False)
+ #zipped = zip(kls.UPDOWN_FILES, map(file_exist, kls.UPDOWN_FILES))
+ #missing = filter(lambda (path, exists): exists is False, zipped)
+ #return [path for path, exists in missing]
+ return []
@classmethod
def missing_other_files(kls):