From 3169015c5f5eaed5f2ad48e486b1fe96e1eb6bbe Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 3 Apr 2018 02:45:34 +0200 Subject: several fixes for riseupvpn snap - move snap folder to root folder, to allow automated builds - install only polkit file outside of snap - change path of bitmask-root accordingly in bitmask - fix check for polkit file inside snap - change and document the algorithm for picking bitmask-root in linux - add LD_LIBRARY_PATH as an environment entry for bitmask-systray --- snap/gui/riseup-vpn.desktop | 15 ++++++ snap/gui/riseupvpn.svg | 80 ++++++++++++++++++++++++++++++++ snap/hooks/install | 11 +++++ snap/hooks/remove | 6 +++ snap/snapcraft.yaml | 108 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 220 insertions(+) create mode 100644 snap/gui/riseup-vpn.desktop create mode 100644 snap/gui/riseupvpn.svg create mode 100755 snap/hooks/install create mode 100755 snap/hooks/remove create mode 100644 snap/snapcraft.yaml (limited to 'snap') diff --git a/snap/gui/riseup-vpn.desktop b/snap/gui/riseup-vpn.desktop new file mode 100644 index 00000000..e325b204 --- /dev/null +++ b/snap/gui/riseup-vpn.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=RiseupVPN +Comment=Anonymous VPN +Comment[es]=VPN Anonima +Comment[de]=Anonymous VPN +Path=/snap/bin +Exec=riseup-vpn.launcher +Terminal=false +Icon=/snap/riseup-vpn/current/snap/gui/riseupvpn.svg +Categories=Network;Application; +StartupNotify=true +Keywords=VPN;riseup;leap + diff --git a/snap/gui/riseupvpn.svg b/snap/gui/riseupvpn.svg new file mode 100644 index 00000000..a19c6c61 --- /dev/null +++ b/snap/gui/riseupvpn.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/snap/hooks/install b/snap/hooks/install new file mode 100755 index 00000000..95207387 --- /dev/null +++ b/snap/hooks/install @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 +# This helper installs bitmask-root and polkit policy file +import subprocess +from base64 import decodestring as decode + +POLKIT = b'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBvbGljeWNv\nbmZpZyBQVUJMSUMKICItLy9mcmVlZGVza3RvcC8vRFREIFBvbGljeUtpdCBQb2xpY3kgQ29uZmln\ndXJhdGlvbiAxLjAvL0VOIgogImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy9Q\nb2xpY3lLaXQvMS9wb2xpY3ljb25maWcuZHRkIj4KPHBvbGljeWNvbmZpZz4KCiAgPHZlbmRvcj5M\nRUFQIFByb2plY3Q8L3ZlbmRvcj4KICA8dmVuZG9yX3VybD5odHRwOi8vbGVhcC5zZS88L3ZlbmRv\ncl91cmw+CgogIDxhY3Rpb24gaWQ9InNlLmxlYXAuYml0bWFzay5yaXNldXB2cG4ucG9saWN5Ij4K\nICAgIDxkZXNjcmlwdGlvbj5SdW5zIGJpdG1hc2sgaGVscGVyIHRvIGxhdW5jaCBmaXJld2FsbCBh\nbmQgb3BlbnZwbiAoUmlzZXVwVlBOKTwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1s\nOmxhbmc9ImVzIj5FamVjdXRhIGVsIGFzaXN0ZW50ZSBkZSBiaXRtYXNrIHBhcmEgbGFuemFyIGVs\nIGZpcmV3YWxsIHkgb3BlbnZwbiAoUmlzZXVwVlBOKTwvZGVzY3JpcHRpb24+CiAgICA8bWVzc2Fn\nZT5SaXNldXBWUE4gbmVlZHMgdGhhdCB5b3UgYXV0aGVudGljYXRlIHRvIHN0YXJ0PC9tZXNzYWdl\nPgogICAgPG1lc3NhZ2UgeG1sOmxhbmc9ImVzIj5SaXNldXBWUE4gbmVjZXNpdGEgYXV0b3JpemFj\naW9uIHBhcmEgY29tZW56YXI8L21lc3NhZ2U+CiAgICA8aWNvbl9uYW1lPnBhY2thZ2UteC1nZW5l\ncmljPC9pY29uX25hbWU+IAogICAgPGRlZmF1bHRzPgogICAgICA8YWxsb3dfYW55PnllczwvYWxs\nb3dfYW55PgogICAgICA8YWxsb3dfaW5hY3RpdmU+eWVzPC9hbGxvd19pbmFjdGl2ZT4KICAgICAg\nPGFsbG93X2FjdGl2ZT55ZXM8L2FsbG93X2FjdGl2ZT4KICAgIDwvZGVmYXVsdHM+CiAgICA8YW5u\nb3RhdGUga2V5PSJvcmcuZnJlZWRlc2t0b3AucG9saWN5a2l0LmV4ZWMucGF0aCI+L3NuYXAvYmlu\nL3Jpc2V1cC12cG4uYml0bWFzay1yb290PC9hbm5vdGF0ZT4KICA8L2FjdGlvbj4KPC9wb2xpY3lj\nb25maWc+Cg==\n' + +with open('/usr/share/polkit-1/actions/se.leap.bitmask.riseupvpn.policy', 'w') as polkit: + lines = decode(POLKIT).split(b"\n") + for line in lines: + polkit.write(line.decode() + "\n") diff --git a/snap/hooks/remove b/snap/hooks/remove new file mode 100755 index 00000000..6aebbe10 --- /dev/null +++ b/snap/hooks/remove @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +echo "Executing remove hook for RiseupVPN" +rm "/usr/share/polkit-1/actions/se.leap.bitmask.snap.policy" +echo "done" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 00000000..3702bed0 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,108 @@ +name: riseup-vpn +version: '0.10.5+git' +epoch: 1 +summary: RiseupVPN, secure VPN. Powered by Bitmask. +description: | + RiseupVPN is an easy, fast, and secure VPN service from riseup.net. + RiseupVPN does not require a user account, keep logs, or track you in + any way. The service is paid for entirely by donations from users like + you. + +grade: stable +confinement: classic +icon: snap/gui/riseupvpn.svg + +parts: + desktop-gtk3: + prime: + - '*' + - -usr/include + - -usr/lib/locale + - -usr/share/X11/locale + - -usr/share/doc + - -usr/share/locale + - -usr/share/man + + bitmask: + #after: [gnome-3-26, desktop-gtk3] + after: [desktop-gtk3] + plugin: python + python-version: python2 + source-branch: master + source: . + requirements: pkg/requirements-vpn.pip + stage-packages: + # this seems to trigger https://bugs.launchpad.net/snapcraft/+bug/1676684 + - python2.7-dev + - libsqlcipher-dev + - libffi-dev + - libsqlite3-dev + - libzmq3-dev + prime: + - -usr/include + - -usr/lib/locale + - -usr/share/X11/locale + - -usr/share/doc + - -usr/share/locale + - -usr/share/man + + openvpn: + plugin: nil + stage-packages: + - openvpn + prime: + - -usr/share/doc + - -usr/share/man + bitmask-systray: + after: [desktop-gtk3] + plugin: go + source: https://0xacab.org/leap/bitmask-systray.git + # prepare: XXX run systray tests here + build-packages: + - pkg-config + - patchelf + - libzmq5 + - libzmq3-dev + - libsodium-dev + - libpcre3-dev + - libappindicator3-dev + - libgtk-3-dev + stage-packages: + - libzmq5 + - libsodium18 + - libpcre3 + - libappindicator3-1 + # prime: + # prime:-etc/fonts + # prime:-usr/include + # prime:-usr/bin + # prime:-usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/ + # prime:-usr/lib/x86_64-linux-gnu/glib-2.0/ + # prime:-usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/ + # prime:-usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/printbackends/ + # prime:-usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 + # prime:-usr/lib/x86_64-linux-gnu/libwayland-* + # prime:-usr/sbin/update-icon-caches + # prime:-usr/share/doc + # prime:-usr/share/glib-2.0/schemas + # prime:-usr/share/icons + # prime:-usr/share/lintian + # prime:-usr/share/pkgconfig + # prime:-usr/share/theme + # prime:-usr/share/mime + # prime:-usr/lib/locale + # prime:-usr/share/locale + +apps: + launcher: + command: ./bin/bitmask_anonvpn + openvpn: + command: ./usr/sbin/openvpn + bitmaskd: + command: ./bin/bitmaskd + bitmask-systray: + command: ./bin/bitmask-systray.git + environment: + LD_LIBRARY_PATH: "$SNAP/usr/lib/$(gcc -print-multiarch):$SNAP/lib/$(gcc -print-multiarch):$LD_LIBRARY_PATH" + bitmask-root: + command: ./lib/python2.7/site-packages/leap/bitmask/vpn/helpers/linux/bitmask-root -- cgit v1.2.3