From 5467e210668eb24de9a4429ef0ddcbc6442e8932 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Thu, 19 Feb 2026 17:25:48 -0600 Subject: Add Python init diagnostics, AppImage build system, misc Linux fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- libs/plugin_python/src/proxy/proxypython.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libs/plugin_python/src/proxy/proxypython.cpp') 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 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 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); } } -- cgit v1.3.1