diff options
author | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2017-08-28 14:25:27 +0300 |
---|---|---|
committer | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2017-11-13 14:50:07 +0000 |
commit | 1f3eded578314fb903bf50447d614fd314bd0eec (patch) | |
tree | ddf8f4b80dab5386c8c3f881c46b940173e3c17a /tools | |
parent | ee24c7aefce6acbcac7a51f7c8c53c84ecdc7eca (diff) |
Allow comparing non-numeric versions
Changes:
- Improve KDUpdater::compareVersion method;
- Add tst_CompareVersion test.
Task-number: QTIFW-948
Change-Id: If64f807cfb04e56d2bdd5fa250f456631df3f239
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/common/repositorygen.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/common/repositorygen.cpp b/tools/common/repositorygen.cpp index 1c4a877c0..908020ea4 100644 --- a/tools/common/repositorygen.cpp +++ b/tools/common/repositorygen.cpp @@ -481,7 +481,10 @@ PackageInfoVector QInstallerTools::createListOfPackages(const QStringList &packa PackageInfo info; info.name = it->fileName(); info.version = packageElement.firstChildElement(QLatin1String("Version")).text(); - if (!QRegExp(QLatin1String("[0-9]+((\\.|-)[0-9]+)*")).exactMatch(info.version)) { + // Version cannot start with comparison characters, be an empty string + // or have whitespaces at the beginning or at the end + if (!QRegExp(QLatin1String("(?![<=>\\s]+)(.+)")).exactMatch(info.version) || + (info.version != info.version.trimmed())) { if (ignoreInvalidPackages) continue; throw QInstaller::Error(QString::fromLatin1("Component version for \"%1\" is invalid! <Version>%2</Version>") |