diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-05-14 14:58:25 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-06-04 03:14:49 +0000 |
commit | 83cc3b6b88e40353cd0e03e88a6fe1abeba038d5 (patch) | |
tree | 867f6909d05f49c3eb0b1825d20002f057b916a0 /src/libs/installer/metadatajob.cpp | |
parent | 88d85a78949194aafa67340d3afdbc90594f9064 (diff) |
Allow install other components if sha mismatches in metadata
Expanding commit "Add attribute to mark parts of install tree unstable."
This change will allow installing other components if some component
has sha mismatch.
Change-Id: I61202da95dc07ca3f1fe931cfe1fbbb053596f42
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/metadatajob.cpp')
-rw-r--r-- | src/libs/installer/metadatajob.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp index bd577fecf..e14032640 100644 --- a/src/libs/installer/metadatajob.cpp +++ b/src/libs/installer/metadatajob.cpp @@ -383,6 +383,16 @@ void MetadataJob::metadataTaskFinished() emit infoMessage(this, tr("Extracting meta information...")); foreach (const FileTaskResult &result, m_metadataResult) { const FileTaskItem item = result.value(TaskRole::TaskItem).value<FileTaskItem>(); + if (result.value(TaskRole::ChecksumMismatch).toBool()) { + QString mismatchMessage = tr("Checksum mismatch detected for \"%1\".") + .arg(item.value(TaskRole::SourceFile).toString()); + if (m_core->settings().allowUnstableComponents()) { + m_shaMissmatchPackages.append(item.value(TaskRole::Name).toString()); + qWarning() << mismatchMessage; + } else { + throw QInstaller::TaskException(mismatchMessage); + } + } UnzipArchiveTask *task = new UnzipArchiveTask(result.target(), item.value(TaskRole::UserRole).toString()); @@ -555,6 +565,7 @@ MetadataJob::Status MetadataJob::parseUpdatesXml(const QList<FileTaskResult> &re item.insert(TaskRole::UserRole, metadata.directory); item.insert(TaskRole::Checksum, packageHash.toLatin1()); item.insert(TaskRole::Authenticator, QVariant::fromValue(authenticator)); + item.insert(TaskRole::Name, packageName); m_packages.append(item); } } |