vaultwarden.webvault: build from source

This commit is contained in:
Robert Schütz 2023-02-15 20:02:50 -08:00
parent 545c7a31e5
commit c6e2fbf1a2

View File

@ -1,19 +1,61 @@
{ lib, stdenv, fetchurl, nixosTests }:
{ lib
, buildNpmPackage
, fetchFromGitHub
, git
, nixosTests
, nodejs-16_x
, python3
}:
let
buildNpmPackage' = buildNpmPackage.override { nodejs = nodejs-16_x; };
stdenv.mkDerivation rec {
pname = "vaultwarden-webvault";
version = "2022.12.0";
src = fetchurl {
url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
hash = "sha256-QC3/aqIF2NdJPHmwUbvJR62wsUGBrgsHJCyqBJ/0gMc=";
bw_web_builds = fetchFromGitHub {
owner = "dani-garcia";
repo = "bw_web_builds";
rev = "v${version}";
hash = "sha256-4yUE0ySUCKmmbca+T8qjqSO0AHZEUAHZ4nheRjpDnZo=";
};
in buildNpmPackage' {
pname = "vaultwarden-webvault";
inherit version;
src = fetchFromGitHub {
owner = "bitwarden";
repo = "clients";
rev = "web-v${version}";
hash = "sha256-CsbnnP12P7JuGDOm5Ia73SzET/jCx3qRbz9vdUf7lCA=";
};
buildCommand = ''
mkdir -p $out/share/vaultwarden/
cd $out/share/vaultwarden/
tar xf $src
mv web-vault vault
npmDepsHash = "sha256-wWOtVGNOzY2s82nfQDuWgA4ukpJxJr8Z7Y+rFPq2QdU=";
postPatch = ''
ln -s ${bw_web_builds}/{patches,resources} ..
PATH="${git}/bin:$PATH" VAULT_VERSION=${bw_web_builds.rev} \
bash ${bw_web_builds}/scripts/apply_patches.sh
'';
nativeBuildInputs = [
python3
];
makeCacheWritable = true;
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
npmBuildScript = "dist:oss:selfhost";
npmBuildFlags = [
"--workspace" "apps/web"
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/vaultwarden
mv apps/web/build $out/share/vaultwarden/vault
runHook postInstall
'';
passthru.tests = nixosTests.vaultwarden;
@ -23,6 +65,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/dani-garcia/bw_web_builds";
platforms = platforms.all;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ msteen mic92 ];
maintainers = with maintainers; [ dotlambda msteen mic92 ];
};
}