diff --git a/pkgs/by-name/li/libopaque/package.nix b/pkgs/by-name/li/libopaque/package.nix new file mode 100644 index 000000000000..81ee5e4174c9 --- /dev/null +++ b/pkgs/by-name/li/libopaque/package.nix @@ -0,0 +1,52 @@ +{ + lib, + stdenv, + fetchFromGitHub, + libsodium, + liboprf, + testers, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libopaque"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "stef"; + repo = "libopaque"; + tag = "v${finalAttrs.version}"; + hash = "sha256-VVD4489yWAJTWLGrpXYe8or5QjDnAuQ9/tzlNJJu/lo="; + }; + + sourceRoot = "${finalAttrs.src.name}/src"; + + strictDeps = true; + + buildInputs = [ + libsodium + liboprf + ]; + + postInstall = '' + mkdir -p ${placeholder "out"}/lib/pkgconfig + cp ../libopaque.pc ${placeholder "out"}/lib/pkgconfig/ + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + passthru = { + tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + updateScript = nix-update-script { }; + }; + + meta = { + description = "Implementation of the OPAQUE protocol with support for threshold variants"; + homepage = "https://github.com/stef/libopaque/"; + changelog = "https://github.com/stef/libopaque/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.lgpl3Plus; + teams = [ lib.teams.ngi ]; + platforms = lib.platforms.unix; + pkgConfigModules = [ "libopaque" ]; + }; +})