From 3de4056df4ea5d0afbcea388ad8d681daea1aac3 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 8 Apr 2026 03:30:04 -0500 Subject: Remove NaK/Rust dependency, port remaining functionality to native C++ Replace NaK Rust crate and nak_ffi with native C++ implementations: - Game detection (Steam, Heroic, Bottles), VDF parser, icon extraction - Prefix symlinks, SLR manager, Steam path detection - Known games database Add FUSE VFS optimizations: zero-copy reads via fuse_reply_data, default_permissions mount option, FUSE_CAP_ASYNC_DIO, FUSE_CAP_EXPIRE_ONLY, lookup cache parent index, cached mode bits, increased I/O buffer sizes. Update build system, prefix setup, and various fixes. Co-Authored-By: Claude Opus 4.6 (1M context) --- docker/build-inner.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'docker') diff --git a/docker/build-inner.sh b/docker/build-inner.sh index dd33409..cfbb061 100755 --- a/docker/build-inner.sh +++ b/docker/build-inner.sh @@ -53,7 +53,7 @@ cp -f "${RUNDIR}/ModOrganizer" "${OUT_DIR}/ModOrganizer-core" LOOTCLI="build/libs/lootcli/src/lootcli" [ -f "${LOOTCLI}" ] && cp -f "${LOOTCLI}" "${OUT_DIR}/" -# wrestool/icotool no longer needed — icon extraction is built into libnak_ffi.so (pelite) +# wrestool/icotool no longer needed — icon extraction is built into the C++ PE parser # ── MO2 plugins (.so) ── find build/libs -type f \( \ @@ -131,10 +131,9 @@ cp -f build/libs/uibase/src/libuibase.so "${OUT_DIR}/lib/" cp -f build/libs/libbsarch/liblibbsarch.so "${OUT_DIR}/lib/" cp -f build/libs/archive/src/libarchive.so "${OUT_DIR}/lib/" cp -f build/libs/plugin_python/src/runner/librunner.so "${OUT_DIR}/lib/" -for ffi in libs/bsa_ffi/target/release/libbsa_ffi.so \ - libs/nak_ffi/target/release/libnak_ffi.so; do - [ -f "${ffi}" ] && cp -f "${ffi}" "${OUT_DIR}/lib/" -done +if [ -f "libs/bsa_ffi/target/release/libbsa_ffi.so" ]; then + cp -f libs/bsa_ffi/target/release/libbsa_ffi.so "${OUT_DIR}/lib/" +fi # Boost (version-pinned to container, won't exist on most user systems). for boost_lib in /lib/x86_64-linux-gnu/libboost_program_options.so* \ @@ -416,8 +415,8 @@ export PATH="${RUN}:${PATH}" # Steam game mode injects its scout/soldier runtime into LD_LIBRARY_PATH. # Those old libraries (libssl, libz, etc.) break Python extension modules # and Qt internals that don't have RPATH pointing to our bundled libs. -# Clear it — the binary uses DT_RPATH ($ORIGIN/lib) for its own deps, -# and we prepend our lib/ for anything loaded via dlopen (Python, Qt plugins). +# Clear it and set only our lib/ — the binary uses DT_RPATH ($ORIGIN/lib) +# for its own deps, this covers dlopen'd plugins. export LD_LIBRARY_PATH="${RUN}/lib" export MO2_BASE_DIR="${RUN}" export MO2_PLUGINS_DIR="${RUN}/plugins" -- cgit v1.3.1