diff --git a/pkgs/tools/security/arti/default.nix b/pkgs/tools/security/arti/default.nix new file mode 100644 index 000000000000..2c3861d60bad --- /dev/null +++ b/pkgs/tools/security/arti/default.nix @@ -0,0 +1,43 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitLab +, pkg-config +, sqlite +, openssl +, CoreServices +}: + +rustPlatform.buildRustPackage rec { + pname = "arti"; + version = "0.5.0"; + + src = fetchFromGitLab { + domain = "gitlab.torproject.org"; + group = "tpo"; + owner = "core"; + repo = "arti"; + rev = "arti-v${version}"; + sha256 = "sha256-xze8Frxy9Rv01yz0L8GkEaXUoLlpODv3pEat1HnDIOs="; + }; + + cargoSha256 = "sha256-yCQLSLxEziDQGDNtP7pmXlTImSKzr/O/5sITMHVJg8E="; + + nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ]; + + buildInputs = [ sqlite ] + ++ lib.optionals stdenv.isLinux [ openssl ] + ++ lib.optionals stdenv.isDarwin [ CoreServices ]; + + cargoBuildFlags = [ "--package" "arti" ]; + + cargoTestFlags = [ "--package" "arti" ]; + + meta = with lib; { + description = "An implementation of Tor in Rust"; + homepage = "https://gitlab.torproject.org/tpo/core/arti"; + changelog = "https://gitlab.torproject.org/tpo/core/arti/-/raw/${src.rev}/CHANGELOG.md"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ marsam ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b92088d7056d..a475cee96b9a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -257,6 +257,10 @@ with pkgs; activate-linux = callPackage ../applications/misc/activate-linux { }; + arti = callPackage ../tools/security/arti { + inherit (darwin.apple_sdk.frameworks) CoreServices; + }; + authy = callPackage ../applications/misc/authy { }; authz0 = callPackage ../tools/security/authz0 { };