summary refs log tree commit diff
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-05-21 16:49:48 +0200
committerGitHub <noreply@github.com>2023-05-21 16:49:48 +0200
commitff37de0c4a697f0750b0a7447c1ce82ba4b4d672 (patch)
treed05185cdbf42eb91a3f217a157622b097935b510
parent4916216d763985cc43b0eeeebe0b64359f0d21c8 (diff)
parent7e50f350d3099403a3a3c00aa362125e1fad3bc6 (diff)
downloadnixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.tar
nixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.tar.gz
nixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.tar.bz2
nixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.tar.lz
nixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.tar.xz
nixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.tar.zst
nixpkgs-ff37de0c4a697f0750b0a7447c1ce82ba4b4d672.zip
Merge pull request #230971 from amarshall/bitwarden-2023.4.0
bitwarden: 2023.3.2 -> 2023.4.0; backport update to build against Node 18
-rw-r--r--pkgs/tools/security/bitwarden/default.nix48
1 files changed, 32 insertions, 16 deletions
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index f638c4bfca8..9a78b698f7a 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -1,8 +1,10 @@
 { lib
+, applyPatches
 , buildNpmPackage
 , dbus
-, electron
+, electron_24
 , fetchFromGitHub
+, fetchpatch
 , glib
 , gnome
 , gtk3
@@ -11,7 +13,7 @@
 , makeDesktopItem
 , makeWrapper
 , moreutils
-, nodejs_16
+, nodejs_18
 , pkg-config
 , python3
 , rustPlatform
@@ -22,23 +24,32 @@ let
   description = "A secure and free password manager for all of your devices";
   icon = "bitwarden";
 
-  buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_16; };
-
-  version = "2023.3.2";
-  src = fetchFromGitHub {
-    owner = "bitwarden";
-    repo = "clients";
-    rev = "desktop-v${version}";
-    sha256 = "sha256-KQDM7XDUA+yRv8y1K//rMCs4J36df42RVsiAXazJeYQ=";
+  buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_18; };
+  electron = electron_24;
+
+  version = "2023.4.0";
+  src = applyPatches {
+    src = fetchFromGitHub {
+      owner = "bitwarden";
+      repo = "clients";
+      rev = "desktop-v${version}";
+      sha256 = "sha256-TTKDl6Py3k+fAy/kcyiMbAAKQdhVnZTyRXV8D/VpKBE=";
+    };
+
+    patches = [
+      # Bump electron to 24 and node to 18
+      (fetchpatch {
+        url = "https://github.com/bitwarden/clients/pull/5205.patch";
+        hash = "sha256-sKSrh8RHXtxGczyZScjTeiGZgTZCQ7f45ULj/j9cp6M=";
+      })
+    ];
   };
 
   desktop-native = rustPlatform.buildRustPackage {
     pname = "bitwarden-desktop-native";
     inherit src version;
-    sourceRoot = "source/apps/desktop/desktop_native";
-    cargoSha256 = "sha256-XsAmVYWPPnY0cgBzpO2aWx/fh85fKr8kMO98cDMzOKk=";
-
-    patchFlags = [ "-p4" ];
+    sourceRoot = "source-patched/apps/desktop/desktop_native";
+    cargoSha256 = "sha256-VW9DmSh9jvqFCZjH1SAYkydSGjXSVEbv4CmtoJBiw5Y=";
 
     nativeBuildInputs = [
       pkg-config
@@ -91,7 +102,7 @@ buildNpmPackage' {
   npmBuildFlags = [
     "--workspace apps/desktop"
   ];
-  npmDepsHash = "sha256-RmkTWhakZstCCMLQ3iJ8KD5Yt5ZafXc8NDgncJMLaxs=";
+  npmDepsHash = "sha256-UXDn09qyM8GwfUiWLDhhyrGFZeKtTRmQArstw+tm5iE=";
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
@@ -103,6 +114,11 @@ buildNpmPackage' {
   ];
 
   preBuild = ''
+    if [[ $(jq --raw-output '.devDependencies.electron' < package.json | grep -E --only-matching '^[0-9]+') != ${lib.escapeShellArg (lib.versions.major electron.version)} ]]; then
+      echo 'ERROR: electron version mismatch'
+      exit 1
+    fi
+
     jq 'del(.scripts.postinstall)' apps/desktop/package.json | sponge apps/desktop/package.json
     jq '.scripts.build = ""' apps/desktop/desktop_native/package.json | sponge apps/desktop/desktop_native/package.json
     cp ${desktop-native}/lib/libdesktop_native.so apps/desktop/desktop_native/desktop_native.linux-x64-musl.node
@@ -111,7 +127,7 @@ buildNpmPackage' {
   postBuild = ''
     pushd apps/desktop
 
-    "$(npm bin)"/electron-builder \
+    npm exec electron-builder -- \
       --dir \
       -c.electronDist=${electron}/lib/electron \
       -c.electronVersion=${electron.version}