From b2ef0926e3a151d3cf89f3eb8049f1a4050b8b20 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 26 Apr 2011 12:10:37 +0200 Subject: [PATCH] Maemo: Use devrootsh only on remote systems that have MAD developer. --- .../qt-maemo/abstractmaemodeploystep.cpp | 8 ------ .../qt-maemo/abstractmaemodeploystep.h | 1 - .../qt-maemo/maemoconfigtestdialog.cpp | 24 ++++++++++-------- .../qt-maemo/maemodeploybymountstep.cpp | 10 +++++--- .../qt-maemo/maemodeploymentmounter.cpp | 10 +++++--- .../qt-maemo/maemodeploymentmounter.h | 5 +++- .../qt-maemo/maemoglobal.cpp | 16 +++++++++--- .../qt4projectmanager/qt-maemo/maemoglobal.h | 3 ++- .../qt-maemo/maemopackageinstaller.cpp | 6 +++-- .../qt-maemo/maemopackageinstaller.h | 2 ++ .../qt-maemo/maemoremotecopyfacility.cpp | 5 +++- .../qt-maemo/maemoremotecopyfacility.h | 3 +++ .../qt-maemo/maemoremotemounter.cpp | 25 ++++++++++++------- .../qt-maemo/maemoremotemounter.h | 5 +++- .../qt-maemo/maemosshrunner.cpp | 6 ++--- .../maemouploadandinstalldeploystep.cpp | 3 ++- .../qt-maemo/maemousedportsgatherer.cpp | 7 +++--- .../qt-maemo/maemousedportsgatherer.h | 3 ++- 18 files changed, 88 insertions(+), 54 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.cpp index 925267b1472..2df294f2b8f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.cpp @@ -370,14 +370,6 @@ void AbstractMaemoDeployStep::handleRemoteStderr(const QString &output) } } -MaemoPortList AbstractMaemoDeployStep::freePorts(const MaemoDeviceConfig::ConstPtr &devConf) const -{ - const Qt4BuildConfiguration * const qt4bc = qt4BuildConfiguration(); - if (!qt4bc) - return MaemoPortList(); - return MaemoGlobal::freePorts(devConf, qt4bc->qtVersion()); -} - const Qt4BuildConfiguration *AbstractMaemoDeployStep::qt4BuildConfiguration() const { return static_cast(buildConfiguration()); diff --git a/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.h b/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.h index f53bb8d8fb7..31eeb838bcc 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/abstractmaemodeploystep.h @@ -93,7 +93,6 @@ protected: QString deployMountPoint() const; const Qt4BuildConfiguration *qt4BuildConfiguration() const; - MaemoPortList freePorts(const QSharedPointer &devConfig) const; QSharedPointer connection() const { return m_connection; } private slots: diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp index 14eaa1b1d33..4ec53b65ead 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoconfigtestdialog.cpp @@ -151,17 +151,20 @@ void MaemoConfigTestDialog::handleGeneralTestResult(int exitStatus) m_ui->testResultEdit->setPlainText(output); } - if (m_config->osVersion() == MaemoDeviceConfig::GenericLinux) { + switch (m_config->osVersion()) { + case MaemoDeviceConfig::Maemo5: + case MaemoDeviceConfig::Maemo6: + case MaemoDeviceConfig::Meego: + m_currentTest = MadDeveloperTest; + disconnect(m_testProcessRunner.data(), + SIGNAL(processOutputAvailable(QByteArray)), this, + SLOT(processSshOutput(QByteArray))); + m_testProcessRunner->run("test -x " + + MaemoGlobal::devrootshPath().toUtf8()); + break; + default: testPorts(); - return; } - - m_currentTest = MadDeveloperTest; - disconnect(m_testProcessRunner.data(), - SIGNAL(processOutputAvailable(QByteArray)), this, - SLOT(processSshOutput(QByteArray))); - const QByteArray command = "test -x " + MaemoGlobal::devrootshPath().toUtf8(); - m_testProcessRunner->run(command); } void MaemoConfigTestDialog::handleMadDeveloperTestResult(int exitStatus) @@ -208,8 +211,7 @@ void MaemoConfigTestDialog::handlePortListReady() void MaemoConfigTestDialog::testPorts() { if (m_config->freePorts().hasMore()) - m_portsGatherer->start(m_testProcessRunner->connection(), - m_config->freePorts()); + m_portsGatherer->start(m_testProcessRunner->connection(), m_config); else finish(); } diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploybymountstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploybymountstep.cpp index bcc0fae477f..2bba63522bf 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploybymountstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploybymountstep.cpp @@ -153,8 +153,8 @@ void AbstractMaemoDeployByMountStep::handleMountDebugOutput(const QString &outpu void AbstractMaemoDeployByMountStep::mount() { m_extendedState = Mounting; - m_mounter->setupMounts(connection(), mountSpecifications(), - freePorts(helper().cachedDeviceConfig()), qt4BuildConfiguration()); + m_mounter->setupMounts(connection(), helper().cachedDeviceConfig(), + mountSpecifications(), qt4BuildConfiguration()); } QString AbstractMaemoDeployByMountStep::deployMountPoint() const @@ -259,7 +259,8 @@ void MaemoMountAndInstallDeployStep::deploy() { const QString remoteFilePath = deployMountPoint() + QLatin1Char('/') + QFileInfo(packagingStep()->packageFilePath()).fileName(); - m_installer->installPackage(connection(), remoteFilePath, false); + m_installer->installPackage(connection(), helper().cachedDeviceConfig(), + remoteFilePath, false); } void MaemoMountAndInstallDeployStep::cancelInstallation() @@ -365,7 +366,8 @@ QList MaemoMountAndCopyDeployStep::mountSpecifications( void MaemoMountAndCopyDeployStep::deploy() { - m_copyFacility->copyFiles(connection(), m_filesToCopy, deployMountPoint()); + m_copyFacility->copyFiles(connection(), helper().cachedDeviceConfig(), + m_filesToCopy, deployMountPoint()); } void MaemoMountAndCopyDeployStep::handleFileCopied(const MaemoDeployable &deployable) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.cpp index 1c0616162ff..1b8601abdca 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.cpp @@ -67,15 +67,16 @@ MaemoDeploymentMounter::MaemoDeploymentMounter(QObject *parent) } void MaemoDeploymentMounter::setupMounts(const SshConnection::Ptr &connection, + const MaemoDeviceConfig::ConstPtr &devConf, const QList &mountSpecs, - const MaemoPortList &freePorts, const Qt4BuildConfiguration *bc) + const Qt4BuildConfiguration *bc) { ASSERT_STATE(Inactive); - m_freePorts = freePorts; m_mountSpecs = mountSpecs; m_connection = connection; - m_mounter->setConnection(m_connection); + m_devConf = devConf; + m_mounter->setConnection(m_connection, m_devConf); m_buildConfig = bc; connect(m_connection.data(), SIGNAL(error(Utils::SshError)), SLOT(handleConnectionError())); @@ -136,7 +137,7 @@ void MaemoDeploymentMounter::handleUnmounted() break; case UnmountingCurrentDirs: setState(GatheringPorts); - m_portsGatherer->start(m_connection, m_freePorts); + m_portsGatherer->start(m_connection, m_devConf); break; case UnmountingCurrentMounts: setState(Inactive); @@ -166,6 +167,7 @@ void MaemoDeploymentMounter::handlePortListReady() return; setState(Mounting); + m_freePorts = MaemoGlobal::freePorts(m_devConf, m_buildConfig->qtVersion()); m_mounter->mount(&m_freePorts, m_portsGatherer); } diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.h index 0de69105075..29ca346f21d 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploymentmounter.h @@ -45,6 +45,7 @@ namespace Utils { class SshConnection; } namespace Qt4ProjectManager { class Qt4BuildConfiguration; namespace Internal { +class MaemoDeviceConfig; class MaemoRemoteMounter; class MaemoUsedPortsGatherer; @@ -56,8 +57,9 @@ public: // Connection must be in connected state. void setupMounts(const QSharedPointer &connection, + const QSharedPointer &devConf, const QList &mountSpecs, - const MaemoPortList &freePorts, const Qt4BuildConfiguration *bc); + const Qt4BuildConfiguration *bc); void tearDownMounts(); signals: @@ -87,6 +89,7 @@ private: State m_state; QSharedPointer m_connection; + QSharedPointer m_devConf; MaemoRemoteMounter * const m_mounter; MaemoUsedPortsGatherer * const m_portsGatherer; MaemoPortList m_freePorts; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp index 4f1bf6b2d0f..c21c242f5e7 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp @@ -127,16 +127,26 @@ QString MaemoGlobal::devrootshPath() return QLatin1String("/usr/lib/mad-developer/devrootsh"); } -QString MaemoGlobal::remoteSudo(const QString &uname) +QString MaemoGlobal::remoteSudo(MaemoDeviceConfig::OsVersion osVersion, + const QString &uname) { - return uname == QLatin1String("root") ? QString() : devrootshPath(); + if (uname == QLatin1String("root")) + return QString(); + switch (osVersion) { + case MaemoDeviceConfig::Maemo5: + case MaemoDeviceConfig::Maemo6: + case MaemoDeviceConfig::Meego: + return devrootshPath(); + default: + return QLatin1String("sudo"); + } } QString MaemoGlobal::remoteCommandPrefix(MaemoDeviceConfig::OsVersion osVersion, const QString &userName, const QString &commandFilePath) { QString prefix = QString::fromLocal8Bit("%1 chmod a+x %2; %3; ") - .arg(remoteSudo(userName), commandFilePath, remoteSourceProfilesCommand()); + .arg(remoteSudo(osVersion, userName), commandFilePath, remoteSourceProfilesCommand()); if (osVersion != MaemoDeviceConfig::Maemo5 && osVersion != MaemoDeviceConfig::Maemo6) prefix += QLatin1String("DISPLAY=:0.0 "); return prefix; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h index 49dd226d09c..65ee14a539a 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h @@ -83,7 +83,8 @@ public: static QString homeDirOnDevice(const QString &uname); static QString devrootshPath(); - static QString remoteSudo(const QString &uname); + static QString remoteSudo(MaemoDeviceConfig::OsVersion, + const QString &uname); static QString remoteCommandPrefix(MaemoDeviceConfig::OsVersion osVersion, const QString &userName, const QString &commandFilePath); static QString remoteEnvironment(const QList &list); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.cpp index 1a3d8214ae5..9990a180a2b 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.cpp @@ -50,7 +50,8 @@ AbstractMaemoPackageInstaller::AbstractMaemoPackageInstaller(QObject *parent) AbstractMaemoPackageInstaller::~AbstractMaemoPackageInstaller() {} void AbstractMaemoPackageInstaller::installPackage(const SshConnection::Ptr &connection, - const QString &packageFilePath, bool removePackageFile) + const MaemoDeviceConfig::ConstPtr &devConf, const QString &packageFilePath, + bool removePackageFile) { Q_ASSERT(connection && connection->state() == SshConnection::Connected); Q_ASSERT(!m_isRunning); @@ -69,7 +70,8 @@ void AbstractMaemoPackageInstaller::installPackage(const SshConnection::Ptr &con const QString space = QLatin1String(" "); QString cmdLine = QLatin1String("cd ") + workingDirectory() + QLatin1String(" && ") - + MaemoGlobal::remoteSudo(m_installer->connection()->connectionParameters().userName) + + MaemoGlobal::remoteSudo(devConf->osVersion(), + m_installer->connection()->connectionParameters().userName) + space + installCommand() + space + installCommandArguments().join(space) + space + packageFilePath; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.h index 2b61f356d31..74aadb9d426 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackageinstaller.h @@ -45,6 +45,7 @@ class SshRemoteProcessRunner; namespace Qt4ProjectManager { namespace Internal { +class MaemoDeviceConfig; class AbstractMaemoPackageInstaller : public QObject { @@ -53,6 +54,7 @@ public: ~AbstractMaemoPackageInstaller(); void installPackage(const QSharedPointer &connection, + const QSharedPointer &devConfig, const QString &packageFilePath, bool removePackageFile); void cancelInstallation(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.cpp index df81b8c07ce..1b53ebc9703 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.cpp @@ -51,11 +51,13 @@ MaemoRemoteCopyFacility::MaemoRemoteCopyFacility(QObject *parent) : MaemoRemoteCopyFacility::~MaemoRemoteCopyFacility() {} void MaemoRemoteCopyFacility::copyFiles(const SshConnection::Ptr &connection, + const MaemoDeviceConfig::ConstPtr &devConf, const QList &deployables, const QString &mountPoint) { Q_ASSERT(connection->state() == SshConnection::Connected); Q_ASSERT(!m_isCopying); + m_devConf = devConf; m_deployables = deployables; m_mountPoint = mountPoint; @@ -137,7 +139,8 @@ void MaemoRemoteCopyFacility::copyNextFile() #endif QString command = QString::fromLatin1("%1 mkdir -p %3 && %1 cp -r %2 %3") - .arg(MaemoGlobal::remoteSudo(m_copyRunner->connection()->connectionParameters().userName), + .arg(MaemoGlobal::remoteSudo(m_devConf->osVersion(), + m_copyRunner->connection()->connectionParameters().userName), sourceFilePath, d.remoteDir); emit progress(tr("Copying file '%1' to directory '%2' on the device...") .arg(d.localFilePath, d.remoteDir)); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.h b/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.h index c61ea7f8a19..0a9de3a26e2 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotecopyfacility.h @@ -47,6 +47,7 @@ class SshRemoteProcessRunner; namespace Qt4ProjectManager { namespace Internal { +class MaemoDeviceConfig; class MaemoRemoteCopyFacility : public QObject { @@ -56,6 +57,7 @@ public: ~MaemoRemoteCopyFacility(); void copyFiles(const QSharedPointer &connection, + const QSharedPointer &devConf, const QList &deployables, const QString &mountPoint); void cancel(); @@ -77,6 +79,7 @@ private: void setFinished(); QSharedPointer m_copyRunner; + QSharedPointer m_devConf; QList m_deployables; QString m_mountPoint; bool m_isCopying; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp index 2165b65875d..689874f26a0 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp @@ -63,10 +63,12 @@ MaemoRemoteMounter::~MaemoRemoteMounter() killAllUtfsServers(); } -void MaemoRemoteMounter::setConnection(const SshConnection::Ptr &connection) +void MaemoRemoteMounter::setConnection(const SshConnection::Ptr &connection, + const MaemoDeviceConfig::ConstPtr &devConf) { ASSERT_STATE(Inactive); m_connection = connection; + m_devConf = devConf; } void MaemoRemoteMounter::setBuildConfiguration(const Qt4BuildConfiguration *bc) @@ -121,10 +123,11 @@ void MaemoRemoteMounter::unmount() } QString remoteCall; + const QString remoteSudo = MaemoGlobal::remoteSudo(m_devConf->osVersion(), + m_connection->connectionParameters().userName); for (int i = 0; i < m_mountSpecs.count(); ++i) { remoteCall += QString::fromLocal8Bit("%1 umount %2 && %1 rmdir %2;") - .arg(MaemoGlobal::remoteSudo(m_connection->connectionParameters().userName), - m_mountSpecs.at(i).mountSpec.remoteMountPoint); + .arg(remoteSudo, m_mountSpecs.at(i).mountSpec.remoteMountPoint); } m_umountStderr.clear(); @@ -183,8 +186,8 @@ void MaemoRemoteMounter::stop() void MaemoRemoteMounter::startUtfsClients() { const QString userName = m_connection->connectionParameters().userName; - const QString chmodFuse = MaemoGlobal::remoteSudo(userName) - + QLatin1String(" chmod a+r+w /dev/fuse"); + const QString chmodFuse = MaemoGlobal::remoteSudo(m_devConf->osVersion(), + userName) + QLatin1String(" chmod a+r+w /dev/fuse"); const QString chmodUtfsClient = QLatin1String("chmod a+x ") + utfsClientOnDevice(); const QLatin1String andOp(" && "); @@ -199,17 +202,21 @@ void MaemoRemoteMounter::startUtfsClients() return; } + const QString remoteSudo + = MaemoGlobal::remoteSudo(m_devConf->osVersion(), userName); const MaemoMountSpecification &mountSpec = mountInfo.mountSpec; const QString mkdir = QString::fromLocal8Bit("%1 mkdir -p %2") - .arg(MaemoGlobal::remoteSudo(userName), mountSpec.remoteMountPoint); + .arg(remoteSudo, mountSpec.remoteMountPoint); const QString chmod = QString::fromLocal8Bit("%1 chmod a+r+w+x %2") - .arg(MaemoGlobal::remoteSudo(userName), mountSpec.remoteMountPoint); + .arg(remoteSudo, mountSpec.remoteMountPoint); QString utfsClient = QString::fromLocal8Bit("%1 -l %2 -r %2 -b %2 %4 -o nonempty") .arg(utfsClientOnDevice()).arg(mountInfo.remotePort) .arg(mountSpec.remoteMountPoint); - if (mountInfo.mountAsRoot) - utfsClient.prepend(MaemoGlobal::remoteSudo(userName) + QLatin1Char(' ')); + if (mountInfo.mountAsRoot) { + utfsClient.prepend(MaemoGlobal::remoteSudo(m_devConf->osVersion(), + userName) + QLatin1Char(' ')); + } QLatin1String seqOp("; "); remoteCall += seqOp + MaemoGlobal::remoteSourceProfilesCommand() + seqOp + mkdir + andOp + chmod + andOp + utfsClient; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h index 0d1e42c1590..0b5769e495f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.h @@ -53,6 +53,7 @@ class SshRemoteProcess; namespace Qt4ProjectManager { class Qt4BuildConfiguration; namespace Internal { +class MaemoDeviceConfig; class MaemoUsedPortsGatherer; class MaemoRemoteMounter : public QObject @@ -63,7 +64,8 @@ public: ~MaemoRemoteMounter(); // Must already be connected. - void setConnection(const QSharedPointer &connection); + void setConnection(const QSharedPointer &connection, + const QSharedPointer &devConf); void setBuildConfiguration(const Qt4BuildConfiguration *bc); void addMountSpecification(const MaemoMountSpecification &mountSpec, @@ -120,6 +122,7 @@ private: }; QSharedPointer m_connection; + QSharedPointer m_devConf; QList m_mountSpecs; QSharedPointer m_mountProcess; QSharedPointer m_unmountProcess; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp index 37395add3a9..06bd163b8f1 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp @@ -208,7 +208,7 @@ void MaemoSshRunner::handleCleanupFinished(int exitStatus) emitError(tr("Initial cleanup failed: %1") .arg(m_cleaner->errorString())); } else { - m_mounter->setConnection(m_connection); + m_mounter->setConnection(m_connection, m_devConfig); unmount(); } } @@ -228,7 +228,7 @@ void MaemoSshRunner::handleUnmounted() } case PreMountUnmounting: setState(GatheringPorts); - m_portsGatherer->start(m_connection, m_freePorts); + m_portsGatherer->start(m_connection, m_devConfig); break; case PostRunCleaning: case StopRequested: { @@ -307,7 +307,7 @@ bool MaemoSshRunner::isConnectionUsable() const void MaemoSshRunner::setState(State newState) { if (newState == Inactive) { - m_mounter->setConnection(SshConnection::Ptr()); + m_mounter->setConnection(SshConnection::Ptr(), m_devConfig); m_portsGatherer->stop(); if (m_connection) { disconnect(m_connection.data(), 0, this, 0); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemouploadandinstalldeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemouploadandinstalldeploystep.cpp index e7216ca94a9..08de9e6bead 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemouploadandinstalldeploystep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemouploadandinstalldeploystep.cpp @@ -155,7 +155,8 @@ void AbstractMaemoUploadAndInstallStep::handleUploadFinished(const QString &erro + QFileInfo(packagingStep()->packageFilePath()).fileName(); m_extendedState = Installing; writeOutput(tr("Installing package to device...")); - m_installer->installPackage(connection(), remoteFilePath, true); + m_installer->installPackage(connection(), helper().cachedDeviceConfig(), + remoteFilePath, true); } } diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.cpp index 72b56adcdcf..80e022acf96 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.cpp @@ -48,7 +48,7 @@ MaemoUsedPortsGatherer::MaemoUsedPortsGatherer(QObject *parent) : MaemoUsedPortsGatherer::~MaemoUsedPortsGatherer() {} void MaemoUsedPortsGatherer::start(const Utils::SshConnection::Ptr &connection, - const MaemoPortList &portList) + const MaemoDeviceConfig::ConstPtr &devConf) { if (m_running) qWarning("Unexpected call of %s in running state", Q_FUNC_INFO); @@ -64,8 +64,9 @@ void MaemoUsedPortsGatherer::start(const Utils::SshConnection::Ptr &connection, SLOT(handleRemoteStdOut(QByteArray))); connect(m_procRunner.data(), SIGNAL(processErrorOutputAvailable(QByteArray)), SLOT(handleRemoteStdErr(QByteArray))); - const QString command = MaemoGlobal::remoteSudo(m_procRunner->connection()->connectionParameters().userName) - + QLatin1String(" lsof -nPi4tcp:") + portList.toString() + const QString command = MaemoGlobal::remoteSudo(devConf->osVersion(), + m_procRunner->connection()->connectionParameters().userName) + + QLatin1String(" lsof -nPi4tcp:") + devConf->freePorts().toString() + QLatin1String(" -F n |grep '^n' |sed -r 's/[^:]*:([[:digit:]]+).*/\\1/g' |sort -n |uniq"); m_procRunner->run(command.toUtf8()); m_running = true; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.h b/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.h index 236e0650eda..3fabbea6586 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemousedportsgatherer.h @@ -46,6 +46,7 @@ class SshRemoteProcessRunner; namespace Qt4ProjectManager { namespace Internal { +class MaemoDeviceConfig; class MaemoUsedPortsGatherer : public QObject { @@ -54,7 +55,7 @@ public: explicit MaemoUsedPortsGatherer(QObject *parent = 0); ~MaemoUsedPortsGatherer(); void start(const QSharedPointer &connection, - const MaemoPortList &portList); + const QSharedPointer &devConf); void stop(); int getNextFreePort(MaemoPortList *freePorts) const; // returns -1 if no more are left QList usedPorts() const { return m_usedPorts; }