From 6410929e17d642618f284d5c97d457f1ac653e6e Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Sat, 14 Feb 2026 15:40:33 -0600 Subject: Migrate data paths to ~/.local/share/fluorine/, add native build, fix %command% and system Proton scanning - All data paths migrated from ~/.var/app/com.fluorine.manager/ to ~/.local/share/fluorine/ so native and Flatpak builds share the same instances, plugins, and configs - New fluorinepaths.h/.cpp with fluorineDataDir() helper and one-time migration from old path (writes MOVED.txt breadcrumb) - New libs/nak/src/paths.rs as Rust equivalent (data_dir()) - Strip %command% tokens from launch wrapper in protonlauncher.cpp - Always scan /usr/share/steam/compatibilitytools.d/ for system Proton packages (Arch installs Proton there); add Flatpak filesystem permission - Native build (build-native.sh) installs to ~/.local/share/fluorine/ with desktop entry and ~/.local/bin symlink instead of portable zip - build-flatpak.sh wrapper for Flatpak builds - Fix container locale (LANG=C.UTF-8) for AutoUic warnings - Fix prefixExists() to handle both compatdata and pfx directory layouts - Fix globalInstancesRootPath() to use fluorineDataDir() on Linux - Fix umu-run Flatpak lookup to use fluorineDataDir() - Update README with build instructions and Arch dependency list Co-Authored-By: Claude Opus 4.6 --- docker/Dockerfile | 1 + docker/build-inner.sh | 25 +++++++++---------------- 2 files changed, 10 insertions(+), 16 deletions(-) (limited to 'docker') diff --git a/docker/Dockerfile b/docker/Dockerfile index fc62dc8..d6b38ce 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,7 @@ FROM ubuntu:25.10 ENV DEBIAN_FRONTEND=noninteractive +ENV LANG=C.UTF-8 ENV RUSTUP_HOME=/opt/rust/rustup ENV CARGO_HOME=/opt/rust/cargo ENV PATH="/opt/rust/cargo/bin:${PATH}" diff --git a/docker/build-inner.sh b/docker/build-inner.sh index a96cf98..962898b 100755 --- a/docker/build-inner.sh +++ b/docker/build-inner.sh @@ -18,10 +18,9 @@ RUNDIR="build/src/src" PY_MM="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" -# ── Output layout ── -OUT_DIR="/src/build/ModOrganizer-portable" -ZIP_OUT="/src/build/ModOrganizer-linux-x86_64.zip" -rm -rf "${OUT_DIR}" "${ZIP_OUT}" +# ── Output layout (staging area — installed to ~/.local/share/fluorine by build-native.sh) ── +OUT_DIR="/src/build/staging" +rm -rf "${OUT_DIR}" mkdir -p "${OUT_DIR}/plugins" "${OUT_DIR}/dlls" "${OUT_DIR}/lib" # ── Main binary + helpers ── @@ -238,10 +237,11 @@ if ! PYTHONHOME="${OUT_DIR}/python" \ fi # ── Launcher script ── -cat > "${OUT_DIR}/ModOrganizer" <<'LAUNCH' +cat > "${OUT_DIR}/fluorine-manager" <<'LAUNCH' #!/usr/bin/env bash set -euo pipefail -HERE="$(cd "$(dirname "$0")" && pwd)" +SELF="$(readlink -f "$0")" +HERE="$(cd "$(dirname "$SELF")" && pwd)" export PATH="${HERE}:${PATH}" export LD_LIBRARY_PATH="${HERE}/lib:${HERE}/python/lib:${LD_LIBRARY_PATH:-}" export MO2_BASE_DIR="${HERE}" @@ -284,18 +284,11 @@ fi cd "${HERE}" exec env PYTHONHOME="${MO2_PYTHONHOME}" "${HERE}/ModOrganizer-core" "$@" LAUNCH -chmod +x "${OUT_DIR}/ModOrganizer" - -# ── ZIP ── -( - cd "${OUT_DIR}" - zip -r -9 "${ZIP_OUT}" . -) +chmod +x "${OUT_DIR}/fluorine-manager" # ── Summary ── echo "" -echo "=== Package Summary ===" +echo "=== Build Summary ===" du -sh "${OUT_DIR}"/*/ "${OUT_DIR}"/ModOrganizer-core 2>/dev/null | sort -rh echo "" -ZIP_SIZE="$(du -sh "${ZIP_OUT}" | cut -f1)" -echo "Done! Portable ZIP at: build/ModOrganizer-linux-x86_64.zip (${ZIP_SIZE})" +echo "Staging complete." -- cgit v1.3.1