summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/metadatajob.cpp
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-04-14 17:35:58 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-04-14 17:35:58 +0300
commit6ae894c26fa09806b48d1e8fa79231b0a63fcdf2 (patch)
tree7fa29232774731f433f31d66fbe4ac3e433e3499 /src/libs/installer/metadatajob.cpp
parent93bd3bb5b98f63698602e66622b13fb91a063cc8 (diff)
parente98269889b6156b7b027e1848477607b6151dfa4 (diff)
Merge remote-tracking branch 'origin/4.1'
Diffstat (limited to 'src/libs/installer/metadatajob.cpp')
-rw-r--r--src/libs/installer/metadatajob.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp
index a8405a0e8..2a9cb5ae7 100644
--- a/src/libs/installer/metadatajob.cpp
+++ b/src/libs/installer/metadatajob.cpp
@@ -654,8 +654,11 @@ MetadataJob::Status MetadataJob::parseUpdatesXml(const QList<FileTaskResult> &re
metaFound = parsePackageUpdate(c2, packageName, packageVersion, packageHash,
online, testCheckSum);
- //If meta element (script, licenses, etc.) is not found, no need to fetch metadata
- if (metaFound) {
+ // If meta element (script, licenses, etc.) is not found, no need to fetch metadata.
+ // The offline-generator instance is an exception to this - if the Updates.xml contains
+ // checksum element for the meta-archive, we will fetch it, so that the temporary
+ // location contents match the remote repository.
+ if (metaFound || (m_core->isOfflineGenerator() && !packageHash.isEmpty())) {
const QString repoUrl = metadata.repository.url().toString();
addFileTaskItem(QString::fromLatin1("%1/%2/%3meta.7z").arg(repoUrl, packageName, packageVersion),
metadata.directory + QString::fromLatin1("/%1-%2-meta.7z").arg(packageName, packageVersion),