diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/nosql/eventstore/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/nosql/eventstore/default.nix | 103 |
1 files changed, 52 insertions, 51 deletions
diff --git a/nixpkgs/pkgs/servers/nosql/eventstore/default.nix b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix index 035d906b2bdb..60a69d200049 100644 --- a/nixpkgs/pkgs/servers/nosql/eventstore/default.nix +++ b/nixpkgs/pkgs/servers/nosql/eventstore/default.nix @@ -1,80 +1,81 @@ -{ lib, stdenv -, fetchFromGitHub -, fetchurl -, makeWrapper +{ lib +, git , dotnetCorePackages +, glibcLocales +, buildDotnetModule +, fetchFromGitHub +, bintools +, stdenv , mono -, Nuget }: -let - - dotnet-sdk = dotnetCorePackages.sdk_5_0; - - deps = import ./deps.nix { inherit fetchurl; }; - -in - -stdenv.mkDerivation rec { - +buildDotnetModule rec { pname = "EventStore"; - version = "5.0.8"; + version = "21.10.5"; src = fetchFromGitHub { owner = "EventStore"; repo = "EventStore"; rev = "oss-v${version}"; - sha256 = "021m610gzmrp2drywl1q3y6xxpy4qayn580d855ag952z9s6w9nj"; + sha256 = "sha256-uUDjTGCiQgXmvOUsujIA0JkGQGuw9U4zLKDP1WIFq1o="; + leaveDotGit = true; }; - buildInputs = [ - makeWrapper - dotnet-sdk - mono - Nuget - ]; + # Fixes application reporting 0.0.0.0 as its version. + MINVERVERSIONOVERRIDE = version; - # that dependency seems to not be required for building, but pulls in libcurl which fails to be located. - # see: https://github.com/EventStore/EventStore/issues/1897 - patchPhase = '' - for f in $(find . -iname "*.csproj"); do - sed -i '/Include="Microsoft.SourceLink.GitHub"/d' $f - done - ''; + dotnet-sdk = dotnetCorePackages.sdk_5_0; + dotnet-runtime = dotnetCorePackages.aspnetcore_5_0; + + nativeBuildInputs = [ git glibcLocales bintools ]; - buildPhase = '' - export FrameworkPathOverride=${mono}/lib/mono/4.7.1-api + runtimeDeps = [ mono ]; + + nugetBinariesToPatch = lib.optionals stdenv.isLinux [ + "grpc.tools/2.39.1/tools/linux_x64/protoc" + "grpc.tools/2.39.1/tools/linux_x64/grpc_csharp_plugin" + ]; - # disable default-source so nuget does not try to download from online-repo - nuget sources Disable -Name "nuget.org" - # add all dependencies to a source called 'nixos' - for package in ${toString deps}; do - nuget add $package -Source nixos + postConfigure = '' + # Fixes execution of native protoc binaries during build + for binary in $nugetBinariesToPatch; do + path="$HOME/.nuget/packages/$binary" + patchelf --set-interpreter "$(cat $NIX_BINTOOLS/nix-support/dynamic-linker)" $path done - dotnet restore --source nixos src/EventStore.sln - dotnet build --no-restore -c Release src/EventStore.sln + # Fixes git execution by GitInfo on mac os + substituteInPlace "$HOME/.nuget/packages/gitinfo/2.0.26/build/GitInfo.targets" \ + --replace "<GitExe Condition=\"Exists('/usr/bin/git')\">/usr/bin/git</GitExe>" " " \ + --replace "<GitExe Condition=\"Exists('/usr/local/bin/git')\">/usr/local/bin/git</GitExe>" "" ''; - installPhase = '' - mkdir -p $out/{bin,lib/eventstore} - cp -r bin/Release/* $out/lib/eventstore - makeWrapper "${mono}/bin/mono" $out/bin/eventstored \ - --add-flags "$out/lib/eventstore/EventStore.ClusterNode/net471/EventStore.ClusterNode.exe" - ''; + nugetDeps = ./deps.nix; + + projectFile = "src/EventStore.ClusterNode/EventStore.ClusterNode.csproj"; doCheck = true; + testProjectFile = "src/EventStore.Projections.Core.Tests/EventStore.Projections.Core.Tests.csproj"; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/EventStore.ClusterNode --insecure \ + --db "$HOME/data" \ + --index "$HOME/index" \ + --log "$HOME/log" \ + -runprojections all --startstandardprojections \ + --EnableAtomPubOverHttp & - checkPhase = '' - dotnet test src/EventStore.Projections.Core.Tests/EventStore.Projections.Core.Tests.csproj -- RunConfiguration.TargetPlatform=x64 + PID=$! + + sleep 30s; + kill "$PID"; ''; - meta = { + meta = with lib; { homepage = "https://geteventstore.com/"; description = "Event sourcing database with processing logic in JavaScript"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ puffnfresh ]; + license = licenses.bsd3; + maintainers = with maintainers; [ puffnfresh mdarocha ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; }; - } |