summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorRandy Eckenrode <randy@largeandhighquality.com>2021-11-22 22:53:10 -0500
committerRandy Eckenrode <randy@largeandhighquality.com>2021-11-29 19:20:10 -0500
commitbe7f8fae432ab5cd7ad819121eba50ed6aaf86f9 (patch)
tree15d92e107f49a8cb4f85a60cff10d618a6d1d96c /pkgs/misc
parentb7caba7f59149b238857957f76708485700d9e9f (diff)
downloadnixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.tar
nixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.tar.gz
nixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.tar.bz2
nixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.tar.lz
nixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.tar.xz
nixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.tar.zst
nixpkgs-be7f8fae432ab5cd7ad819121eba50ed6aaf86f9.zip
ms-dotnettools-csharp: Add Darwin support
- Add support for x86_64-darwin; and
- Include the debugger for aarch64-darwin (running under Rosetta 2).
Diffstat (limited to 'pkgs/misc')
-rwxr-xr-xpkgs/misc/vscode-extensions/_maintainers/update-bin-srcs-lib.sh8
-rw-r--r--pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix22
-rw-r--r--pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json58
3 files changed, 82 insertions, 6 deletions
diff --git a/pkgs/misc/vscode-extensions/_maintainers/update-bin-srcs-lib.sh b/pkgs/misc/vscode-extensions/_maintainers/update-bin-srcs-lib.sh
index f3058755d6a..e3d1e5fb139 100755
--- a/pkgs/misc/vscode-extensions/_maintainers/update-bin-srcs-lib.sh
+++ b/pkgs/misc/vscode-extensions/_maintainers/update-bin-srcs-lib.sh
@@ -105,11 +105,15 @@ formatExtRuntimeDeps() {
   jsonStorePath="$(echo "$jsonShaWStorePath" | tail -n1)"
   1>&2 echo "jsonStorePath='$jsonStorePath'"
 
+  # Assume packages without an architectures are for x86_64 and remap arm64 to aarch64.
   declare jqQuery
   jqQuery=$(cat <<'EOF'
 .runtimeDependencies
-| map(select(.platforms[] | in({"linux": null})))
-| map(select(.architectures[] | in({"x86_64": null})))
+| map(select(.platforms[] | in({"linux": null, "darwin": null})))
+| map(select(.architectures == null).architectures |= ["x86_64"])
+| map(del(.architectures[] | select(. | in({"x86_64": null, "arm64": null}) | not)))
+| map((.architectures[] | select(. == "arm64")) |= "aarch64")
+| map(select(.architectures != []))
 | .[] | {
   (.id + "__" + (.architectures[0]) + "-" + (.platforms[0])):
     {installPath, binaries, urls: [.url, .fallbackUrl] | map(select(. != null))}
diff --git a/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix b/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
index 393ea0f4450..ea5388ed470 100644
--- a/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
+++ b/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
@@ -38,7 +38,13 @@ let
     rtDepsBinSrcs."${bSrcName}__${stdenv.targetPlatform.system}";
 
   omnisharp = rtDepBinSrcByName "OmniSharp";
-  vsdbg = rtDepBinSrcByName "Debugger";
+  vsdbgs = [
+    (rtDepBinSrcByName "Debugger")
+  ] ++ lib.optionals (stdenv.isDarwin) [
+  # Include the aarch64-darwin debugger binaries on x86_64-darwin.  Even though OmniSharp will be
+  # running under Rosetta 2, debugging will fail to start if both sets of binaries are not present.
+    (rtDepsBinSrcs."Debugger__aarch64-darwin")
+  ];
   razor = rtDepBinSrcByName "Razor";
 in
 
@@ -112,20 +118,28 @@ vscode-utils.buildVscodeMarketplaceExtension {
     chmod a+x "$omnisharp_dir/run"
     touch "$omnisharp_dir/install.Lock"
 
+  '' + builtins.concatStringsSep "\n" (map (vsdbg: ''
     declare vsdbg_dir="$PWD/${vsdbg.installPath}"
     unzip_to "${vsdbg.bin-src}" "$vsdbg_dir"
     chmod a+x "$vsdbg_dir/vsdbg-ui"
     chmod a+x "$vsdbg_dir/vsdbg"
     touch "$vsdbg_dir/install.complete"
     touch "$vsdbg_dir/install.Lock"
-    patchelf_common "$vsdbg_dir/vsdbg"
-    patchelf_common "$vsdbg_dir/vsdbg-ui"
 
+  '') vsdbgs) + ''
     declare razor_dir="$PWD/${razor.installPath}"
     unzip_to "${razor.bin-src}" "$razor_dir"
     chmod a+x "$razor_dir/rzls"
     touch "$razor_dir/install.Lock"
+
+  '' + lib.optionalString stdenv.isLinux ''
+    patchelf_common "$vsdbg_dir/vsdbg"
+    patchelf_common "$vsdbg_dir/vsdbg-ui"
     patchelf_common "$razor_dir/rzls"
+
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace $omnisharp_dir/etc/config \
+      --replace "libmono-native-compat.dylib" "libmono-native.dylib"
   '';
 
   meta = with lib; {
@@ -133,6 +147,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
     homepage = "https://github.com/OmniSharp/omnisharp-vscode";
     license = licenses.mit;
     maintainers = [ maintainers.jraygauthier ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json b/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
index 8f90fda228c..bf8a6c3433e 100644
--- a/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
+++ b/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/rt-deps-bin-srcs.json
@@ -1,4 +1,16 @@
 {
+  "OmniSharp__x86_64-darwin": {
+    "installPath": ".omnisharp/1.37.15",
+    "binaries": [
+      "./mono.osx",
+      "./run"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/4fbf71ce-5375-4ca9-b70d-8024ba1b9e0a/bc6ac844afef87eedaab5191f11dc374/omnisharp-osx-1.37.15.zip",
+      "https://roslynomnisharp.blob.core.windows.net/releases/1.37.15/omnisharp-osx-1.37.15.zip"
+    ],
+    "sha256": "03n3x70ml2xjm7ns58giv5kn2h4y689iyjzz4mw5vcnil5fwq8ng"
+  },
   "OmniSharp__x86_64-linux": {
     "installPath": ".omnisharp/1.37.15",
     "binaries": [
@@ -11,6 +23,42 @@
     ],
     "sha256": "0pchywkxy8niq0i6gq2r43cmf58blfhhj8w8zyibf0m9h09h165s"
   },
+  "Debugger__x86_64-darwin": {
+    "installPath": ".debugger/x86_64",
+    "binaries": [
+      "./vsdbg-ui",
+      "./vsdbg"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/c1122f7141735472d9583c1124024c55/coreclr-debug-osx-x64.zip",
+      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-osx-x64.zip"
+    ],
+    "sha256": "08z3k0h25gdsbmlxwayd94672hp2z7zmwdmd0nyr9j82izj3ci2m"
+  },
+  "Debugger__aarch64-darwin": {
+    "installPath": ".debugger/arm64",
+    "binaries": [
+      "./vsdbg-ui",
+      "./vsdbg"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/96a88189c7904a517f3bb59b2dba8bd1/coreclr-debug-osx-arm64.zip",
+      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-osx-arm64.zip"
+    ],
+    "sha256": "113kz02ihvb4y5fj01wamqz2jsql2q7n7f55s9kzs9dsrmq5ffa0"
+  },
+  "Debugger__aarch64-linux": {
+    "installPath": ".debugger",
+    "binaries": [
+      "./vsdbg-ui",
+      "./vsdbg"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/7a723bfbda6d196c52084226b6835b36/coreclr-debug-linux-arm64.zip",
+      "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-linux-arm64.zip"
+    ],
+    "sha256": "1d4a5q3f7qfk3jq2i4f6g50i9i4z8z7g8ss083y9n5c1yj3629kw"
+  },
   "Debugger__x86_64-linux": {
     "installPath": ".debugger",
     "binaries": [
@@ -32,5 +80,15 @@
       "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/b846e9c7d7afdba54a72fae1dcb6c42c/razorlanguageserver-linux-x64-6.0.0-preview.5.21358.6.zip"
     ],
     "sha256": "0gb36nlb7fgcv03a0awna1qyrsky6ys5gkpsmvxc5j35f1yq337b"
+  },
+  "Razor__x86_64-darwin": {
+    "installPath": ".razor",
+    "binaries": [
+      "./rzls"
+    ],
+    "urls": [
+      "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/ad846449769eb2ae810d0236823a6aaa/razorlanguageserver-osx-x64-6.0.0-preview.5.21358.6.zip"
+    ],
+    "sha256": "0iqinpwwlqwajdq4i1qbb9hfpfmgy17av95bpw02ad2f9fnyh572"
   }
 }