Merge pull request #230971 from amarshall/bitwarden-2023.4.0

bitwarden: 2023.3.2 -> 2023.4.0; backport update to build against Node 18
This commit is contained in:
Sandro
2023-05-21 16:49:48 +02:00
committed by GitHub
+31 -15
View File
@@ -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; };
buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_18; };
electron = electron_24;
version = "2023.3.2";
src = fetchFromGitHub {
owner = "bitwarden";
repo = "clients";
rev = "desktop-v${version}";
sha256 = "sha256-KQDM7XDUA+yRv8y1K//rMCs4J36df42RVsiAXazJeYQ=";
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}