summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2017-05-16 22:54:21 +0200
committerRuben Pollan <meskio@sindominio.net>2017-05-22 12:56:20 +0200
commitca6f399c045d5caa21835f762cde877bf2b80ad6 (patch)
treef7ce41b5056943d9cf1ad02b7f5dd24f23795ce8
parent75debc78584681071685e17ae4c596662eeae3af (diff)
[pkg] install and use static openvpn from bundle
-rw-r--r--pkg/pyinst/build.mk7
-rw-r--r--src/leap/bitmask/vpn/_config.py6
-rw-r--r--src/leap/bitmask/vpn/helpers/__init__.py7
3 files changed, 19 insertions, 1 deletions
diff --git a/pkg/pyinst/build.mk b/pkg/pyinst/build.mk
index 25a7ef3..e877205 100644
--- a/pkg/pyinst/build.mk
+++ b/pkg/pyinst/build.mk
@@ -29,12 +29,17 @@ bundle_gpg:
patchelf --set-rpath '.' $(DIST_VERSION)/apps/mail/gpg
cp /lib/x86_64-linux-gnu/libusb-0.1.so.4 $(DIST_VERSION)/lib
+bundle_vpn:
+ mkdir -p $(DIST_VERSION)/apps/vpn
+ # TODO verify signature
+ wget https://downloads.leap.se/thirdparty/linux/openvpn/openvpn -O $(DIST_VERSION)/apps/vpn/openvpn.leap
+
bundle_linux_helpers:
mkdir -p $(DIST_VERSION)/apps/helpers
cp src/leap/bitmask/vpn/helpers/linux/bitmask-root $(DIST_VERSION)/apps/helpers/
cp src/leap/bitmask/vpn/helpers/linux/se.leap.bitmask.bundle.policy $(DIST_VERSION)/apps/helpers/
-bundle_apps: bundle_gpg bundle_linux_helpers
+bundle_apps: bundle_gpg bundle_vpn bundle_linux_helpers
bundle_tar:
cd dist/ && tar cvzf Bitmask.$(NEXT_VERSION).tar.gz bitmask-$(NEXT_VERSION)
diff --git a/src/leap/bitmask/vpn/_config.py b/src/leap/bitmask/vpn/_config.py
index 421d15a..5bb61e7 100644
--- a/src/leap/bitmask/vpn/_config.py
+++ b/src/leap/bitmask/vpn/_config.py
@@ -22,6 +22,12 @@ if IS_LINUX:
return pkg_resources.resource_filename(
'leap.bitmask.vpn.helpers.linux', 'se.leap.bitmask.bundle.policy')
+ def get_bitmask_openvpn_path():
+ if STANDALONE:
+ return os.path.join(here(), "..", "apps", "vpn",
+ "openvpn.leap")
+ # else nothing, we're only shipping the openvpn binary with bundles
+
class _TempVPNConfig(object):
"""Current VPN code on bitmask depends on VPNConfig object, this temporary
diff --git a/src/leap/bitmask/vpn/helpers/__init__.py b/src/leap/bitmask/vpn/helpers/__init__.py
index 69a9a5f..3b7e117 100644
--- a/src/leap/bitmask/vpn/helpers/__init__.py
+++ b/src/leap/bitmask/vpn/helpers/__init__.py
@@ -10,14 +10,21 @@ if IS_LINUX:
helper_to = '/usr/local/sbin/bitmask-root'
polkit_to = '/usr/share/polkit-1/actions/se.bitmask.bundle.policy'
+ openvpn_to = '/usr/local/sbin/leap-openvpn'
def install():
helper_from = _config.get_bitmask_helper_path()
polkit_from = _config.get_bitmask_polkit_policy_path()
+ openvpn_from = _config.get_bitmask_openvpn_path()
+
copyfile(helper_from, helper_to)
chmod(helper_to, 0744)
+
copyfile(polkit_from, polkit_to)
+ copyfile(openvpn_from, openvpn_to)
+ chmod(openvpn_to, 0700)
+
def uninstall():
remove(helper_to)
remove(polkit_to)