<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Fluorine-Manager.git/libs/plugin_python/src/runner/pythonrunner.cpp, 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/libs/plugin_python/src/runner/pythonrunner.cpp?h=main</id>
<link rel='self' href='http://git.schererleander.de/Fluorine-Manager.git/atom/libs/plugin_python/src/runner/pythonrunner.cpp?h=main'/>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/'/>
<updated>2026-06-17T06:46:09Z</updated>
<entry>
<title>Prepare Nexus-safe release cleanup</title>
<updated>2026-06-17T06:46:09Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-06-17T06:46:09Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=05aa96d20ca726908a7d8b1943f86f0c4e11bf18'/>
<id>urn:sha1:05aa96d20ca726908a7d8b1943f86f0c4e11bf18</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clean up remaining Linux packaging names</title>
<updated>2026-04-29T20:35:56Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-04-29T20:35:56Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=6243e1a79550e9cff9837f5449f3b9150127b8e8'/>
<id>urn:sha1:6243e1a79550e9cff9837f5449f3b9150127b8e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bundle PBS Python 3.12 + PyQt6, restore Python plugins as .py files</title>
<updated>2026-03-13T11:26:18Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-03-13T11:26:18Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=de4db79e5158017c002cc91c14fa9e58420e7774'/>
<id>urn:sha1:de4db79e5158017c002cc91c14fa9e58420e7774</id>
<content type='text'>
- Replace portable Python approach with python-build-standalone 3.12.13
  (20260310 release) bundled directly in the distribution. Python is now
  always available without user setup — removes the Python settings tab.

- PyQt6 staged to plugins/libs/PyQt6/ with bundled Qt stripped out;
  patchelf'd to use our existing bundled Qt in lib/ instead of duplicating it.

- Restored native-converted plugins back to .py files:
  Form43Checker, ScriptExtenderPluginChecker, DDSPreview, basic_games,
  rootbuilder, installer_omod. Removed all *_native CMake targets.

- pythonrunner.cpp: removed venv/MO2_PYTHON_DIR lookup; always uses
  bundled Python at &lt;exe_dir&gt;/python, system Python as last-resort fallback.

- plugincontainer.cpp: removed fluorine/python_enabled gate (Python always
  loads), demoted proxy loading log messages from warn to debug, silenced
  [plugin-diag] stderr spam.

- Dockerfile: switched from uv venv to PBS install_only tarball; PBS Python
  used for both build-time pybind11 compilation and runtime distribution.

- build-inner.sh: aggressive Python staging (strip test/tkinter/ensurepip/
  distutils/lib2to3/idlelib; wipe build-time site-packages, restore psutil+vdf).

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Replace Python plugins with native C++ .so, remove bundled Python (~95MB)</title>
<updated>2026-03-12T12:08:09Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-03-12T12:08:09Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=755698f1adceef55f52c8e44c9746537885c9bf7'/>
<id>urn:sha1:755698f1adceef55f52c8e44c9746537885c9bf7</id>
<content type='text'>
- Add native plugins: form43_checker, script_extender_checker, preview_dds,
  basic_games (75 game defs via IPluginProxy pattern with Steam/GOG detection)
- Remove portable Python from Dockerfile and build-inner.sh
- Add Python settings tab with venv support (system python3 + PyQt6)
- Skip loading plugin_python.so when Python disabled (default: off)
- Update pythonrunner.cpp to use venv at ~/.local/share/fluorine/python-venv/
- Preserve real file permissions in FUSE VFS (fixes native executable +x bits)
- Add FUSE_SET_ATTR_MODE handler so chmod works through VFS
- Fix desktop shortcut Exec= to use fluorine-manager launcher, not bare binary

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix AppImage plugin loading, save timestamps, and INI corruption</title>
<updated>2026-02-21T05:53:26Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-21T05:53:26Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=d22d8c267b012729b6b84142def2a30ca4691d7a'/>
<id>urn:sha1:d22d8c267b012729b6b84142def2a30ca4691d7a</id>
<content type='text'>
- Add AppConfig::pluginsPath()/dllsPath() that respect MO2_PLUGINS_DIR
  and MO2_DLLS_DIR env vars, fixing plugin discovery when plugins live
  inside read-only AppImage squashfs (#22, game plugin not found errors)
- Preserve file modification times in save deploy/sync so games display
  correct save timestamps instead of all showing the same time (#17)
- Replace QSettings INI reader in saves tab with direct line-by-line
  parser to avoid backslash-as-line-continuation corruption of
  sLocalSavePath=__MO_Saves\ (#22, saves tab showing wrong directory)
- Add diagnostic logging to plugin symlink creation, save backup/restore
  operations to help diagnose silent failures through prefix symlinks
- Fix Python SONAME mismatch in AppImage build (patch portable Python
  SONAME to match librunner.so DT_NEEDED, preventing dual libpython load)
- Bundle PyQt6 Qt dependencies, improve RPATH for lib/ and plugins/

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>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>
