summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/metadatajob.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-06-10 13:13:47 +0300
committerKatja Marttila <katja.marttila@qt.io>2020-06-11 09:19:15 +0000
commitfb2992faf76ad738687e1e50a2735d4113ff8865 (patch)
treea1ecc92bb984c4a535cb27c8d6e559d629d9576e /src/libs/installer/metadatajob.cpp
parentf6565bdc455d7b3a10941c29d780b58fc1305ef2 (diff)
Generate unique metadata name for unified metadata
If the metadata name is the same although the package is updated, it might cause problems when pushing the data to distribution systems that requires a filename change in order to replicate content. If the filename stays the same it may not be refreshed to the cache. Task-number: QTIFW-1838 Change-Id: I2fc8c1cdf559dab89b57a74ebbe758cdc71da29c Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/metadatajob.cpp')
-rw-r--r--src/libs/installer/metadatajob.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp
index 4e3edaa05..c500e2ec8 100644
--- a/src/libs/installer/metadatajob.cpp
+++ b/src/libs/installer/metadatajob.cpp
@@ -627,8 +627,17 @@ MetadataJob::Status MetadataJob::parseUpdatesXml(const QList<FileTaskResult> &re
}
} else {
const QString repoUrl = metadata.repository.url().toString();
- addFileTaskItem(QString::fromLatin1("%1/meta.7z").arg(repoUrl),
- metadata.directory + QString::fromLatin1("/meta.7z"), metadata, sha1.toElement().text(), QString());
+ QDomElement metadataNameElement = root.firstChildElement(QLatin1String("MetadataName"));
+ if (!metadataNameElement.isNull()) {
+ const QString metadataName = metadataNameElement.toElement().text();
+ addFileTaskItem(QString::fromLatin1("%1/%2").arg(repoUrl, metadataName),
+ metadata.directory + QString::fromLatin1("/%1").arg(metadataName),
+ metadata, sha1.toElement().text(), QString());
+ } else {
+ qCWarning(QInstaller::lcInstallerInstallLog) <<
+ "Unable to find MetadataName element from Updates.xml";
+ return XmlDownloadFailure;
+ }
}
if (metadata.repository.categoryname().isEmpty()) {