Skip to content
Snippets Groups Projects
Forked from leap / bitmask-vpn
875 commits behind the upstream repository.
Kali Kaneko (leap communications)'s avatar
Kali Kaneko authored
two things happen differently in osx:

- call to systray.Quit() halts the program (so if called directly, none
        of the deferred functions that we use for cleanup get to
        execute)
- systray.Run() blocks (so after loop returns, the main run.Run() function
        did not get to receive the boolean through the finishedCh channel.

proper shutdown is therefore fixed here by moving the call to
systray.Quit() to a goroutine that executes when the initialize()
function calls all the deferred functions.

we need to revisit this in case we want to break the main select loop
for a reson other than successfully terminating the program.
74733b24
History

Install it

Install dependencies:

  # make depends

Build the systray:

  $ git clone 0xacab.org/leap/bitmask-vpn && cd bitmask-vpn
  $ make build

You need at least go 1.11. If you have something older and are using ubuntu, you can do:

  make install_go

For other situations, have a look at https://github.com/golang/go/wiki/Ubuntu or https://golang.org/dl/

OSX

Using homebrew:

  $ git clone 0xacab.org/leap/bitmask-vpn && cd bitmask-vpn
  $ make depends
  $ make build

Linux

Building the systray in linux will produce some -Wdeprecated-declarations warnings, like that:

cgo-gcc-prolog: In function ‘_cgo_3f9f61f961c9_Cfunc_gtk_font_button_get_font_name’:
cgo-gcc-prolog:5455:2: warning: ‘gtk_font_button_get_font_name’ is deprecated [-Wdeprecated-declarations]
In file included from /usr/include/gtk-3.0/gtk/gtk.h:106:0,
                 from ../../../go/src/github.com/gotk3/gotk3/gtk/gtk.go:48:
/usr/include/gtk-3.0/gtk/gtkfontbutton.h:96:23: note: declared here
 const gchar *         gtk_font_button_get_font_name  (GtkFontButton *font_button);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

They are expected and don't produce any problem on the systray.

Run it

The default build is a standalone systray. It still requires a helper and openvpn installed to work. For linux the helper is bitmask-root for windows and OSX there is a helper written in go.

To build and run it:

  $ make build
  $ build/bin/bitmask-vpn

Bitmaskd

Is also posible to compile the systray to use bitmask as backend:

  $ go build -tags bitmaskd

In that case bitmask-systray assumes that you already have bitmaskd running. Run bitmask and the systray:

  $ bitmaskd
  $ build/bin/bitmask-vpn

i18n

When a string has being modified you need to regenerate the locales:

  $ make generate_locales

To fetch the translations from transifex and rebuild the catalog.go (API_TOKEN is the transifex API token):

  $ API_TOKEN='xxxxxxxxxxx' make locales

There is some bug on gotext and the catalog.go generated doesn't have a package, you will need to edit cmd/bitmask-vpn/catalog.go and to have a package main at the beginning of the file.

If you want to add a new language create the folder locales/$lang before running make locales.

Report an issue

When you report an issue include the following information:

  • what you expected to see
  • what you got
  • the version of the program. You can check the version on the about page.
  • the logs of the program. The location of the logs depends on the OS:
    • linux: /home/<your user>/.config/leap/bitmaskd.log & /home/<your user>/.config/leap/systray.log
    • OSX: /Users/<your user>/Library/Preferences/leap/systray.log, /Applications/RiseupVPN.app/Contents/helper/helper.log & /Applications/RiseupVPN.app/Contents/helper/openvpn.log
    • windows: C:\Users\<your user>\AppData\Local\leap\systray.log, C:\Program Files\RiseupVPN\helper.log & C:\Program Files\RiseupVPN\openvp.log