about summary refs log tree commit diff
path: root/pkgs/development/compilers/dotnet/patch-nupkgs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/dotnet/patch-nupkgs.nix')
-rw-r--r--pkgs/development/compilers/dotnet/patch-nupkgs.nix74
1 files changed, 0 insertions, 74 deletions
diff --git a/pkgs/development/compilers/dotnet/patch-nupkgs.nix b/pkgs/development/compilers/dotnet/patch-nupkgs.nix
deleted file mode 100644
index 572211b1b378..000000000000
--- a/pkgs/development/compilers/dotnet/patch-nupkgs.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ stdenv
-, lib
-, dotnetCorePackages
-, zlib
-, curl
-, icu
-, libunwind
-, libuuid
-, openssl
-, lttng-ust_2_12
-, writeShellScriptBin
-}:
-
-let
-  buildRid = dotnetCorePackages.systemToDotnetRid stdenv.buildPlatform.system;
-
-  binaryRPath = lib.makeLibraryPath ([
-    stdenv.cc.cc
-    zlib
-    curl
-    icu
-    libunwind
-    libuuid
-    openssl
-  ] ++ lib.optional stdenv.isLinux lttng-ust_2_12);
-
-in writeShellScriptBin "patch-nupkgs" ''
-  set -euo pipefail
-  shopt -s nullglob
-  isELF() {
-      local fn="$1"
-      local fd
-      local magic
-      exec {fd}< "$fn"
-      read -r -n 4 -u "$fd" magic
-      exec {fd}<&-
-      if [ "$magic" = $'\177ELF' ]; then return 0; else return 1; fi
-  }
-  cd "$1"
-  for x in *.${buildRid}/* *.${buildRid}.*/*; do
-    # .nupkg.metadata is written last, so we know the packages is complete
-    [[ -d "$x" ]] && [[ -f "$x"/.nupkg.metadata ]] \
-      && [[ ! -f "$x"/.nix-patched ]] || continue
-    echo "Patching package $x"
-    pushd "$x"
-    for p in $(find -type f); do
-      if [[ "$p" != *.nix-patched ]] \
-        && isELF "$p" \
-        && patchelf --print-interpreter "$p" &>/dev/null; then
-        tmp="$p".$$.nix-patched
-        # if this fails to copy then another process must have patched it
-        cp --reflink=auto "$p" "$tmp" || continue
-        echo "Patchelfing $p as $tmp"
-        patchelf \
-          --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
-          "$tmp" ||:
-        # This makes sure that if the binary requires some specific runtime dependencies, it can find it.
-        # This fixes dotnet-built binaries like crossgen2
-        patchelf \
-          --add-needed libicui18n.so \
-          --add-needed libicuuc.so \
-          --add-needed libz.so \
-          --add-needed libssl.so \
-          "$tmp"
-        patchelf \
-          --add-rpath "${binaryRPath}" \
-          "$tmp" ||:
-        mv "$tmp" "$p"
-      fi
-    done
-    touch .nix-patched
-    popd
-  done
-''