aboutsummaryrefslogtreecommitdiff
path: root/docker/build-inner.sh
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-11 04:40:30 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-11 04:40:30 -0500
commitb3f1ba196c384e3d96f84862a1e6cf21311a9cef (patch)
tree7a06ae86873ad33c5df8c1bf243c5a18e8c006a4 /docker/build-inner.sh
parent8b0057aca5f80bf6eab15c898e7d373d4c003453 (diff)
Check CAP_SYS_ADMIN at runtime before negotiating FUSE passthrough
Negotiating passthrough without the capability caused Wine/Proton DLL loading failures (SKSE plugins returning error 0x36). Now checks the process's effective capability set via libcap before telling the kernel we want passthrough. Also adds qt.conf for AT_SECURE compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'docker/build-inner.sh')
-rwxr-xr-xdocker/build-inner.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/docker/build-inner.sh b/docker/build-inner.sh
index 93ee6ba..c62285b 100755
--- a/docker/build-inner.sh
+++ b/docker/build-inner.sh
@@ -371,6 +371,15 @@ exec env PYTHONHOME="${MO2_PYTHONHOME}" "${RUN}/ModOrganizer-core" "$@"
LAUNCH
chmod +x "${OUT_DIR}/fluorine-manager"
+# ── qt.conf — tells Qt where to find plugins without QT_PLUGIN_PATH env ──
+# This is required when the binary has file capabilities (cap_sys_admin for
+# FUSE passthrough), because glibc strips environment variables in AT_SECURE
+# mode. qt.conf is read by Qt at startup regardless of env.
+cat > "${OUT_DIR}/qt.conf" <<'QTCONF'
+[Paths]
+Plugins = qt6plugins
+QTCONF
+
# ── Desktop integration files ──
cp -f /src/data/com.fluorine.manager.desktop "${OUT_DIR}/"
cp -f /src/data/com.fluorine.manager.png "${OUT_DIR}/"