diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-19 17:25:48 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-19 17:25:48 -0600 |
| commit | 5467e210668eb24de9a4429ef0ddcbc6442e8932 (patch) | |
| tree | 6c672183779c800963d73db5bee6742bf08c65fd /libs/plugin_python/src/proxy | |
| parent | 6d70b7fa6a9cdf8ea59c7aa98f92249c5a4e0060 (diff) | |
Add Python init diagnostics, AppImage build system, misc Linux fixes
- 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 <noreply@anthropic.com>
Diffstat (limited to 'libs/plugin_python/src/proxy')
| -rw-r--r-- | libs/plugin_python/src/proxy/proxypython.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/plugin_python/src/proxy/proxypython.cpp b/libs/plugin_python/src/proxy/proxypython.cpp index 196bf23..c9c7ba2 100644 --- a/libs/plugin_python/src/proxy/proxypython.cpp +++ b/libs/plugin_python/src/proxy/proxypython.cpp @@ -224,6 +224,9 @@ bool ProxyPython::init(IOrganizer* moInfo) if (!m_Runner || !m_Runner->isInitialized()) { m_LoadFailure = FailureType::INITIALIZATION; + MOBase::log::error("Python proxy: interpreter failed to initialize, " + "Python plugins will be unavailable"); + return true; // return true so the plugin stays loaded (shows diagnostic) } else { m_Runner->addDllSearchPath(pluginDataRoot / "dlls"); @@ -296,7 +299,7 @@ QStringList ProxyPython::pluginList(const QDir& pluginPath) const QList<QObject*> ProxyPython::load(const QString& identifier) { - if (!m_Runner) { + if (!m_Runner || !m_Runner->isInitialized()) { return {}; } return m_Runner->load(identifier); @@ -304,7 +307,7 @@ QList<QObject*> ProxyPython::load(const QString& identifier) void ProxyPython::unload(const QString& identifier) { - if (m_Runner) { + if (m_Runner && m_Runner->isInitialized()) { return m_Runner->unload(identifier); } } |
