base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / networking / rosenpass / default.nix
blob254a6b3aa8e877398758cad509727c07e35fd4bb
1 { lib
2 , fetchFromGitHub
3 , nixosTests
4 , rustPlatform
5 , stdenv
6 , installShellFiles
7 , cmake
8 , libsodium
9 , pkg-config
11 rustPlatform.buildRustPackage rec {
12   pname = "rosenpass";
13   version = "0.2.2";
15   src = fetchFromGitHub {
16     owner = pname;
17     repo = pname;
18     rev = "v${version}";
19     hash = "sha256-fQIeKGyTkFWUV9M1o256G4U1Os5OlVsRZu+5olEkbD4=";
20   };
22   cargoHash = "sha256-GyeJCIE60JuZa/NuixDc3gTj9WAOpSReIyVxQqM4tDQ=";
24   nativeBuildInputs = [
25     cmake # for oqs build in the oqs-sys crate
26     pkg-config
27     rustPlatform.bindgenHook # for C-bindings in the crypto libs
28     installShellFiles
29   ];
31   buildInputs = [ libsodium ];
33   # nix defaults to building for aarch64 _without_ the armv8-a
34   # crypto extensions, but liboqs depends on these
35   preBuild = lib.optionalString stdenv.hostPlatform.isAarch64 ''
36     NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -march=armv8-a+crypto"
37   '';
39   postInstall = ''
40     installManPage doc/rosenpass.1
41   '';
43   passthru.tests.rosenpass = nixosTests.rosenpass;
45   meta = with lib; {
46     description = "Build post-quantum-secure VPNs with WireGuard";
47     homepage = "https://rosenpass.eu/";
48     license = with licenses; [ mit /* or */ asl20 ];
49     maintainers = with maintainers; [ wucke13 ];
50     platforms = [ "aarch64-darwin" "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
51     mainProgram = "rosenpass";
52   };