From eb8c20695643923598d0516e86b1fcef144f65fa Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 11 Mar 2026 04:02:27 -0500 Subject: Fix FUSE passthrough: use proper API, drop LD_LIBRARY_PATH, auto-apply cap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use fuse_passthrough_open/close API instead of raw fd assignment to fi->backing_id, which caused EIO on every file open through the VFS - Remove LD_LIBRARY_PATH from launcher script — DT_RPATH handles lib resolution, and LD_LIBRARY_PATH triggers AT_SECURE which drops file capabilities (cap_sys_admin) needed for passthrough - Auto-detect missing cap_sys_admin at mount time and prompt via pkexec to re-apply it (handles binary copy/update/extract losing the cap) - Disable passthrough for session if fuse_passthrough_open fails, avoiding "Operation not permitted" spam in terminal - Fix Nix flake: tinyxml2 → tinyxml-2, xorg.lib* → top-level names - CI: eliminate artifact zip round-trip for GitHub releases Co-Authored-By: Claude Opus 4.6 --- docker/build-inner.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'docker') diff --git a/docker/build-inner.sh b/docker/build-inner.sh index d035e34..e9add61 100755 --- a/docker/build-inner.sh +++ b/docker/build-inner.sh @@ -349,7 +349,10 @@ RUN="${BIN_DST}" PYTHON_DIR="${RUN}/python" export PATH="${RUN}:${PATH}" -export LD_LIBRARY_PATH="${RUN}/lib:${PYTHON_DIR}/lib:${LD_LIBRARY_PATH:-}" +# NOTE: Do NOT set LD_LIBRARY_PATH here. The binary uses DT_RPATH +# ($ORIGIN/lib:$ORIGIN/python/lib) to find its libraries. Setting +# LD_LIBRARY_PATH on a capability-bearing binary (cap_sys_admin for FUSE +# passthrough) triggers AT_SECURE mode, which drops all file capabilities. export MO2_BASE_DIR="${RUN}" export MO2_PLUGINS_DIR="${RUN}/plugins" export MO2_DLLS_DIR="${RUN}/dlls" -- cgit v1.3.1