From 2995a890b54758eea7fb5e78ea8ad6a219fe7a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Tue, 28 Feb 2023 19:10:57 -0800 Subject: [PATCH] bitwarden-cli: build from source --- .../node-packages/main-programs.nix | 1 - .../node-packages/node-packages.json | 1 - pkgs/development/node-packages/overrides.nix | 15 ------ pkgs/tools/security/bitwarden/cli.nix | 47 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 5 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 pkgs/tools/security/bitwarden/cli.nix diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix index 0c94da29c650..132024e58e68 100644 --- a/pkgs/development/node-packages/main-programs.nix +++ b/pkgs/development/node-packages/main-programs.nix @@ -16,7 +16,6 @@ "@antora/cli" = "antora"; "@astrojs/language-server" = "astro-ls"; "@babel/cli" = "babel"; - "@bitwarden/cli" = "bw"; "@commitlint/cli" = "commitlint"; "@forge/cli" = "forge"; "@gitbeaker/cli" = "gitbeaker"; diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json index f9ce16faebca..29494ae3755c 100644 --- a/pkgs/development/node-packages/node-packages.json +++ b/pkgs/development/node-packages/node-packages.json @@ -3,7 +3,6 @@ , "@antfu/ni" , "@astrojs/language-server" , "@babel/cli" -, "@bitwarden/cli" , "@commitlint/cli" , "@commitlint/config-conventional" , "@emacs-eask/cli" diff --git a/pkgs/development/node-packages/overrides.nix b/pkgs/development/node-packages/overrides.nix index 541491fb5b7b..863fb6e46674 100644 --- a/pkgs/development/node-packages/overrides.nix +++ b/pkgs/development/node-packages/overrides.nix @@ -93,21 +93,6 @@ final: prev: { ''; }; - bitwarden-cli = prev."@bitwarden/cli".override { - name = "bitwarden-cli"; - nativeBuildInputs = with pkgs; [ - pkg-config - ] ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.CoreText - ]; - buildInputs = with pkgs; [ - pixman - cairo - pango - giflib - ]; - }; - bower2nix = prev.bower2nix.override { nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ]; postInstall = '' diff --git a/pkgs/tools/security/bitwarden/cli.nix b/pkgs/tools/security/bitwarden/cli.nix new file mode 100644 index 000000000000..715811046d7a --- /dev/null +++ b/pkgs/tools/security/bitwarden/cli.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, buildNpmPackage +, nodejs_18 +, fetchFromGitHub +, python3 +, darwin +}: + +let + buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs_18; }; +in buildNpmPackage' rec { + pname = "bitwarden-cli"; + version = "2023.5.0"; + + src = fetchFromGitHub { + owner = "bitwarden"; + repo = "clients"; + rev = "cli-v${version}"; + hash = "sha256-ELKpGSY4ZbgSk4vJnTiB+IOa8RQU8Ahy3A1mYsKtthU="; + }; + + npmDepsHash = "sha256-G8DEYPjEP3L4s0pr5n2ZTj8kkT0E7Po1BKhZ2hUdJuY="; + + nativeBuildInputs = [ + python3 + ] ++ lib.optionals stdenv.isDarwin [ + darwin.cctools + ]; + + makeCacheWritable = true; + + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + + npmBuildScript = "build:prod"; + + npmWorkspace = "apps/cli"; + + meta = with lib; { + changelog = "https://github.com/bitwarden/clients/releases/tag/${src.rev}"; + description = "A secure and free password manager for all of your devices"; + homepage = "https://bitwarden.com"; + license = lib.licenses.gpl3Only; + mainProgram = "bw"; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a84f1600cef6..7be8d5551578 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3356,7 +3356,7 @@ with pkgs; bitwarden = callPackage ../tools/security/bitwarden { }; - inherit (nodePackages) bitwarden-cli; + bitwarden-cli = callPackage ../tools/security/bitwarden/cli.nix { }; bitwarden-menu = python3Packages.callPackage ../applications/misc/bitwarden-menu { };