diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-06-10 13:13:47 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-06-11 09:19:15 +0000 |
commit | fb2992faf76ad738687e1e50a2735d4113ff8865 (patch) | |
tree | a1ecc92bb984c4a535cb27c8d6e559d629d9576e /src/libs/installer/metadatajob.cpp | |
parent | f6565bdc455d7b3a10941c29d780b58fc1305ef2 (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.cpp | 13 |
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()) { |