diff --git a/pkgs/tools/networking/teavpn2/default.nix b/pkgs/tools/networking/teavpn2/default.nix new file mode 100644 index 000000000000..57016a0302a0 --- /dev/null +++ b/pkgs/tools/networking/teavpn2/default.nix @@ -0,0 +1,41 @@ +{ lib +, stdenv +, fetchFromGitHub +, substituteAll +, iproute2 +}: +stdenv.mkDerivation { + pname = "teavpn2"; + version = "unstable-2023-07-25"; + + src = fetchFromGitHub { + owner = "TeaInside"; + repo = "teavpn2"; + rev = "b21898d001a2e7b821e045162dd18f13561cb04b"; + hash = "sha256-0/eHK2/+pn6NfawL1xLJv4jDBFvLwELSXNWLUvff1gs="; + }; + + patches = [ + (substituteAll { + src = ./nix.patch; + inherit iproute2; + }) + ]; + + installPhase = '' + runHook preInstall + + install -Dm 0755 teavpn2 $out/bin/teavpn2 + + runHook postInstall + ''; + + meta = with lib; { + description = "An open source VPN Software"; + homepage = "https://github.com/TeaInside/teavpn2"; + license = licenses.gpl2Plus; + mainProgram = "teavpn2"; + maintainers = with maintainers; [ ludovicopiero ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/networking/teavpn2/nix.patch b/pkgs/tools/networking/teavpn2/nix.patch new file mode 100644 index 000000000000..613eede42478 --- /dev/null +++ b/pkgs/tools/networking/teavpn2/nix.patch @@ -0,0 +1,14 @@ +diff --git a/src/teavpn2/net/linux/iface.c b/src/teavpn2/net/linux/iface.c +index a77c1c8..e59c901 100644 +--- a/src/teavpn2/net/linux/iface.c ++++ b/src/teavpn2/net/linux/iface.c +@@ -327,7 +327,8 @@ static __cold __always_inline const char *find_ip_cmd(void) + "/usr/sbin/ip", + "/usr/local/bin/ip", + "/usr/local/sbin/ip", +- "/data/data/com.termux/files/usr/bin/ip" ++ "/data/data/com.termux/files/usr/bin/ip", ++ "@iproute2@/bin/ip" + }; + + for (size_t i = 0; i < (sizeof(ip_bin) / sizeof(*ip_bin)); i++) { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b2b5ef643f7..8b61ec8f5b08 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13443,6 +13443,8 @@ with pkgs; tea = callPackage ../tools/misc/tea { }; + teavpn2 = callPackage ../tools/networking/teavpn2 { }; + inherit (nodePackages) teck-programmer; ted = callPackage ../tools/typesetting/ted { };