diff options
| -rw-r--r-- | src/src/plugincontainer.cpp | 8 |
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.
|
