aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-14 15:40:33 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-14 15:40:33 -0600
commit6410929e17d642618f284d5c97d457f1ac653e6e (patch)
tree5c0ee09e04f38a2dd70f1734d25c74e0b8ae5d43 /docker
parent817e8f5cd26739c69d930d21cd9dc4c0b6e4984e (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile1
-rwxr-xr-xdocker/build-inner.sh25
2 files changed, 10 insertions, 16 deletions
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."