PluginSpec platform: More deterministic name for Linux

There is not even a guarantee that VERSION from os-release contains
"Linux" anywhere. Prepend "Linux" or "Unix" and add the version details
in parentheses instead.
Also remove unnecessary (and wrong) /etc/issues fallback.

Change-Id: I0457ad9e8cedeea35e0cad5ea8093652eb8428e1
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Eike Ziller
2014-07-11 11:32:57 +02:00
parent f0b2d6535e
commit 21fb7eb471

View File

@@ -1382,6 +1382,12 @@ static inline QString getPlatformName()
result += QLatin1String(" 10.") + QString::number(QSysInfo::MacintoshVersion - QSysInfo::MV_10_0); result += QLatin1String(" 10.") + QString::number(QSysInfo::MacintoshVersion - QSysInfo::MV_10_0);
return result; return result;
#elif defined(Q_OS_UNIX) #elif defined(Q_OS_UNIX)
QString base;
# ifdef Q_OS_LINUX
base = QLatin1String("Linux");
# else
base = QLatin1String("Unix");
# endif // Q_OS_LINUX
QFile osReleaseFile(QLatin1String("/etc/os-release")); // Newer Linuxes QFile osReleaseFile(QLatin1String("/etc/os-release")); // Newer Linuxes
if (osReleaseFile.open(QIODevice::ReadOnly)) { if (osReleaseFile.open(QIODevice::ReadOnly)) {
QString name; QString name;
@@ -1398,22 +1404,10 @@ static inline QString getPlatformName()
if (!name.isEmpty()) { if (!name.isEmpty()) {
if (!version.isEmpty()) if (!version.isEmpty())
name += QLatin1Char(' ') + version; name += QLatin1Char(' ') + version;
return name; return base + QLatin1String(" (") + name + QLatin1Char(')');
} }
} }
QFile issueFile(QLatin1String("/etc/issue")); // Older Linuxes return base;
if (issueFile.open(QIODevice::ReadOnly)) {
QByteArray issue = issueFile.readAll();
const int end = issue.lastIndexOf(" \\n");
if (end >= 0)
issue.truncate(end);
return QString::fromLatin1(issue).trimmed();
}
# ifdef Q_OS_LINUX
return QLatin1String("Linux");
# else
return QLatin1String("Unix");
# endif // Q_OS_LINUX
#elif defined(Q_OS_WIN) #elif defined(Q_OS_WIN)
QString result = QLatin1String("Windows"); QString result = QLatin1String("Windows");
switch (QSysInfo::WindowsVersion) { switch (QSysInfo::WindowsVersion) {