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:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user