aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/src/plugincontainer.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/src/plugincontainer.cpp b/src/src/plugincontainer.cpp
index aa11f6c..c7e39e9 100644
--- a/src/src/plugincontainer.cpp
+++ b/src/src/plugincontainer.cpp
@@ -40,7 +40,13 @@ static void ensureBundledPluginsLinked(const QString& bundledDir,
if (targetInfo.isSymLink()) {
// Already a symlink — check if it points to the right place.
- if (targetInfo.symLinkTarget() == QFileInfo(it.filePath()).absoluteFilePath()) {
+ // Use canonicalFilePath() on both sides so /home/ ↔ /var/home/ symlinks
+ // (Bazzite/Fedora immutable distros) don't cause false stale-symlink
+ // replacements that can delete the .so before re-linking it.
+ const QString existingTarget =
+ QFileInfo(targetInfo.symLinkTarget()).canonicalFilePath();
+ const QString expectedTarget = QFileInfo(it.filePath()).canonicalFilePath();
+ if (!expectedTarget.isEmpty() && existingTarget == expectedTarget) {
continue; // correct symlink, nothing to do
}
// Stale symlink pointing elsewhere — replace it.