Hi Sergey,

thanks for this small and useful note, you were right!
I downloaded latest version of Go (go1.5.3.src.tar.gz) from official site and compiled govpn-5.2 successfully.

Now I have 3 utilities in root directory: 
-rwxr-xr-x  1 root root 7693400 ינו 20 00:19 govpn-client
-rwxr-xr-x  1 root root 8523328 ינו 20 00:19 govpn-server
-rwxr-xr-x  1 root root 4658456 ינו 20 00:19 govpn-verifier

And one script in ./utils : 
-rwx------ 1 1001 root 634 ינו 13 21:39 newclient.sh

On server side I run this script and enter password:
root@alan-XPS:~/govpn-5.2# ./utils/newclient.sh alan
Your client verifier is: $argon2d$m=4096,t=128,p=1$J2g7mlL33KHw34qDq0L5Eg
Place the following YAML configuration entry on the server's side:

    alan:
        up: /path/to/up.sh
        iface: or TAP interface name
        verifier: Passphrase: $argon2d$m=4096,t=128,p=1$J2g7mlL33KHw34qDq0L5Eg$NsW5CVpiU14e1c12S8GKEqSeHVeAZ5h+gVrVq4s7u3U

After I created file in main directory called peers.yaml and put all this strings inside:
root@alan-XPS:~/govpn-5.2# cat peers.yaml 
alan:
    up: /path/to/up.sh
    iface: tap10
    verifier: $argon2d$m=4096,t=128,p=1$J2g7mlL33KHw34qDq0L5Eg 
    Passphrase: $argon2d$m=4096,t=128,p=1$J2g7mlL33KHw34qDq0L5Eg$NsW5CVpiU14e1c12S8GKEqSeHVeAZ5h+gVrVq4s7u3U

Should I change iface option here to my virtual interface tap10? 
What should I put in (up: /path/to/up.sh): ? 

As I understand, I should bring up interface tap10. 
So I did it:

root@alan-XPS:~/govpn-5.2# sudo ip tuntap add dev eth10 mode tap
root@alan-XPS:~/govpn-5.2# ip link set mtu 1432 dev tap10
root@alan-XPS:~/govpn-5.2# ip addr add 172.16.0.1/24 dev tap10
root@alan-XPS:~/govpn-5.2# ifconfig tap10 up
root@alan-XPS:~/govpn-5.2# ifup tap10
root@alan-XPS:~/govpn-5.2# ip addr show tap10
6: tap10: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1432 qdisc pfifo_fast state DOWN group default qlen 500
    link/ether a6:9c:68:0c:a4:b5 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.1/24 scope global tap10
       valid_lft forever preferred_lft forever

And here we go with daemon: 
root@alan-XPS:~/govpn-5.2# ./govpn-server -bind 192.168.0.103:1194
2016/01/20 00:51:33.154774 main.go:46: GoVPN version 5.2 built with go1.5.3
2016/01/20 00:51:33.155121 identify.go:70: Adding key 27683b9a52f7dca1f0df8a83ab42f912
2016/01/20 00:51:33.155230 udp.go:51: Listening on UDP:192.168.0.103:1194
2016/01/20 00:51:33.155296 main.go:85: Server started

Am I do right? 
And how should I star client? 

In govpn-verifier I found this: 
root@alan-XPS:~/govpn-5.2# ./govpn-verifier --help
  -key string
    Path to passphrase file

But I don't really understand, how I should connect to server.
Could you please to help with this part?
Thank you.

On Wed, Jan 20, 2016 at 12:08 AM, <stargrave@stargrave.org> wrote:
Greetings!

*** Alan Holt <berber.it@gmail.com> [Tue, 19 Jan 2016 21:04:49 +0200]:
>how are you?

I am fine, thanks!

>src/govpn/peer.go:381: undefined: bytes.LastIndexByte
>src/govpn/verifier.go:83: undefined: base64.RawStdEncoding
>src/govpn/verifier.go:93: undefined: base64.RawStdEncoding
>src/govpn/verifier.go:108: undefined: base64.RawStdEncoding
>src/govpn/verifier.go:117: undefined: base64.RawStdEncoding
>make: *** [govpn-client] Error 2

I checked the building under Go 1.3.x. It fails with the same reason.
That means that GoVPN minimally requires at least Go 1.4. Seems that
Ubuntu and CentOS has an outdated Go versions. I will add minimal
requirements version to the documentation and the website. Thanks for
the note.

But I highly recommend to use at least 1.5 version -- it gives *very*
high performance boost!

>On FreeBSD and Arch it compiled well, but interesting to know which
>dependencies are missing.

Those operating systems have very fresh software versions, as a rule.

--
Happy hacking, Sergey Matveev



--
בברכה, 
אלכס ברבר
--
Best regards.
Alex Berber