toxvpn: 20161230 -> 2017-06-25

This commit is contained in:
michael bishop 2017-06-25 20:17:20 -03:00
parent bd63daae03
commit bb16bced36
No known key found for this signature in database
GPG Key ID: C294FC1A485A409A
2 changed files with 31 additions and 10 deletions

View File

@ -18,6 +18,13 @@ with lib;
default = 33445; default = 33445;
description = "udp port for toxcore, port-forward to help with connectivity if you run many nodes behind one NAT"; description = "udp port for toxcore, port-forward to help with connectivity if you run many nodes behind one NAT";
}; };
auto_add_peers = mkOption {
type = types.listOf types.string;
default = [];
example = ''[ "toxid1" "toxid2" ]'';
description = "peers to automacally connect to on startup";
};
}; };
}; };
@ -33,8 +40,13 @@ with lib;
chown toxvpn /run/toxvpn chown toxvpn /run/toxvpn
''; '';
path = [ pkgs.toxvpn ];
script = ''
exec toxvpn -i ${config.services.toxvpn.localip} -l /run/toxvpn/control -u toxvpn -p ${toString config.services.toxvpn.port} ${lib.concatMapStringsSep " " (x: "-a ${x}") config.services.toxvpn.auto_add_peers}
'';
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.toxvpn}/bin/toxvpn -i ${config.services.toxvpn.localip} -l /run/toxvpn/control -u toxvpn -p ${toString config.services.toxvpn.port}";
KillMode = "process"; KillMode = "process";
Restart = "on-success"; Restart = "on-success";
Type = "notify"; Type = "notify";
@ -43,6 +55,8 @@ with lib;
restartIfChanged = false; # Likely to be used for remote admin restartIfChanged = false; # Likely to be used for remote admin
}; };
environment.systemPackages = [ pkgs.toxvpn ];
users.extraUsers = { users.extraUsers = {
toxvpn = { toxvpn = {
uid = config.ids.uids.toxvpn; uid = config.ids.uids.toxvpn;

View File

@ -1,29 +1,36 @@
{ stdenv, fetchFromGitHub, cmake, lib { stdenv, fetchFromGitHub, cmake, nlohmann_json,
, libtoxcore, jsoncpp, libsodium, systemd, libcap }: libtoxcore, libsodium, systemd, libcap, zeromq }:
with lib; with stdenv.lib;
stdenv.mkDerivation rec { let
systemdOrNull = if stdenv.system == "x86_64-darwin" then null else systemd;
if_systemd = optional (systemdOrNull != null);
in stdenv.mkDerivation rec {
name = "toxvpn-${version}"; name = "toxvpn-${version}";
version = "20161230"; version = "2017-06-25";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cleverca22"; owner = "cleverca22";
repo = "toxvpn"; repo = "toxvpn";
rev = "4b7498a5fae680484cb5779ac01fb08ad3089bdd"; rev = "7bd6f169d69c511affa8c9672e8f794e4e205a44";
sha256 = "0bazdspiym9xyzms7pd6i1f2gph13rnf764nm3jc27fbfwmc98rp"; sha256 = "1km8hkrxmrnca1b49vbw5kyldayaln5plvz78vhf8325r6c5san0";
}; };
buildInputs = [ libtoxcore jsoncpp libsodium libcap ] ++ optional stdenv.isLinux systemd; buildInputs = [ libtoxcore nlohmann_json libsodium zeromq ]
++ if_systemd systemd
++ optional (stdenv.system != "x86_64-darwin") libcap;
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
cmakeFlags = optional stdenv.isLinux [ "-DSYSTEMD=1" ]; cmakeFlags = optional stdenv.isLinux [ "-DSYSTEMD=1" ];
postInstall = "$out/bin/toxvpn -h";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A powerful tool that allows one to make tunneled point to point connections over Tox"; description = "A powerful tool that allows one to make tunneled point to point connections over Tox";
homepage = https://github.com/cleverca22/toxvpn; homepage = https://github.com/cleverca22/toxvpn;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ cleverca22 obadz ]; maintainers = with maintainers; [ cleverca22 obadz ];
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }