diff --git a/pkgs/tools/networking/nat-traverse/default.nix b/pkgs/tools/networking/nat-traverse/default.nix new file mode 100644 index 00000000000..a352596eed0 --- /dev/null +++ b/pkgs/tools/networking/nat-traverse/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, perl }: + +stdenv.mkDerivation rec { + name = "nat-traverse-${version}"; + version = "0.7"; + + src = fetchurl { + url = "https://www.speicherleck.de/iblech/nat-traverse/nat-traverse-${version}.tar.bz2"; + sha256 = "0knwnqsjwv7sa5wjb863ghabs7s269a73qwkmxpsbngjw9s0j2ih"; + }; + + nativeBuildInputs = [ perl ]; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + cp nat-traverse $out/bin + gzip -c nat-traverse.1 > $out/share/man/man1/nat-traverse.1.gz + ''; + + meta = with stdenv.lib; { + description = "NAT gateway traversal utility"; + longDescription = '' + nat-traverse establishes direct connections between nodes which are + behind NAT gateways, i.e. hosts which do not have public IP addresses. + This is done using an UDP NAT traversal technique. Additionally, it's + possible to setup a small VPN by using pppd on top of nat-traverse. + + nat-traverse does not need an external server on the Internet, and it + isn't necessary to reconfigure the involved NAT gateways, either. + nat-traverse works out-of-the-box. + ''; + homepage = https://www.speicherleck.de/iblech/nat-traverse/; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = [ maintainers.iblech ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f02b55b2089..f7eed45314f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3447,6 +3447,8 @@ with pkgs; nasty = callPackage ../tools/security/nasty { }; + nat-traverse = callPackage ../tools/networking/nat-traverse { }; + nawk = callPackage ../tools/text/nawk { }; nbd = callPackage ../tools/networking/nbd { };