From a48b87fda4291818e46f77b709d0f760fb6e9419 Mon Sep 17 00:00:00 2001
From: Eric Dallo <ericdallo06@hotmail.com>
Date: Fri, 19 Mar 2021 10:31:03 -0300
Subject: [PATCH] omnisharp-roslyn: fix outdated built-in msbuild for unity
 (#98435)

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
---
 .../tools/omnisharp-roslyn/default.nix         | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix
index ac5ab022ef12..5ed83c541168 100644
--- a/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -1,7 +1,10 @@
 { lib, stdenv
 , fetchurl
-, mono5
+, mono6
+, msbuild
+, dotnet-sdk
 , makeWrapper
+, dotnetPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "0pknphydf194n7rjyax4mh8n7j8679j0jflw63gfgh37daxry0r2";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper dotnet-sdk dotnetPackages.Nuget ];
 
   preUnpack = ''
     mkdir src
@@ -26,8 +29,13 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cd ..
     cp -r src $out/
-    ls -al $out/src
-    makeWrapper ${mono5}/bin/mono $out/bin/omnisharp \
+    rm -r $out/src/.msbuild
+    cp -r ${msbuild}/lib/mono/msbuild $out/src/.msbuild
+
+    chmod -R u+w $out/src
+    mv $out/src/.msbuild/Current/{bin,Bin}
+
+    makeWrapper ${mono6}/bin/mono $out/bin/omnisharp \
     --add-flags "$out/src/OmniSharp.exe"
   '';
 
@@ -36,7 +44,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/OmniSharp/omnisharp-roslyn";
     platforms = platforms.linux;
     license = licenses.mit;
-    maintainers = with maintainers; [ tesq0 ];
+    maintainers = with maintainers; [ tesq0 ericdallo ];
   };
 
 }