dotfiles/nixos/overlays/clion/remote.patch
2024-11-07 16:25:41 -07:00

101 lines
4 KiB
Diff

diff --git a/plugins/remote-dev-server/bin/launcher.sh b/plugins/remote-dev-server/bin/launcher.sh
index 085c648..133990e 100755
--- a/plugins/remote-dev-server/bin/launcher.sh
+++ b/plugins/remote-dev-server/bin/launcher.sh
@@ -71,10 +71,6 @@
rm -f "$TEMP_REMOTE_DEV_VM_OPTIONS"
fi
- if [ -n "${TEMP_JBR:-}" ]; then
- rm -rf "$TEMP_JBR"
- fi
-
if [ -n "${XVFB_PID:-}" ]; then
kill -9 "$XVFB_PID" >/dev/null 2>&1
fi
@@ -309,72 +305,6 @@
mkdir -p "$IJ_HOST_CONFIG_DIR" || (echo "Failed to create $IJ_HOST_CONFIG_DIR" 1>&2; exit 1)
mkdir -p "$IJ_HOST_SYSTEM_DIR" || (echo "Failed to create $IJ_HOST_SYSTEM_DIR" 1>&2; exit 1)
-# -------------------------------------------------------------------------------------
-# Patch JBR to make self-contained JVM (requires nothing from host system except glibc)
-# -------------------------------------------------------------------------------------
-if [ -n "${REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS:-}" ]; then
- # already set by environment
- echo "\$REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=$REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS"
-elif [ $IS_DARWIN -eq 1 ]; then
- REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=0
-elif /lib64/ld-linux-x86-64.so.2 2>&1 | grep -q "gcompat ELF interpreter stub"; then
- # Not usable under Alpine and other musl-based linux distributions (x86-64)
- REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=0
-elif /lib/ld-linux-aarch64.so.1 2>&1 | grep -q "gcompat ELF interpreter stub"; then
- # Not usable under Alpine and other musl-based linux distributions (aarch64)
- REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=0
-else
- REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=1
-fi
-
-if [ $REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS -eq 1 ]; then
- SELFCONTAINED_LIBS="$REMOTE_DEV_SERVER_DIR/selfcontained/lib"
- if [ ! -d "$SELFCONTAINED_LIBS" ]; then
- echo "ERROR! Unable to locate libraries for self-contained idea distribution. Directory not found: '$SELFCONTAINED_LIBS'." 1>&2
- exit 1
- fi
-
- TEMP_JBR="$IJ_HOST_SYSTEM_DIR/pid.$$.temp.jbr"
- rm -rf "$TEMP_JBR"
- cp -r --symbolic-link "$IDE_HOME/jbr" "$TEMP_JBR"
-
- export "${IDE_PRODUCT_UC}_JDK=$TEMP_JBR"
-
- patch_bin_file() {
- file="$1"
- extra_arg=""
- if [ "$(basename "$file")" = "java" ]; then
- extra_arg="\"-Djava.home=$TEMP_JBR\""
- fi
- mv "$file" "$file.bin"
-
- case $(uname -m) in
- x86_64)
- LD_LINUX=/lib64/ld-linux-x86-64.so.2
- ;;
- aarch64)
- LD_LINUX=/lib/ld-linux-aarch64.so.1
- ;;
- *)
- echo "Unsupported architecture $(uname -m)" 1>&2
- exit 1
- ;;
- esac
-
- cat >"$file" <<EOT
-#!/bin/sh
-exec $LD_LINUX --library-path "$SELFCONTAINED_LIBS" "${file}.bin" $extra_arg "\$@"
-EOT
- chmod 755 "$file"
- }
-
- # Hardcoded list copied from [org.jetbrains.intellij.build.impl.BundledRuntimeImpl.executableFilesPatterns]
- find -L "$TEMP_JBR/bin" -type f -executable | while IFS= read -r line; do patch_bin_file "$line"; done
- patch_bin_file "$TEMP_JBR/lib/chrome-sandbox"
- patch_bin_file "$TEMP_JBR/lib/jcef_helper"
- patch_bin_file "$TEMP_JBR/lib/jexec"
- patch_bin_file "$TEMP_JBR/lib/jspawnhelper"
-fi
# -----------------------------
# Display project trust warning
# -----------------------------
@@ -454,12 +384,6 @@
# Replace only default Xmx since users may modify vmoptions file to e.g. make -Xmx even bigger
sed "s/$IDE_DEFAULT_XMX/-Xmx2048m/g" "$TEMP_REMOTE_DEV_VM_OPTIONS" > "${TEMP_REMOTE_DEV_VM_OPTIONS}.tmp" && mv "${TEMP_REMOTE_DEV_VM_OPTIONS}.tmp" "${TEMP_REMOTE_DEV_VM_OPTIONS}"
-if [ $REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS -eq 1 ]; then
- # Since TEMP_JBR is built on symlinks, java tries to resolve it and calculates java.home incorrectly
- # Make sure java.home points to our patched JBR
- echo "-Djava.home=$TEMP_JBR" >>"$TEMP_REMOTE_DEV_VM_OPTIONS"
-fi
-
if [ $IS_WSL2 -eq 1 ] && [ "${REMOTE_DEV_SERVER_ALLOW_IPV6_ON_WSL2:-}" != "true" ]; then
echo "-Djava.net.preferIPv4Stack=true" >>"$TEMP_REMOTE_DEV_VM_OPTIONS"
fi