diff options
author | lethalman <lucabru@src.gnome.org> | 2014-12-22 11:16:44 +0100 |
---|---|---|
committer | lethalman <lucabru@src.gnome.org> | 2014-12-22 11:16:44 +0100 |
commit | d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff (patch) | |
tree | 1edd261ac912e5e82bcabd88a6cbcbd6542b3f41 | |
parent | a80f7d7c9699c58c0e9e6480f017d979147dcc48 (diff) | |
parent | 01910e84f9d16e1bff765d4dffb0defb4039bad6 (diff) | |
download | nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.tar nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.tar.gz nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.tar.bz2 nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.tar.lz nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.tar.xz nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.tar.zst nixlib-d0fdad5f36ceac69ce2b8a3f9a7d2622ad70fbff.zip |
Merge pull request #5419 from ehmry/tox-bootstrapd
tox-bootstrapd
-rw-r--r-- | nixos/modules/misc/ids.nix | 1 | ||||
-rwxr-xr-x | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/networking/tox-bootstrapd.nix | 80 | ||||
-rw-r--r-- | pkgs/development/libraries/libtoxcore/default.nix | 16 |
4 files changed, 91 insertions, 7 deletions
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 3bb7fdb9b2d6..bf8365e34645 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -173,6 +173,7 @@ peerflix = 163; chronos = 164; gitlab = 165; + tox-bootstrapd = 166; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 1005e281f9b7..2c52ebb37bcb 100755 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -286,6 +286,7 @@ ./services/networking/tcpcrypt.nix ./services/networking/teamspeak3.nix ./services/networking/tftpd.nix + ./services/networking/tox-bootstrapd.nix ./services/networking/unbound.nix ./services/networking/unifi.nix ./services/networking/vsftpd.nix diff --git a/nixos/modules/services/networking/tox-bootstrapd.nix b/nixos/modules/services/networking/tox-bootstrapd.nix new file mode 100644 index 000000000000..65aa87be44cc --- /dev/null +++ b/nixos/modules/services/networking/tox-bootstrapd.nix @@ -0,0 +1,80 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + home = "/var/lib/tox-bootstrapd"; + PIDFile = "${home}/pid"; + + pkg = pkgs.libtoxcore; + cfg = config.services.toxBootstrapd; + cfgFile = builtins.toFile "tox-bootstrapd.conf" + '' + port = ${toString cfg.port} + keys_file_path = "${home}/keys" + pid_file_path = "${PIDFile}" + ${cfg.extraConfig} + ''; +in +{ + options = + { services.toxBootstrapd = + { enable = mkOption { + type = types.bool; + default = false; + description = + '' + Whether to enable the Tox DHT boostrap daemon. + ''; + }; + + port = mkOption { + type = types.int; + default = 33445; + description = "Listening port (UDP)."; + }; + + keysFile = mkOption { + type = types.str; + default = "${home}/keys"; + description = "Node key file."; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = + '' + Configuration for boostrap daemon. + See <link xlink:href="https://github.com/irungentoo/toxcore/blob/master/other/bootstrap_daemon/tox-bootstrapd.conf"/> + and <link xlink:href="http://wiki.tox.im/Nodes"/>. + ''; + }; + }; + + }; + + config = mkIf config.services.toxBootstrapd.enable { + + users.extraUsers = singleton + { name = "tox-bootstrapd"; + uid = config.ids.uids.tox-bootstrapd; + description = "Tox bootstrap daemon user"; + inherit home; + createHome = true; + }; + + systemd.services.tox-bootstrapd = { + description = "Tox DHT bootstrap daemon"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = + { ExecStart = "${pkg}/bin/tox-bootstrapd ${cfgFile}"; + Type = "forking"; + inherit PIDFile; + User = "tox-bootstrapd"; + }; + }; + + }; +} diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix index d569cf28c37c..de224f6b613b 100644 --- a/pkgs/development/libraries/libtoxcore/default.nix +++ b/pkgs/development/libraries/libtoxcore/default.nix @@ -1,17 +1,18 @@ -{ stdenv, fetchurl, autoconf, libtool, automake, libsodium, ncurses, libopus +{ stdenv, fetchFromGitHub, autoconf, libtool, automake, libsodium, ncurses, libopus , libvpx, check, libconfig, pkgconfig }: let version = "f6b3e6e8fe98d2457827ac6da944e715f008a08a"; - date = "20141203"; + date = "20141219"; in stdenv.mkDerivation rec { - name = "tox-core-${date}-${version}"; + name = "tox-core-${date}-${builtins.substring 0 7 version}"; - src = fetchurl { - url = "https://github.com/irungentoo/toxcore/tarball/${version}"; - name = "${name}.tar.gz"; - sha256 = "1zsx7saqs25vva3pp0bw31yqzrn40fx84w42ig6fiv723k9gpdzy"; + src = fetchFromGitHub { + owner = "irungentoo"; + repo = "toxcore"; + rev = version; + sha256 = "1wd817kix3zjyzzb68jz02iir3z4y5k5p40dgl7a29757yb9m608"; }; NIX_LDFLAGS = "-lgcc_s"; @@ -33,6 +34,7 @@ stdenv.mkDerivation rec { "--with-libsodium-headers=${libsodium}/include" "--with-libsodium-libs=${libsodium}/lib" "--enable-ntox" + "--enable-daemon" ]; buildInputs = [ |