diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-14 15:40:33 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-14 15:40:33 -0600 |
| commit | 6410929e17d642618f284d5c97d457f1ac653e6e (patch) | |
| tree | 5c0ee09e04f38a2dd70f1734d25c74e0b8ae5d43 /docker | |
| parent | 817e8f5cd26739c69d930d21cd9dc4c0b6e4984e (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/Dockerfile | 1 | ||||
| -rwxr-xr-x | docker/build-inner.sh | 25 |
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." |
