diff options
author | Katja Marttila <katja.marttila@qt.io> | 2023-01-31 15:57:22 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2023-02-09 07:36:56 +0200 |
commit | c9d7f2a3f72ced2dd576057b84bf03c6ece260af (patch) | |
tree | c3efe302ace3c4d544c9ea01b8d923332c921bb9 /src/libs/installer/packagemanagercore_p.cpp | |
parent | 399c010235bdb9079005930e125f301f53153808 (diff) |
Check sha1 checksum per repository
Updates.xml contains Checksum variable which can be set to false to
skip the archives checksum verification. The variable was read from one
arbitrary Updates.xml file and that was used in all downloads. Fixed so
that the checksum is read per Updates.xml. This change also speeds up
the component generation phase as it no longer needs to read Updates.xml
file.
Task-number: QTIFW-2805
Task-number: QTIFW-2928
Change-Id: Id28dd370ef200aec67cb85cbbc1d08d925b43c21
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index a4e5b185d..bde697b74 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -2826,7 +2826,7 @@ bool PackageManagerCorePrivate::fetchMetaInformationFromRepositories(DownloadTyp return m_repoFetched; } -bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChecksum, bool compressedRepository) +bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool compressedRepository) { if (!compressedRepository && m_updateSourcesAdded) return m_updateSourcesAdded; @@ -2857,34 +2857,6 @@ bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChe if (data->path().isEmpty()) continue; - if (parseChecksum) { - const QString updatesXmlPath = data->path() + QLatin1String("/Updates.xml"); - QFile updatesFile(updatesXmlPath); - try { - QInstaller::openForRead(&updatesFile); - } catch(const Error &e) { - qCWarning(QInstaller::lcInstallerInstallLog) << "Error opening Updates.xml:" - << e.message(); - setStatus(PackageManagerCore::Failure, tr("Cannot add temporary update source information.")); - return false; - } - - int line = 0; - int column = 0; - QString error; - QDomDocument doc; - if (!doc.setContent(&updatesFile, &error, &line, &column)) { - qCWarning(QInstaller::lcInstallerInstallLog).nospace() << "Parse error in file " - << updatesFile.fileName() << ": " << error << " at line " << line - << " col " << column; - setStatus(PackageManagerCore::Failure, tr("Cannot add temporary update source information.")); - return false; - } - - const QDomNode checksum = doc.documentElement().firstChildElement(QLatin1String("Checksum")); - if (!checksum.isNull()) - m_core->setTestChecksum(checksum.toElement().text().toLower() == scTrue); - } if (data->repository().isCompressed()) m_compressedPackageSources.insert(PackageSource(QUrl::fromLocalFile(data->path()), 2)); else |