summary refs log tree commit diff
path: root/pkgs/tools/security
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/security')
-rw-r--r--pkgs/tools/security/bitwarden_rs/cargo-lock-lettre.patch58
-rw-r--r--pkgs/tools/security/bitwarden_rs/default.nix38
-rw-r--r--pkgs/tools/security/bitwarden_rs/vault.nix4
3 files changed, 27 insertions, 73 deletions
diff --git a/pkgs/tools/security/bitwarden_rs/cargo-lock-lettre.patch b/pkgs/tools/security/bitwarden_rs/cargo-lock-lettre.patch
deleted file mode 100644
index d9f491ca290..00000000000
--- a/pkgs/tools/security/bitwarden_rs/cargo-lock-lettre.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 2e0b695..6d23410 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -114,8 +114,8 @@ dependencies = [
-  "handlebars 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "jsonwebtoken 6.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-  "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lettre 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lettre_email 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lettre 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lettre_email 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-  "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-  "multipart 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1007,13 +1007,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
- 
- [[package]]
- name = "lettre"
--version = "0.9.1"
-+version = "0.9.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
-  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-  "bufstream 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-  "fast_chemail 0.9.6 (registry+https://github.com/rust-lang/crates.io-index)",
-  "hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-  "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1026,14 +1024,12 @@ dependencies = [
- 
- [[package]]
- name = "lettre_email"
--version = "0.9.1"
-+version = "0.9.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- dependencies = [
-  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-  "email 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
-- "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "lettre 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lettre 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-  "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
-  "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-  "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -2858,8 +2854,8 @@ dependencies = [
- "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
- "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
- "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
--"checksum lettre 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "646aee0a55545eaffdf0df1ac19b500b51adb3095ec4dfdc704134e56ea23531"
--"checksum lettre_email 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae1b3d43e4bb7beb9974a359cbb3ea4f93dfba6c1c0c6e9c9f82e538e0f9ab9f"
-+"checksum lettre 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c66afaa5dfadbb81d4e00fd1d1ab057c7cd4c799c5a44e0009386d553587e728"
-+"checksum lettre_email 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bbb68ca999042d965476e47bbdbacd52db0927348b6f8062c44dd04a3b1fd43b"
- "checksum libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)" = "42914d39aad277d9e176efbdad68acb1d5443ab65afe0e0e4f0d49352a950880"
- "checksum libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd6457c70bbff456d9fe49deaba35ec47c3e598bf8d7950ff0575ceb7a8a6ad1"
- "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
diff --git a/pkgs/tools/security/bitwarden_rs/default.nix b/pkgs/tools/security/bitwarden_rs/default.nix
index f04996f1b43..1b262581eb2 100644
--- a/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/pkgs/tools/security/bitwarden_rs/default.nix
@@ -1,31 +1,43 @@
-{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, openssl, Security, CoreServices }:
+{ stdenv, rustPlatform, fetchFromGitHub
+, pkgconfig, openssl
+, Security, CoreServices
+, dbBackend ? "sqlite", libmysqlclient, postgresql }:
 
-rustPlatform.buildRustPackage rec {
+let
+  featuresFlag = "--features ${dbBackend}";
+
+in rustPlatform.buildRustPackage rec {
   pname = "bitwarden_rs";
-  version = "1.9.1";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "0jfb4b2lp2v01aw615lx0qj1qh73hyrbjn9kva7zqp74wcfw12gp";
+    sha256 = "0af8cnpx86a096m59wmszcfyrfgf7adlqr39phbg647mgjfzwcrk";
   };
 
-  cargoPatches = [
-    # type annotations required: cannot resolve `std::string::String: std::convert::AsRef<_>`
-    ./cargo-lock-lettre.patch
-  ];
-
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security CoreServices ];
+  buildInputs = with stdenv.lib; [ openssl ]
+    ++ optionals stdenv.isDarwin [ Security CoreServices ]
+    ++ optional (dbBackend == "mysql") libmysqlclient
+    ++ optional (dbBackend == "postgresql") postgresql;
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "0p39gqrqdmgqhngp1qyh6jl0sp0ifj5n3bxfqafjbspb4zph3ls4";
+  cargoSha256 = "1v6n4aqhd5pyvvhlzhpmq7ykclfxw82wn2bg7n49b53d9p72jwq6";
+  cargoBuildFlags = [ featuresFlag ];
+
+  checkPhase = ''
+    runHook preCheck
+    echo "Running cargo cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
+    cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+    runHook postCheck
+  '';
 
   meta = with stdenv.lib; {
-    description = "An unofficial lightweight implementation of the Bitwarden server API using Rust and SQLite";
-    homepage = https://github.com/dani-garcia/bitwarden_rs;
+    description = "Unofficial Bitwarden compatible server written in Rust";
+    homepage = "https://github.com/dani-garcia/bitwarden_rs";
     license = licenses.gpl3;
     maintainers = with maintainers; [ msteen ];
     platforms = platforms.all;
diff --git a/pkgs/tools/security/bitwarden_rs/vault.nix b/pkgs/tools/security/bitwarden_rs/vault.nix
index 51dde99bcf1..9cbf067d40b 100644
--- a/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/pkgs/tools/security/bitwarden_rs/vault.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden_rs-vault";
-  version = "2.12.0";
+  version = "2.12.0b";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "064dxfplqn67grpx03ryzshwmr7s00w4mll0hk0anddviwvd8r1n";
+    sha256 = "01jwyhcam9kh8lpxfgzzw7r3nn9sn6jbgmd78a7h8r50z5hy04g5";
   };
 
   buildCommand = ''