{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, libiconv }: rustPlatform.buildRustPackage rec { pname = "shadowsocks-rust"; version = "1.11.2"; src = fetchFromGitHub { rev = "v${version}"; owner = "shadowsocks"; repo = pname; sha256 = "0ry3zfwxs5j243jpbp5ymnz14ycyk6gpgb50lcazhn1yy52p8wac"; }; cargoSha256 = "1hvrp3zf5h33j6fgqyzn2jvjbyi8c8pyqwrj5wg3lw38h0z5rvaj"; RUSTC_BOOTSTRAP = 1; buildInputs = lib.optionals stdenv.isDarwin [ CoreServices libiconv ]; # all of these rely on connecting to www.example.com:80 checkFlags = [ "--skip=http_proxy" "--skip=tcp_tunnel" "--skip=udp_tunnel" "--skip=udp_relay" "--skip=socks4_relay_connect" "--skip=socks5_relay_aead" "--skip=socks5_relay_stream" ]; meta = with lib; { homepage = "https://github.com/shadowsocks/shadowsocks-rust"; description = "A Rust port of shadowsocks"; license = licenses.mit; maintainers = [ maintainers.marsam ]; }; }