From 4aca17427af7af5b200a8f614a10a07630da5161 Mon Sep 17 00:00:00 2001 From: Christian Kandeler <christian.kandeler@nokia.com> Date: Thu, 20 Jan 2011 12:37:07 +0100 Subject: [PATCH] Maemo: Adapt package names so that OVI store will accept them. Task-number: QTCREATORBUG-3189 --- .../qt-maemo/maemopackagecreationstep.cpp | 24 ++++++++++++++----- .../qt-maemo/maemopackagecreationstep.h | 1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp index 801ce672cf7..62832ad5997 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp @@ -210,15 +210,17 @@ bool MaemoPackageCreationStep::createPackage(QProcess *buildProc) target->projectVersion(&error)); if (!error.isEmpty()) raiseError(tr("Packaging failed."), error); - const QString changesFileName = QFileInfo(pkgFileName) - .completeBaseName() + QLatin1String(".changes"); + const QString changesSourceFileName = QFileInfo(pkgFileName).completeBaseName() + + QLatin1String(".changes"); + const QString changesTargetFileName = replaceDots(QFileInfo(pkgFileName).completeBaseName()) + + QLatin1String(".changes"); const QString packageSourceDir = buildDirectory() + QLatin1String("/../"); const QString packageSourceFilePath = packageSourceDir + pkgFileName; const QString changesSourceFilePath - = packageSourceDir + changesFileName; + = packageSourceDir + changesSourceFileName; const QString changesTargetFilePath - = buildDirectory() + QLatin1Char('/') + changesFileName; + = buildDirectory() + QLatin1Char('/') + changesTargetFileName; QFile::remove(packageFilePath()); QFile::remove(changesTargetFilePath); if (!QFile::rename(packageSourceFilePath, packageFilePath()) @@ -408,7 +410,8 @@ QString MaemoPackageCreationStep::packageFilePath() const if (version.isEmpty()) return QString(); return buildDirectory() % '/' - % packageFileName(buildConfiguration()->target()->project(), version); + % packageFileName(buildConfiguration()->target()->project(), + replaceDots(version)); } bool MaemoPackageCreationStep::isPackagingEnabled() const @@ -517,8 +520,11 @@ void MaemoPackageCreationStep::checkProjectName() QString MaemoPackageCreationStep::packageName(const ProjectExplorer::Project *project) { QString packageName = project->displayName().toLower(); - const QRegExp legalLetter(QLatin1String("[a-z0-9+-.]"), Qt::CaseSensitive, + + // We also replace dots, because OVI store chokes on them. + const QRegExp legalLetter(QLatin1String("[a-z0-9+-]"), Qt::CaseSensitive, QRegExp::WildcardUnix); + for (int i = 0; i < packageName.length(); ++i) { if (!legalLetter.exactMatch(packageName.mid(i, 1))) packageName[i] = QLatin1Char('-'); @@ -635,6 +641,12 @@ void MaemoPackageCreationStep::addSedCmdToRulesFile(QByteArray &rulesFileContent insertPos += mvCmd.length(); } +QString MaemoPackageCreationStep::replaceDots(const QString &name) +{ + QString adaptedName = name; + return adaptedName.replace(QLatin1Char('.'), QLatin1Char('_')); +} + const QLatin1String MaemoPackageCreationStep::CreatePackageId("Qt4ProjectManager.MaemoPackageCreationStep"); } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h index c126b447980..5c84d24af98 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h @@ -127,6 +127,7 @@ private: void addSedCmdToRulesFile(QByteArray &rulesFileContent, int &insertPos, const QString &desktopFilePath, const QByteArray &oldString, const QByteArray &newString); + static QString replaceDots(const QString &name); static const QLatin1String CreatePackageId; -- GitLab