Index: kpackage-5.30.0/src/kpackage/packageloader.cpp =================================================================== --- kpackage-5.30.0.orig/src/kpackage/packageloader.cpp +++ kpackage-5.30.0/src/kpackage/packageloader.cpp @@ -238,7 +238,7 @@ QList PackageLoader::li } else { //qDebug() << "Not cached"; // If there's no cache file, fall back to listing the directory - const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories; + const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks; const QStringList nameFilters = { QStringLiteral("metadata.json"), QStringLiteral("metadata.desktop") }; QDirIterator it(plugindir, nameFilters, QDir::Files, flags); Index: kpackage-5.30.0/src/kpackage/private/packagejobthread.cpp =================================================================== --- kpackage-5.30.0.orig/src/kpackage/private/packagejobthread.cpp +++ kpackage-5.30.0/src/kpackage/private/packagejobthread.cpp @@ -121,7 +121,7 @@ bool indexDirectory(const QString& dir, QJsonArray plugins; - QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories); + QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); while (it.hasNext()) { it.next(); const QString path = it.fileInfo().absoluteFilePath();