Unverified Commit ff37de0c authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

Merge pull request #230971 from amarshall/bitwarden-2023.4.0

bitwarden: 2023.3.2 -> 2023.4.0; backport update to build against Node 18
parents 4916216d 7e50f350
Loading
Loading
Loading
Loading
+32 −16
Original line number Diff line number Diff line
{ 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; };
  buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_18; };
  electron = electron_24;

  version = "2023.3.2";
  version = "2023.4.0";
  src = applyPatches {
    src = fetchFromGitHub {
      owner = "bitwarden";
      repo = "clients";
      rev = "desktop-v${version}";
    sha256 = "sha256-KQDM7XDUA+yRv8y1K//rMCs4J36df42RVsiAXazJeYQ=";
      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}