about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/networking/shadowsocks-rust
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/networking/shadowsocks-rust')
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix57
1 files changed, 57 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
new file mode 100644
index 000000000000..38fb6a60169b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "shadowsocks-rust";
+  version = "1.18.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "shadowsocks";
+    repo = pname;
+    hash = "sha256-q7XtYOBruEmjPC4gx+hBO5oRwbxL7wQJenBS8Pl6yRk=";
+  };
+
+  cargoHash = "sha256-av4xUjoUGt53UoEpWULv15JKVWZq1x0YXvF5XFf4meQ=";
+
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
+
+  buildInputs = lib.optionals stdenv.isLinux [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security CoreServices ];
+
+  buildFeatures = [
+    "trust-dns"
+    "local-http-native-tls"
+    "local-tunnel"
+    "local-socks4"
+    "local-redir"
+    "local-dns"
+    "local-tun"
+    "aead-cipher-extra"
+    "aead-cipher-2022"
+    "aead-cipher-2022-extra"
+  ];
+
+  # all of these rely on connecting to www.example.com:80
+  checkFlags = [
+    "--skip=http_proxy"
+    "--skip=tcp_tunnel"
+    "--skip=tcprelay"
+    "--skip=udp_tunnel"
+    "--skip=udp_relay"
+    "--skip=socks4_relay_connect"
+    "--skip=socks5_relay_aead"
+    "--skip=socks5_relay_stream"
+    "--skip=trust_dns_resolver"
+  ];
+
+  # timeouts in sandbox
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Rust port of Shadowsocks";
+    homepage = "https://github.com/shadowsocks/shadowsocks-rust";
+    changelog = "https://github.com/shadowsocks/shadowsocks-rust/raw/v${version}/debian/changelog";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}