about summary refs log tree commit diff
path: root/pkgs/by-name/ea
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ea')
-rw-r--r--pkgs/by-name/ea/easytier/package.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/by-name/ea/easytier/package.nix b/pkgs/by-name/ea/easytier/package.nix
new file mode 100644
index 0000000000000..9928fd07b0db4
--- /dev/null
+++ b/pkgs/by-name/ea/easytier/package.nix
@@ -0,0 +1,51 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  protobuf,
+  nix-update-script,
+  darwin,
+  withQuic ? false, # with QUIC protocol support
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "easytier";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "EasyTier";
+    repo = "EasyTier";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-7T6xdJrVTgg7rSTC2PaVTsBTgi14qJzaR6M8tRUL8OQ=";
+  };
+
+  cargoHash = "sha256-9wAGUVYKz7+Q8y+dmay8pEZnv7PikzuAoas/h5T3sLE=";
+
+  nativeBuildInputs = [ protobuf ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  buildNoDefaultFeatures = stdenv.isMips;
+  buildFeatures = lib.optional stdenv.isMips "mips" ++ lib.optional withQuic "quic";
+
+  doCheck = false; # tests failed due to heavy rely on network
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/EasyTier/EasyTier";
+    changelog = "https://github.com/EasyTier/EasyTier/releases/tag/v${version}";
+    description = "Simple, decentralized mesh VPN with WireGuard support";
+    longDescription = ''
+      EasyTier is a simple, safe and decentralized VPN networking solution implemented
+      with the Rust language and Tokio framework.
+    '';
+    mainProgram = "easytier-core";
+    license = lib.licenses.asl20;
+    platforms = with lib.platforms; unix ++ windows;
+    maintainers = with lib.maintainers; [ ltrump ];
+  };
+}