]> Cypherpunks.ru repositories - govpn.git/blobdiff - doc/installation.texi
Replace Argon2 with Balloon hashing
[govpn.git] / doc / installation.texi
index f1fbf0db017e817028524c0959fa1b5f804fe9df..01ac54b8e1cbc48aaf04a193ad7f7f08ac2c17dc 100644 (file)
@@ -1,48 +1,58 @@
 @node Installation
 @unnumbered Installation
 
-GoVPN is written on Go programming language, But
-@url{https://www.gnu.org/software/make/, Make} program is recommended
-also to be used. @url{https://www.gnu.org/software/texinfo/, Texinfo} is
-used for building documentation. Also it depends on
-@code{golang.org/x/crypto} Go libraries.
+Possibly GoVPN already exists in your distribution:
+
+@itemize
+@item @url{https://aur.archlinux.org/packages/govpn/, Arch Linux AUR}
+@item @url{http://www.freshports.org/security/govpn/, FreeBSD ports}
+@item @url{https://gpo.zugaina.org/net-misc/govpn, Gentoo Portage Overlay}
+@item @url{https://pkgs.org/download/govpn, openSUSE OSS}
+@end itemize
+
+GoVPN is written on @url{https://golang.org/, Go} programming language
+and you have to install Go compiler (1.5+ version is highly recommended,
+1.4 is the minimal sufficient): @code{lang/go} port in FreeBSD and
+@code{golang} package in most GNU/Linux distributions. @emph{Make} (BSD
+and GNU ones are fine) is recommended for convenient building.
+@url{https://www.gnu.org/software/texinfo/, Texinfo} (6.1+ version is
+recommended) is used for building documentation. Possibly you also need
+to install TUN/TAP interface utilities (depending on your operating
+system): @code{uml-utilities} package in most GNU/Linux distributions.
+
+Included required libraries:
+
+@multitable @columnfractions .40 .20 .40
+@headitem Library @tab Platform @tab Licence
+@item @code{github.com/agl/ed25519} @tab All @tab BSD 3-Clause
+@item @code{github.com/bigeagle/water} @tab GNU/Linux @tab BSD 3-Clause
+@item @code{github.com/dchest/blake2b} @tab All @tab CC0 1.0
+@item @code{github.com/go-yaml/yaml} @tab All @tab LGPLv3 and MIT
+@item @code{golang.org/x/crypto} @tab All @tab BSD 3-Clause
+@end multitable
+
+Get @ref{Tarballs, the tarball}, check its
+@ref{Integrity, integrity and authenticity} and run @command{make}.
+@emph{govpn-client}, @emph{govpn-server}, @emph{govpn-verifier}
+binaries will be built in the current directory:
+
+@verbatim
+% wget http://www.govpn.info/download/govpn-2.3.tar.xz
+% wget http://www.govpn.info/download/govpn-2.3.tar.xz.sig
+% gpg --verify govpn-2.3.tar.xz.sig govpn-2.3.tar.xz
+% tar xf govpn-2.3.tar.xz
+% make -C govpn-2.3 all
+@end verbatim
+
+There is @code{install} target respecting @env{DESTDIR}. It will
+install binaries, info-documentation and utilities.
+
+@menu
+* Prepared tarballs: Tarballs.
+* Tarballs integrity check: Integrity.
+* Development source code: Sources.
+@end menu
 
 @include download.texi
-
-You @strong{have to} verify downloaded archives integrity and check
-their signature to be sure that you have got trusted, untampered
-software. For integrity and authentication of downloaded binaries
-@url{https://www.gnupg.org/, The GNU Privacy Guard} is used. You must
-download signature provided with the tarball and run for example:
-
-@example
-gpg --verify govpn-1.5.tar.xz.sig govpn-1.5.tar.xz
-@end example
-
-For the very first time you must also import signing public keys. They
-are provided below, but be sure that you are reading them from the
-trusted source. Alternatively check this page from other sources and
-look for the mailing list announcements.
-
-You have to set up @code{$GOPATH} properly first. For example you can
-clone the repository or decompress tarball and set path like this:
-
-@example
-% mkdir -p govpn/src
-% git clone https://github.com/stargrave/govpn.git govpn/src/govpn
-or
-% tar xfC govpn-1.5.tar.xz govpn/src && mv govpn/src/govpn-1.5 govpn/src/govpn
-% export GOPATH=$(pwd)/govpn:$GOPATH
-@end example
-
-After that you can just type @code{make} and all necessary Go libraries
-will be installed and client/server binaries are built in the current
-directory:
-
-@example
-% cd govpn/src/govpn
-% make
-[or gmake under FreeBSD]
-@end example
-
-@include pubkey.texi
+@include integrity.texi
+@include sources.texi