about summary refs log tree commit diff
path: root/pkgs/applications/blockchains/wasabibackend/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/blockchains/wasabibackend/default.nix')
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix94
1 files changed, 22 insertions, 72 deletions
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
index 43deb6f3c6cd9..1239ceaafd84f 100644
--- a/pkgs/applications/blockchains/wasabibackend/default.nix
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -1,95 +1,45 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchurl
-, makeWrapper
-, Nuget
+, buildDotnetModule
 , dotnetCorePackages
-, openssl
+, autoPatchelfHook
 , zlib
+, openssl
 }:
 
-let
-  deps = import ./deps.nix { inherit fetchurl; };
-
-  dotnet-sdk = dotnetCorePackages.sdk_3_1;
-  dotnet-aspnetcore = dotnetCorePackages.aspnetcore_3_1;
-
-  nugetSource = stdenv.mkDerivation {
-    pname = "${pname}-nuget-deps";
-    inherit version;
-
-    dontUnpack = true;
-    dontInstall = true;
-
-    nativeBuildInputs = [ Nuget ];
-
-    buildPhase = ''
-      export HOME=$(mktemp -d)
-      mkdir -p $out/lib
-
-      nuget sources Disable -Name "nuget.org"
-      for package in ${toString deps}; do
-        nuget add $package -Source $out/lib
-      done
-    '';
-  };
-
-  pname = "WasabiBackend";
-  version = "1.1.12";
-
-  projectName = "WalletWasabi.Backend";
-  projectConfiguration = "Release";
-  projectRuntime = "linux-x64";
-in
-
-stdenv.mkDerivation rec {
-  inherit pname version;
+buildDotnetModule rec {
+  pname = "wasabibackend";
+  version = "1.1.13.0";
 
   src = fetchFromGitHub {
     owner = "zkSNACKs";
     repo = "WalletWasabi";
     rev = "v${version}";
-    sha256 = "001k43z2jxvs03csyzndlzlk034aclzc4n8ddrqxykgrq508xk1d";
+    sha256 = "sha256-zDOk8MurT5NXOr4kvm5mnsphY+eDFWuVBcpeTZpcHOo=";
   };
 
-  buildInputs = [
-    Nuget
-    dotnet-sdk
-    makeWrapper
-  ];
+  projectFile = "WalletWasabi.Backend/WalletWasabi.Backend.csproj";
+  nugetDeps = ./deps.nix;
 
-  buildPhase = ''
-    export HOME=$(mktemp -d)
-    export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
-    export DOTNET_ROOT="${dotnet-sdk}/bin"
+  dotnet-sdk = dotnetCorePackages.sdk_3_1;
+  dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
 
-    nuget sources Disable -Name "nuget.org"
+  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = [ stdenv.cc.cc.lib zlib ];
 
-    dotnet restore \
-      --source ${nugetSource}/lib \
-      --runtime ${projectRuntime} \
-      ${projectName}
+  runtimeDeps = [ openssl zlib ];
 
-    dotnet publish \
-      --no-restore \
-      --runtime ${projectRuntime} \
-      --configuration ${projectConfiguration} \
-      ${projectName}
+  preConfigure = ''
+    makeWrapperArgs+=(
+      --run "cd $out/lib/${pname}"
+    )
   '';
 
-  installPhase = ''
-    mkdir -p $out
-    cp -r ${projectName}/bin/${projectConfiguration}/netcoreapp3.1/${projectRuntime}/publish $out/lib
-    mkdir -p $out/bin
-    makeWrapper $out/lib/WalletWasabi.Backend $out/bin/${pname} \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl zlib ]} \
-      --run "cd $out/lib"
+  postInstall = ''
+    mv $out/bin/WalletWasabi.Backend $out/bin/WasabiBackend
   '';
 
-  # If we don't disable stripping the executable fails to start with segfault
-  dontStrip = true;
-
   meta = with lib; {
     description = "Backend for the Wasabi Wallet";
     homepage = "https://wasabiwallet.io/";