diff options
| author | Kali Kaneko <kali@leap.se> | 2014-05-07 11:24:53 -0500 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2014-05-12 11:25:16 -0500 | 
| commit | 14b208105a6417aefd351f5b38f33bb89358ddcd (patch) | |
| tree | 735e017905319ccc5084fe37041db9b3df94f6e6 | |
| parent | ac19940deb6f0d8c73dc73211d5575c270eff12b (diff) | |
hardcode openvpn binary for bundle
| -rw-r--r-- | changes/bug-5592_harcode_openvpn_path_for_bundle | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/linuxvpnlauncher.py | 36 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/vpnlauncher.py | 35 | 
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): | 
