diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 73acfdbe4d3f..281368ab7a5d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7029,6 +7029,13 @@ name = "Duncan Dean"; keys = [ { fingerprint = "9484 44FC E03B 05BA 5AB0 591E C37B 1C1D 44C7 86EE"; } ]; }; + dustyhorizon = { + name = "Kenneth Tan"; + email = "i.am@kennethtan.xyz"; + github = "dustyhorizon"; + githubId = 4987132; + keys = [ { fingerprint = "1021 2207 286B F15B 0CF1 C5EA D70C C9F5 CEF4 EEB8"; } ]; + }; DutchGerman = { name = "Stefan Visser"; email = "stefan.visser@apm-ecampus.de"; diff --git a/pkgs/by-name/li/lightway/package.nix b/pkgs/by-name/li/lightway/package.nix new file mode 100644 index 000000000000..051d056855e6 --- /dev/null +++ b/pkgs/by-name/li/lightway/package.nix @@ -0,0 +1,59 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libtool, + rustPlatform, +}: + +rustPlatform.buildRustPackage { + pname = "lightway"; + version = "0-unstable-2025-09-04"; + + src = fetchFromGitHub { + owner = "expressvpn"; + repo = "lightway"; + rev = "4eb836158607c83d47226703de5a043519586782"; + hash = "sha256-sNhTdJTxNxHMVswyzizgBfGbmJhYmMZY/5nVD7ScLjM="; + }; + + cargoHash = "sha256-3/6yEyGntyxxCqrMy2M9dtV2pWiD4M0Rtnb52I4n9nU="; + cargoDepsName = "lightway"; + + cargoBuildFlags = lib.cli.toGNUCommandLine { } { + package = [ + "lightway-client" + "lightway-server" + ]; + + features = lib.optionals stdenv.hostPlatform.isLinux [ + "io-uring" + ]; + }; + + # Some tests rely on debug_assert! and fail in release. + # https://github.com/expressvpn/lightway/issues/274 + checkType = "debug"; + + # For wolfSSL. + nativeBuildInputs = [ + autoconf + automake + libtool + rustPlatform.bindgenHook + ]; + + meta = { + description = "A modern VPN protocol in Rust"; + homepage = "https://expressvpn.com/lightway"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ + dustyhorizon + usertam + ]; + platforms = with lib.platforms; darwin ++ linux; + mainProgram = "lightway-client"; + }; +}