From dc1b56c714095d787f52c45c83723944dfeef779 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 1 Jul 2021 12:14:51 +0300 Subject: vaultwarden: update to 1.22.1, rename from bitwarden_rs I tried to make this as non-breaking as possible, but it will still break things slightly for people expecting certain file names in the packages themselves. --- pkgs/tools/security/vaultwarden/default.nix | 47 +++++++++++++++++++++++++++++ pkgs/tools/security/vaultwarden/vault.nix | 28 +++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 pkgs/tools/security/vaultwarden/default.nix create mode 100644 pkgs/tools/security/vaultwarden/vault.nix (limited to 'pkgs/tools/security/vaultwarden') diff --git a/pkgs/tools/security/vaultwarden/default.nix b/pkgs/tools/security/vaultwarden/default.nix new file mode 100644 index 0000000000000..4342c8f3ac955 --- /dev/null +++ b/pkgs/tools/security/vaultwarden/default.nix @@ -0,0 +1,47 @@ +{ lib, stdenv, rustPlatform, fetchFromGitHub, fetchurl, nixosTests +, pkg-config, openssl +, libiconv, Security, CoreServices +, dbBackend ? "sqlite", libmysqlclient, postgresql }: + +let + featuresFlag = "--features ${dbBackend}"; + +in rustPlatform.buildRustPackage rec { + pname = "vaultwarden"; + version = "1.22.1"; + + src = fetchFromGitHub { + owner = "dani-garcia"; + repo = pname; + rev = version; + sha256 = "sha256-aXbnNO3mTAgE1yNx7YVDo1vPpO8ACZpBGHQ633fNZ3k="; + }; + + cargoSha256 = "sha256-SFzq3OU0a0s3zlEzUkqGdZb/knYafqDamLy4ghH4i8I="; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = with lib; [ openssl ] + ++ optionals stdenv.isDarwin [ libiconv Security CoreServices ] + ++ optional (dbBackend == "mysql") libmysqlclient + ++ optional (dbBackend == "postgresql") postgresql; + + RUSTC_BOOTSTRAP = 1; + + cargoBuildFlags = [ featuresFlag ]; + + checkPhase = '' + runHook preCheck + echo "Running cargo cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}" + cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"} + runHook postCheck + ''; + + passthru.tests = nixosTests.vaultwarden; + + meta = with lib; { + description = "Unofficial Bitwarden compatible server written in Rust"; + homepage = "https://github.com/dani-garcia/vaultwarden"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ msteen ]; + }; +} diff --git a/pkgs/tools/security/vaultwarden/vault.nix b/pkgs/tools/security/vaultwarden/vault.nix new file mode 100644 index 0000000000000..49e7cc4f3ba13 --- /dev/null +++ b/pkgs/tools/security/vaultwarden/vault.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchurl, nixosTests }: + +stdenv.mkDerivation rec { + pname = "vaultwarden-vault"; + version = "2.19.0"; + + src = fetchurl { + url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz"; + sha256 = "sha256:0yrk2b2d5sld4z60siacafdz95gqikcv4snzd6hwhq1l6kz151az"; + }; + + buildCommand = '' + mkdir -p $out/share/vaultwarden/ + cd $out/share/vaultwarden/ + tar xf $src + mv web-vault vault + ''; + + passthru.tests = nixosTests.vaultwarden; + + meta = with lib; { + description = "Integrates the web vault into vaultwarden"; + homepage = "https://github.com/dani-garcia/bw_web_builds"; + platforms = platforms.all; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ msteen mic92 ]; + }; +} -- cgit 1.4.1