From 16d73684f9537db19462f9b937961fb10a5ce6aa Mon Sep 17 00:00:00 2001 From: Arttu Tarkiainen Date: Tue, 18 Apr 2023 15:59:02 +0300 Subject: Unify handling of processes to close for 'updating' components There was behavioral mismatch of handling processes to stop for updates between GUI and CLI modes. For CLI, each command that would make changes to components would recursively check the installation directory for running processes early on, and block continuing if such processes were found. In addition to this, the component scripts may have requested to stop processes before performing component 'updates' (add/remove/update). For GUI, only the latter functionality was utilized, so remove the early checks from the CLI side to make the behavior uniform. Task-number: QTIFW-2927 Task-number: QTIFW-3009 Change-Id: I028e699c43ef4352593b49ccc8a927644916c41a Reviewed-by: Katja Marttila --- src/libs/installer/packagemanagercore.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/libs/installer/packagemanagercore.cpp') diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index b7d7d2a26..da5412dd7 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -2668,8 +2668,6 @@ void PackageManagerCore::listInstalledPackages(const QString ®exp) */ PackageManagerCore::Status PackageManagerCore::updateComponentsSilently(const QStringList &componentsToUpdate) { - if (d->runningProcessesFound()) - throw Error(tr("Running processes found.")); setUpdater(); ComponentModel *model = updaterComponentModel(); @@ -2804,9 +2802,6 @@ void PackageManagerCore::createAutoDependencyHash(const QString &component, cons */ PackageManagerCore::Status PackageManagerCore::uninstallComponentsSilently(const QStringList& components) { - if (d->runningProcessesFound()) - throw Error(tr("Running processes found.")); - if (components.isEmpty()) { qCDebug(QInstaller::lcInstallerInstallLog) << "No components selected for uninstallation."; return PackageManagerCore::Canceled; @@ -2845,8 +2840,6 @@ PackageManagerCore::Status PackageManagerCore::uninstallComponentsSilently(const PackageManagerCore::Status PackageManagerCore::removeInstallationSilently() { setCompleteUninstallation(true); - if (d->runningProcessesFound()) - throw Error(tr("Running processes found.")); qCDebug(QInstaller::lcInstallerInstallLog) << "Complete uninstallation was chosen."; if (!(d->m_autoConfirmCommand || d->askUserConfirmCommand())) { @@ -2896,9 +2889,6 @@ PackageManagerCore::Status PackageManagerCore::createOfflineInstaller(const QStr PackageManagerCore::Status PackageManagerCore::installSelectedComponentsSilently(const QStringList& components) { if (!isInstaller()) { - // Check if there are processes running in the install if maintenancetool is used. - if (d->runningProcessesFound()) - throw Error(tr("Running processes found.")); setPackageManager(); //Check that packages are not already installed @@ -3160,6 +3150,10 @@ bool PackageManagerCore::killProcess(const QString &absoluteFilePath) const } /*! + \deprecated [4.6] Maintenance tool no longer automatically checks for all running processes + in the installation directory for CLI runs. To manually check for a process to stop, use + \l {component::addStopProcessForUpdateRequest}{component.addStopProcessForUpdateRequest} instead. + Sets additional \a processes that can run when updating with the maintenance tool. @@ -3171,6 +3165,10 @@ void PackageManagerCore::setAllowedRunningProcesses(const QStringList &processes } /*! + \deprecated [4.6] Maintenance tool no longer automatically checks for all running processes + in the installation directory for CLI runs. To manually check for a process to stop, use + \l {component::addStopProcessForUpdateRequest}{component.addStopProcessForUpdateRequest} instead. + Returns processes that are allowed to run when updating with the maintenance tool. -- cgit v1.2.3