Loading pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix +69 −8 Original line number Diff line number Diff line Loading @@ -7,7 +7,10 @@ openssl, libz, glibc, libkrb5, coreutils, jq, patchelf, }: let extInfo = ( Loading Loading @@ -40,16 +43,18 @@ vscode-utils.buildVscodeMarketplaceExtension { inherit (extInfo) hash arch; }; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ]; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook jq patchelf ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ (lib.getLib stdenv.cc.cc) # libstdc++.so.6 (lib.getLib glibc) # libgcc_s.so.1 (lib.getLib libz) # libz.so.1 ]; runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [ (lib.getLib openssl) # libopenssl.so.3 (lib.getLib icu) # libicui18n.so libicuuc.so (lib.getLib libkrb5) # libgssapi_krb5.so (lib.getLib libz) # libz.so.1 (lib.getLib openssl) # libopenssl.so.3 (lib.getLib stdenv.cc.cc) # libstdc++.so.6 ]; postPatch = '' Loading @@ -59,17 +64,73 @@ vscode-utils.buildVscodeMarketplaceExtension { preFixup = '' ( set -euo pipefail shopt -s globstar shopt -s dotglob # Fix all binaries. for file in "$out"/**/*; do if [[ ! -f "$file" || "$file" == *.so || "$file" == *.dylib ]] || if [[ ! -f "$file" || "$file" == *.so || "$file" == *.a || "$file" == *.dylib ]] || (! isELF "$file" && ! isMachO "$file"); then continue fi echo Making "$file" executable... chmod +x "$file" ${lib.optionalString stdenv.hostPlatform.isLinux '' # Add .NET deps if it is an apphost. if grep 'You must install .NET to run this application.' "$file" > /dev/null; then echo "Adding .NET needed libraries to: $file" patchelf \ --add-needed libicui18n.so \ --add-needed libicuuc.so \ --add-needed libgssapi_krb5.so \ --add-needed libssl.so \ "$file" fi ''} done ${lib.optionalString stdenv.hostPlatform.isLinux '' # Add the ICU libraries as needed to the globalization DLLs. for file in "$out"/**/{libcoreclr.so,*System.Globalization.Native.so}; do echo "Adding ICU libraries to: $file" patchelf \ --add-needed libicui18n.so \ --add-needed libicuuc.so \ "$file" done # Add the Kerberos libraries as needed to the native security DLL. for file in "$out"/**/*System.Net.Security.Native.so; do echo "Adding Kerberos libraries to: $file" patchelf \ --add-needed libgssapi_krb5.so \ "$file" done # Add the OpenSSL libraries as needed to the OpenSSL native security DLL. for file in "$out"/**/*System.Security.Cryptography.Native.OpenSsl.so; do echo "Adding OpenSSL libraries to: $file" patchelf \ --add-needed libssl.so \ "$file" done # Add the needed binaries to the apphost binaries. for file in $(jq -r '.runtimeDependencies | map(select(.binaries != null) | .installPath + "/" + .binaries[]) | sort | unique | map(sub("/\\./"; "/")) | .[]' < "$out"/share/vscode/extensions/ms-dotnettools.csharp/package.json); do [ -f "$out"/share/vscode/extensions/ms-dotnettools.csharp/"$file" ] || continue echo "Adding .NET needed libraries to: $out/share/vscode/extensions/ms-dotnettools.csharp/$file" patchelf \ --add-needed libicui18n.so \ --add-needed libicuuc.so \ --add-needed libgssapi_krb5.so \ --add-needed libssl.so \ "$out"/share/vscode/extensions/ms-dotnettools.csharp/"$file" done ''} ) ''; Loading @@ -78,7 +139,7 @@ vscode-utils.buildVscodeMarketplaceExtension { meta = { description = "Official C# support for Visual Studio Code"; homepage = "https://github.com/dotnet/vscode-csharp"; license = lib.licenses.mit; license = lib.licenses.unfree; maintainers = with lib.maintainers; [ ggg ]; platforms = [ "x86_64-linux" Loading Loading
pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix +69 −8 Original line number Diff line number Diff line Loading @@ -7,7 +7,10 @@ openssl, libz, glibc, libkrb5, coreutils, jq, patchelf, }: let extInfo = ( Loading Loading @@ -40,16 +43,18 @@ vscode-utils.buildVscodeMarketplaceExtension { inherit (extInfo) hash arch; }; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ]; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook jq patchelf ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ (lib.getLib stdenv.cc.cc) # libstdc++.so.6 (lib.getLib glibc) # libgcc_s.so.1 (lib.getLib libz) # libz.so.1 ]; runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [ (lib.getLib openssl) # libopenssl.so.3 (lib.getLib icu) # libicui18n.so libicuuc.so (lib.getLib libkrb5) # libgssapi_krb5.so (lib.getLib libz) # libz.so.1 (lib.getLib openssl) # libopenssl.so.3 (lib.getLib stdenv.cc.cc) # libstdc++.so.6 ]; postPatch = '' Loading @@ -59,17 +64,73 @@ vscode-utils.buildVscodeMarketplaceExtension { preFixup = '' ( set -euo pipefail shopt -s globstar shopt -s dotglob # Fix all binaries. for file in "$out"/**/*; do if [[ ! -f "$file" || "$file" == *.so || "$file" == *.dylib ]] || if [[ ! -f "$file" || "$file" == *.so || "$file" == *.a || "$file" == *.dylib ]] || (! isELF "$file" && ! isMachO "$file"); then continue fi echo Making "$file" executable... chmod +x "$file" ${lib.optionalString stdenv.hostPlatform.isLinux '' # Add .NET deps if it is an apphost. if grep 'You must install .NET to run this application.' "$file" > /dev/null; then echo "Adding .NET needed libraries to: $file" patchelf \ --add-needed libicui18n.so \ --add-needed libicuuc.so \ --add-needed libgssapi_krb5.so \ --add-needed libssl.so \ "$file" fi ''} done ${lib.optionalString stdenv.hostPlatform.isLinux '' # Add the ICU libraries as needed to the globalization DLLs. for file in "$out"/**/{libcoreclr.so,*System.Globalization.Native.so}; do echo "Adding ICU libraries to: $file" patchelf \ --add-needed libicui18n.so \ --add-needed libicuuc.so \ "$file" done # Add the Kerberos libraries as needed to the native security DLL. for file in "$out"/**/*System.Net.Security.Native.so; do echo "Adding Kerberos libraries to: $file" patchelf \ --add-needed libgssapi_krb5.so \ "$file" done # Add the OpenSSL libraries as needed to the OpenSSL native security DLL. for file in "$out"/**/*System.Security.Cryptography.Native.OpenSsl.so; do echo "Adding OpenSSL libraries to: $file" patchelf \ --add-needed libssl.so \ "$file" done # Add the needed binaries to the apphost binaries. for file in $(jq -r '.runtimeDependencies | map(select(.binaries != null) | .installPath + "/" + .binaries[]) | sort | unique | map(sub("/\\./"; "/")) | .[]' < "$out"/share/vscode/extensions/ms-dotnettools.csharp/package.json); do [ -f "$out"/share/vscode/extensions/ms-dotnettools.csharp/"$file" ] || continue echo "Adding .NET needed libraries to: $out/share/vscode/extensions/ms-dotnettools.csharp/$file" patchelf \ --add-needed libicui18n.so \ --add-needed libicuuc.so \ --add-needed libgssapi_krb5.so \ --add-needed libssl.so \ "$out"/share/vscode/extensions/ms-dotnettools.csharp/"$file" done ''} ) ''; Loading @@ -78,7 +139,7 @@ vscode-utils.buildVscodeMarketplaceExtension { meta = { description = "Official C# support for Visual Studio Code"; homepage = "https://github.com/dotnet/vscode-csharp"; license = lib.licenses.mit; license = lib.licenses.unfree; maintainers = with lib.maintainers; [ ggg ]; platforms = [ "x86_64-linux" Loading