<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Fluorine-Manager.git/build.sh, branch main</title>
<subtitle>A port of MO2 in linux with NaK integration and FUSE based VFS. Comes with Root Builder support by default.</subtitle>
<id>http://git.schererleander.de/Fluorine-Manager.git/atom/build.sh?h=main</id>
<link rel='self' href='http://git.schererleander.de/Fluorine-Manager.git/atom/build.sh?h=main'/>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/'/>
<updated>2026-06-19T23:01:56Z</updated>
<entry>
<title>Fix VFS writes and stylesheet URLs</title>
<updated>2026-06-19T23:01:56Z</updated>
<author>
<name>SulfurNitride</name>
<email>lukew19@proton.me</email>
</author>
<published>2026-06-19T23:01:56Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=ea794b1eba77e9b5dd8bea0fe4d3280b67d77a5a'/>
<id>urn:sha1:ea794b1eba77e9b5dd8bea0fe4d3280b67d77a5a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix NuGet cert setup and fontconfig env</title>
<updated>2026-06-08T22:17:12Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-06-08T22:16:13Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=d453ed91b6dc332fd45987c642e9d230efe870c8'/>
<id>urn:sha1:d453ed91b6dc332fd45987c642e9d230efe870c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove AppImage build target and runtime references</title>
<updated>2026-05-01T15:09:39Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-05-01T15:09:39Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=af43100e29859adbf5dcb6ee90cd8f981439b859'/>
<id>urn:sha1:af43100e29859adbf5dcb6ee90cd8f981439b859</id>
<content type='text'>
We ship via portable tarball directory + .bin self-extracting installer
only; the AppImage path was unmaintained and pulling in linuxdeploy
tooling for a format we no longer publish.

Build:
- build.sh: drop appimage/all-includes-appimage modes (now: tarball,
  installer, all=both, shell). Output listing tracks the directory.
- docker/Dockerfile: drop BUILD_APPIMAGE arg and the linuxdeploy
  download/extract block.
- docker/build-inner.sh: drop build_appimage() (~120 lines), AppImage
  arm of the BUILD_MODE switch, *.AppImage summary listing.
- docker/AppRun.sh: deleted.
- .gitignore: drop *.AppImage / squashfs-root / *.flatpak entries.

Runtime: no longer key off APPIMAGE/APPDIR env vars or AppRun-set
state. The fluorine-manager launcher script already exports
FLUORINE_ORIG_*, MO2_BASE_DIR, MO2_PLUGINS_DIR, MO2_LIBS_DIR,
MO2_PYTHON_DIR for the same purpose, so simplify:
- envshortcut: appImageOrBinary -&gt; launcherOrBinary; bundledFluorineIcon
  no longer probes APPDIR.
- nxmhandler: drop APPIMAGE-based wrapper path; use applicationFilePath.
- protonlauncher: rename cleanAppImageEnv -&gt; cleanFluorineEnv, drop
  APPIMAGE/APPDIR/OWD/ARGV0/APPIMAGE_ORIGINAL_EXEC/DESKTOPINTEGRATION
  removals and .mount_Fluori pattern strip.
- prefixsetuprunner: same env-cleaning trim.
- utility, library.h, proxypython, mainwindow, moapplication, appconfig:
  comment cleanup pointing at the launcher instead of AppRun.

Co-Authored-By: Claude Opus 4.7 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Strip remaining Windows-only conditionals across src/src/</title>
<updated>2026-04-29T02:22:45Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-04-29T02:22:45Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=5d42085dd36f14aa3385547947ccd6e6c5f03d50'/>
<id>urn:sha1:5d42085dd36f14aa3385547947ccd6e6c5f03d50</id>
<content type='text'>
Removes every #ifdef _WIN32 / #ifndef _WIN32 / Q_OS_WIN block from the
organizer source tree. The Linux build is the only target this fork
produces, so the dead Windows branches were just noise. Stubs for
Win32-shaped APIs that the upstream code references (FILETIME, HANDLE,
DWORD, etc.) live in shared/windows_compat.h so the surrounding source
keeps compiling without rewriting every signature.

Also:
- Reimplemented env::DirectoryWalker / env::forEachEntry / env::Module
  / env::Process / env::WindowsInfo as Linux-only (uname, /etc/os-release,
  /proc, std::filesystem) since the Win32 branches that previously held
  those implementations are gone.
- Reduced spawn.cpp / processrunner.cpp / env.cpp to their Linux paths;
  dropped the helper:: namespace, Win-only waitForAllUSVFSProcesses-
  WithLock(), Steam Win-registry probe, and Windows mini-dump path.
- Linux launcher uses BUILD_JOBS (default 4) so docker rebuilds during
  the audit don't pin the host.

Build verified after every batch with ./build.sh tarball.

Co-Authored-By: Claude Opus 4.7 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>FUSE VFS performance, tracked writes fix, remove steam-run, add NixOS flake</title>
<updated>2026-03-11T07:50:50Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-03-11T07:50:50Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=b1ce38db496c9692bca512e6bd76050ef79f61c2'/>
<id>urn:sha1:b1ce38db496c9692bca512e6bd76050ef79f61c2</id>
<content type='text'>
- FUSE: disable AUTO_INVAL_DATA, enable readdirplus, 24h TTLs, clone_fd,
  FUSE_USE_VERSION=312 — cuts game load time from 2:40 to 1:57
- Fix tracked writes going to wrong (lower-priority) mod in both
  detectManualMoves and syncOverwrite
- Remove steam-run entirely (UI, C++, Rust layers)
- Build system: default to tarball, add installer/appimage as opt-in modes
- Add flake.nix for NixOS — builds from source with Rust crates as
  separate pure derivations, FHS wrapper, NixOS module with FUSE passthrough

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix log copy truncation, enable ccache for build cache</title>
<updated>2026-02-25T21:50:45Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-25T21:50:45Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=11404dc2bbfb9033344ff360e72b66372edd0d9b'/>
<id>urn:sha1:11404dc2bbfb9033344ff360e72b66372edd0d9b</id>
<content type='text'>
Fix "Copy all" log truncation: the code unconditionally stripped 2
chars (\r\n) from formatted log messages, but on Linux spdlog only
appends \n.  Every log message lost its last real character.  Now
strips trailing \r and \n dynamically.

Enable ccache: it was installed in the Docker image but never
activated.  build-inner.sh now auto-detects ccache and sets
CMAKE_*_COMPILER_LAUNCHER.  build.sh mounts a persistent ccache
volume (~/.cache/fluorine-ccache) into the container.  CI workflow
uses actions/cache to persist ccache across runs.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add Python init diagnostics, AppImage build system, misc Linux fixes</title>
<updated>2026-02-19T23:25:48Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-19T23:25:48Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=5467e210668eb24de9a4429ef0ddcbc6442e8932'/>
<id>urn:sha1:5467e210668eb24de9a4429ef0ddcbc6442e8932</id>
<content type='text'>
- python: switch Py_InitializeEx → Py_InitializeFromConfig for explicit
  error reporting; add dladdr + fprintf diagnostics to trace which DSO
  Python symbols resolve to and whether Py_IsInitialized succeeds
- python: log RTLD_NOLOAD vs fresh-load outcome when promoting libpython
  to RTLD_GLOBAL
- build: add Docker-based AppImage build script (build.sh), update
  Dockerfile and build-inner.sh for AppImage-only workflow
- build: remove Flatpak support entirely; move AppImage metadata
  (desktop/metainfo/icon) from flatpak/ to data/
- Add Monster Hunter Wilds basic_games plugin
- .gitignore: exclude squashfs-root, build-source, flatpak-repo,
  __pycache__, fomod-plus-settings.ini
- Various Linux port fixes across wineprefix, processrunner, proton
  launcher, FUSE connector, instance manager, download manager,
  sanitychecks, and NaK Rust paths/runtime_wrap

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Migrate data paths to ~/.local/share/fluorine/, add native build, fix %command% and system Proton scanning</title>
<updated>2026-02-14T21:40:33Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-14T21:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=6410929e17d642618f284d5c97d457f1ac653e6e'/>
<id>urn:sha1:6410929e17d642618f284d5c97d457f1ac653e6e</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fluorine Manager: full Linux port of Mod Organizer 2</title>
<updated>2026-02-11T08:37:39Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-11T08:37:39Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=7ee008e150bc5bcf76082d726f719ee0fdfda982'/>
<id>urn:sha1:7ee008e150bc5bcf76082d726f719ee0fdfda982</id>
<content type='text'>
Complete native Linux port with FUSE-based virtual filesystem,
Proton/umu-run integration, and Flatpak packaging.

Key features:
- FUSE VFS replacing Windows USVFS (in-process + standalone helper for Flatpak)
- Proton/GE-Proton/umu-run launcher with env var forwarding
- Flatpak support (sandbox-aware VFS, NXM handler, umu-run)
- Wine prefix management UI
- Case-insensitive path resolution for Linux filesystems
- QSettings-safe INI handling (avoids Bethesda INI corruption)
- Portable instance support with auto-generated launcher scripts

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
