summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Update CLI wording when component is not foundKatja Marttila2024-04-221-1/+1
| | | | | | | | | When trying to install or update component which is not found, a warning is dispayed. Changed the wording so that the texts fits both to update and install commands. Change-Id: I06c58624fc33586f64a2c63768690ab431e661e8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix occasional crash in install phaseKatja Marttila2024-04-091-0/+5
| | | | | | | | | | | Progress information is printed using same static instance of the coordinator by different operations. The operation object pointer was saved as key to QHash so that progress could be tracked. This has caused problems in installer as QHash insert occasionally caused segmentation fault. Fixed so that the progress information is no longer tracked based on operation object pointer, instead object name is used. Task-number: QTIFW-3314 Change-Id: Ic4007f226321e109109006c5c89415308920c614 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix maintenance tool register path parametersKatja Marttila2024-03-281-3/+7
| | | | | | | | | | | In Windows, maintenance tool is written to registry. 'Add or remove' program in Windows settings uses the registry, and maintenancetool can be started using the settings. Fixing the maintenancetool parameters so that selecting 'Modify' will open the maintenancetool in packagemanager mode, and 'Uninstall' will open the maintenancetool in uninstaller mode. Change-Id: Ib1e8c80132f6e2eb2f8cfa22910b4ad1ca696f06 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add possibility to add additional license text to CLIKatja Marttila2024-03-111-0/+24
| | | | | | | | | | | | Developer can override productkeycheck, there can be cases that developer wants to show some additional license text in CLI before accepting the licenses. The license text can be accepted or rejected by CLI command Accept/Reject, or by using --accept-licenses switch for non-interactive acceptance. Task-number: QTIFW-3319 Change-Id: I60e1ea36cf3f7f98af62c06c2535342003ceb9a6 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* CLI: Perform commands primarily from default repositoriesKatja Marttila2024-03-051-0/+129
| | | | | | | | | | | | | | | | | | Especially in installers which contains huge amount of repositories, it takes a long time to perform commands from CLI. If the repositories are filtered using categories, it saves a lot of time if the components to install/update etc. are tried to install/update from the defaultly selected repository categories. Assuming that the component is found from the defaultly selected repositories. If the component is not found from defaultly selected repository categories, then all categories are searched for the component. Implemented also a filter logic, where the components to install are searched earlier, if the component is not found then we can exit early. Task-number: QTIFW-3251 Change-Id: I1274b5f56dbff293554cb21839a8cea63a7d2dcc Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Move non-ui related functionality to coreKatja Marttila2024-02-231-4/+15
| | | | | | | | We need to access the core functionality despite of what user interface is used. Change-Id: I6c4c7e8526ff24a479128061aa40fba66e61660c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Enable component script postload setting per repositoryKatja Marttila2023-10-161-2/+2
| | | | | | | | | | | | | | This is a custom requirement for Qt Online Installer. Qt Online Installer has a huge amount of scripts to be evaluated. Most of the scripts don't need an evaluation unless those are installed. Skipping the evaluation of scripts has quite significant performance impact. As the postLoad setting in component level is a big task, enabling support for Qt Online Installer to set the postLoad value to scripts per repository. Task-number: QTIFW-3173 Change-Id: If37d7ff39ad07ee56e9a9559c837966c23d76d6e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Evaluate component aliases only for command line installer runsArttu Tarkiainen2023-10-021-0/+4
| | | | | | | | | | Return early from building the component aliases for non-CLI runs, to save some time from the metadata evaluation phase. The aliases are currently only usable from installer's CLI. Change-Id: Id8acde1b8353f498e3dfd0bd69156b17de245105 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Update terminology for dependency properties for aliasesArttu Tarkiainen2023-09-291-2/+2
| | | | | | | | | Change "Requires" to "Required" and use plural form for the dependency properties, to be more uniform with the dependency properties for components. Change-Id: Iccb36701bc32ebafd27914272225ad1615c5f9fa Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix allowing selecting an alias depending on unstable alias for installArttu Tarkiainen2023-09-291-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | For the sanity check calculations, all component aliases are manually selected to detect possible errors in packaging preventing installing of an alias. As the order of install for selected aliases is undefined, in some cases the installer did not detect that an alias requires an unstable alias. Consider an example scenario: * aliasA -> requires aliasB * aliasB -> requires aliasC * aliasC -> missing from installer The unstable status is set the first time we query for the required aliases of an alias, so the case for "ReferenceToUnstable" could go amiss if the required aliases list for "aliasA" was populated before for "aliasB". Fix by populating the required aliases and components in the order of the alias dependency graph. Change-Id: Id2fc9e3e1b315f5be98ca8915a0938abad1a2eb5 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add support for optional alias dependenciesArttu Tarkiainen2023-09-291-1/+2
| | | | | | | | | | | | In addition to RequiresComponent and RequiresAlias, introduce new OptionalComponent and OptionalAlias properties for component aliases. The new properties are used to declare optional requirements for aliases, which do not cause the declaring alias to become unstable in case the referred component or alias is missing from the installer. Task-number: QTIFW-3166 Change-Id: I43c8cd08099e879180ec7e028b55836750c727bd Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix busy indicator in Welcome screenKatja Marttila2023-09-251-1/+0
| | | | | | | | The progress did not work correctly yet in all steps. Task-number: QTIFW-3068 Change-Id: Id33f92020dcee792f35a45a3459473535404267e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add support for component aliasesArttu Tarkiainen2023-09-141-0/+99
| | | | | | | | | | | | | | | | | | Introduce concept of component aliases, which act as an alternative way for referring a set of related components. Component aliases are declared in an alias definition file, which is included to the created installer's binary layout as a resource. The file lists the available aliases, including metadata - such as name, version, and description - and the list of components and other aliases the alias requires. Aliases can be referred only from the CLI for the time being, with the supported commands 'install' and 'search'. Task-number: QTIFW-2978 Change-Id: I281f171cc7d932ce496051d7090ae169a4709eec Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix deprecated QVariant usageKatja Marttila2023-08-231-1/+1
| | | | | | | | | Also adding tests for UpdateOperations which used the deprecated QVariant functions Task-number: QTIFW-3077 Change-Id: I5b6b975631b4d0380511f614b0cad1f90a4849e8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Show progress on Welcome screenKatja Marttila2023-06-191-0/+1
| | | | | | | | | | Cache integrity checking takes some time in Windows and progressbar showed nothing. This caused an illusion that installer did nothing. Adding a busy indicator to progress bar. Task-number: QTIFW-3068 Change-Id: I1c685bf1e2ac4d2fca5db49054f7369d90f24480 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Adapt to QTextCodec changesChristian Stenger2023-06-061-2/+4
| | | | | | Task-number: QTIFW-1829 Change-Id: Iad99b41ec67b0d4c64623da04fff65a737f46ff2 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix delaration orderKatja Marttila2023-06-061-16/+16
| | | | | | | To get rid of [-Wreorder] warnings Change-Id: I2b0b071100eeb1830017da2913b62c00a18823bd Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix deprecated QScopedPointer take() function usageKatja Marttila2023-06-061-3/+3
| | | | | | | | | | QScopedPointer function take() is deprecated since 6.1. Fixed by using std::unique_ptr instead Task-number: QTIFW-1829 Change-Id: I7a0c0167044dedf2f520fffc97a8f7d2a1e72371 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix endl call in macOsKatja Marttila2023-05-291-1/+1
| | | | | | Task-number: QTIFW-1829 Change-Id: I8ac001416331493a7bdc90cdeaafca034e0bbbd7 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix admin rights handling during installer/updater/uninstaller runsArttu Tarkiainen2023-05-221-21/+20
| | | | | | | | | | | | | | | | | | The installer.gainAdminRights() and installer.dropAdminRights() methods are invokable from the scripting API. During installing, updating or uninstalling components, installer does it's own decision making to request and drop admin rights on-demand, but this could be overridden with the aforementioned methods. This was not taken into account, instead it was only checked if admin rights were gained in the context of the calling method. Fix by checking if the admin rights were present at the start of the installer, or if they were requested by anyone during installation. Task-number: QTIFW-2929 Change-Id: Ie4f6fc0ac746183b00f460a2e60c57c2eae9808c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* MT: Fix segfault after repository category fetchArttu Tarkiainen2023-05-121-0/+4
| | | | | | | | | | | | | | | | | | | | At the end of calculating components to install or uninstall, the check states of the components are updated in the model. The updateComponentInstallActions() asks both installer and uninstaller calculators for resolved components, but these may not be valid after new repository categories are fetched, and the component model is reset. This would result in dereferencing invalid Component pointers in some cases. The root cause was that the other calculator was not quaranteed to be cleared when another requested updating the check states. Fix by clearing both calculators before full recalculation occurs. Also clear the calculators when the component environment is reset, for correctness and to avoid bumping into the similar issue elsewhere in the code. Change-Id: Ide6a6188b9a19f4680cd79b55dcc842bbe98e174 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Unify handling of processes to close for 'updating' componentsArttu Tarkiainen2023-04-211-37/+0
| | | | | | | | | | | | | | | | | | | 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 <katja.marttila@qt.io>
* Merge remote-tracking branch 'origin/4.5' into masterKatja Marttila2023-03-141-1/+1
|\ | | | | | | Change-Id: I486d6f3f6fbdbfe1b92ccff918aaf0fe72aa2fc8
| * Fix updating of install action states for componentsArttu Tarkiainen2023-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The states were only updated at the end of PackageManagerCore ::recalculateAllComponents() method - the method calls: PackageManagerCore::calculateComponentsToInstall() and PackageManagerCore::calculateComponentsToUninstall() functions in that order, and both emit signals indicating the finishing of the calculation. Any install script connecting to these signals that relies on the correct state of the install actions for the components would work incorrectly, as the state was not updated to reflect the calculation result yet. Fix by updating the install action state in both functions before emitting their finished signals. Also rename the function to better distinguish its purpose from updating the check state of the components. Task-number: QTIFW-2976 Change-Id: I67cd88478c39215ec124a5451c1f29a63cb1c82c Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Check sha1 checksum per repositoryKatja Marttila2023-02-091-29/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Updates.xml contains Checksum variable which can be set to false to skip the archives checksum verification. The variable was read from one arbitrary Updates.xml file and that was used in all downloads. Fixed so that the checksum is read per Updates.xml. This change also speeds up the component generation phase as it no longer needs to read Updates.xml file. Task-number: QTIFW-2805 Task-number: QTIFW-2928 Change-Id: Id28dd370ef200aec67cb85cbbc1d08d925b43c21 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add common base class for the installer calculator classesArttu Tarkiainen2023-02-081-7/+7
| | | | | | | | | | | | | | | | As the classes already share similar features and public API, it would make sense to inherit a common abstract class to define the interface. Change-Id: I7ed278b1b049b7ec12c4401e55fdf39306b0ab85 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Merge remote-tracking branch 'origin/4.5'Arttu Tarkiainen2023-01-271-39/+10
|\| | | | | | | Change-Id: I07baba6a0e64b6022e6a933708e199551be7dd2f
| * Support detecting invalid dependency resolutions on component selectionArttu Tarkiainen2023-01-261-33/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IFW could already previously detect circular and missing dependencies by running a precheck calculation when building the component tree. However, there can be also cases of where the user selection results in unsolvable changes to components. One such case was the erroneous possibility to uninstall a component marked with ForcedInstallation, if any of its dependencies was checkable and the user unselected it for uninstallation. Add support for reacting to such errors in the component tree view, displaying a message box about the invalid dependency resolvation error, and blocking further navigation until the component selection passes the dependency calculations. Also attempt some refactoring the related code to simplify the different call sequences resulting in recalculation of the components. Change-Id: I9dc78f858bd4be7932f89f8e14bbfd97fbd3a0f6 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Adapt to changes in QHash and QSetChristian Stenger2023-01-171-2/+4
| | | | | | | | | | | | Task-number: QTIFW-1829 Change-Id: I5f062ae4c6389aba57b1de6f0e1884b4cd301334 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Adapt to differences between Qt5 and Qt6Christian Stenger2022-12-161-1/+1
| | | | | | | | | | | | Task-number: QTIFW-1829 Change-Id: Ieae92a7736784784bc548433eda8b073b1a4b8f8 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Merge remote-tracking branch 'origin/4.5' into masterKatja Marttila2022-12-131-23/+6
|\| | | | | | | Change-Id: Id8121e6b4cdda23c8c44cf779e35dce8d9a28090
| * Fix replaced removal on updateKatja Marttila2022-12-011-7/+5
| | | | | | | | | | | | | | | | | | | | If component is replaced with a component which is installed as autodependency to other component, the replaced component was not uninstalled on update. Task-number: QTIFW-2887 Change-Id: Ibad04df765191f0e399c6f6020cdf081dba5d803 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
| * Cleanup installer calculator classesKatja Marttila2022-11-301-16/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As there are several optimizations done, the single click of component in component selection tree is not slow anymore. Cleaning the code so it is easier to maintain. Basically this revers commit a28cf55b5a5007c0dd952b3012c076d9da329f0f but as there are bug fixes made after that so pure revert could not be done. Task-number: QTIFW-2885 Change-Id: Id486d5dc68c42c31b4848cd19a1761bcfe242db6 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add test for essential content sha updateKatja Marttila2022-12-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | Also clearing the foundEssentialUpdate flag in clearAllComponentLists() function so that unit tests core status will match. As the unit tests are not done to fully cleared core the foundEssentialUpdate was set to true although the update was done and other components were installed. Task-number: QTIFW-2732 Change-Id: I9b6754595b4b20b1ddc95d7587d98474a6967add Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Fix clang and compiler warningsKatja Marttila2022-11-081-1/+2
| | | | | | | | | | | | | | | | Added const and reference to function names, removed unused variables etc. Change-Id: I5e3851c13ff3baf1884356198020fc86e69d69b4 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Use QFileInfo::exists() as that is documented to be fasterKatja Marttila2022-11-041-3/+3
| | | | | | | | | | Change-Id: I413669860334d96de684c1c32962a33166ac6c7c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add possibility to post load install scriptsKatja Marttila2022-11-041-4/+12
|/ | | | | | | | | | | This change adds attribute, postLoad, to existing <Script> -element. Using <Script postLoad="True"> will call the script loading and evaluation only to those components which are selected for install or update right before the components installation start. Task-number: QTIFW-2820 Change-Id: Ic1967d329cbb5de6a0216ff3f76cc2ede178db80 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Merge remote-tracking branch 'origin/4.4' into 4.5Arttu Tarkiainen2022-11-031-1/+1
|\ | | | | | | Change-Id: If99e84c5f6e6914f0d90770053ce6850e70ed403
| * Fix typo resulting in accessing wrong operation result containerArttu Tarkiainen2022-09-011-1/+1
| | | | | | | | | | | | | | Fortunately no reported issues yet that would have been caused by this. Change-Id: I0ee9cb368600f660eb7c048e8cf3df5d31e43b4f Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Macos: Fix maintenance tool install from repositoryKatja Marttila2022-11-011-0/+1
| | | | | | | | | | | | | | | | | | | | Maintenancetool can be either app bundle or executable itself. In case the maintenancetool is the executable itself, we need to create the app bundle in the code. Task-number: QTIFW-2856 Change-Id: Ib884cbd7d7f18b9503938114d56f3c396c8d3bd6 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | CLI: Add new '--cache-path' optionArttu Tarkiainen2022-10-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The option can be used to select the path for metadata cache without opening the installer's settings dialog. Add public PackageManagerCore::resetLocalCache() function and remove automatic initialization of the local cache in the private core class constructor, so we can control the timeline better. Also make PackageManagerCore::clearLocalCache() a regular member function as it does not need to be a Qt slot. Task-number: QTIFW-2810 Change-Id: Ia4a903026a10b90da16ba1b93fd3098a709f7ed7 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Allow generation and signing of MT in macosKatja Marttila2022-10-201-53/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously maintenance tool could be updated from online repository placing installerbase to repository and setting setInstallerBaseBinary() in install script. The maintenancetool app bundle was written in the code and installerbase placed under .app/Contents/MacOS/. This prevented the maintenancetool app bundle to be signed and notarized. Fixed so that the whole app bundle can be placed to repository. This does not break the signing nor notarization as the whole bundle is copied as it is. The setInstallerBaseBinary() is still needed in the install script so that the installer knows which bundle is the maintenance tool. Old way of updating maintenancetool still exists, if the installerbaseBinary does not contain the ending 'app' installer assumes that the maintenance tool is the executable itself instead of whole app bundle. This change also adds a new binarycreator switch --create-maintenancetool, which can be used in macos to create the app bundle for maintenance tool. Task-number: QTIFW-2750 Change-Id: I3483ddb815d035644e826559947f6f9de4af9361 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Fix user set metadata cache path not saved for maintenance toolArttu Tarkiainen2022-10-201-0/+3
| | | | | | | | | | | | | | | | | | Write the settings value to network.xml, with the rest of the user configurable settings. Task-number: QTIFW-2812 Change-Id: I90210ddb1426acf06215828dfb18dc65aa107e6e Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Add persistent metadata file cacheArttu Tarkiainen2022-10-141-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce GenericDataCache and Metadata classes for storing the fetched metadata files (Updates.xml and uncompressed files from the meta.7z archives) on local filesystem. The cache uses a checksum based dictionary to keep track of the cached metadata items, with the SHA1 sums of downloaded Updates.xml files being the keys to refer single metadata item. We still need to download all the Updates.xml files on each fetch to check if the cached metadata items are applicable for the current repositories. Update the Updates.xml files in auto-test data to have unique contents, otherwise there could be conflicts with identical test repositories, as the tests will also utilize the cache now. Also omit registering Repository type to the meta-object system in the class contructors, this is expensive as we construct objects from the class frequently, in the worst case hundreds of thousands times. PackageManagerCore already does the registering. Task-number: QTIFW-2621 Change-Id: Iee10ead68befd722ffe7f18ca48483d5a3666658 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Optimize retrieving components by nameArttu Tarkiainen2022-10-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PackageManagerCore::componentByName(const QString &name) -function is called repeatedly by the InstallerCalculator class and at minimum once for each install script, because we automatically inject a snippet which stores the return value of the function in the 'component' variable for the script context. Create a <name, component> hash once per each component model reset to make the lookups faster: * This avoids constructing a flat list of components and all their descendants again and again when calling the function. * The linear lookup from the component list is slow because it calls componentMatches() for each element until the satisfactory component was found or the list ends. * The average time complexity of the key lookup from the QHash is constant even for large hashes. Task-number: QTIFW-2790 Change-Id: I580d28f78ac6681d5bcbfbad970002b49de1a830 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Replace .vbs hack to update maintenance tool binary on WindowsArttu Tarkiainen2022-09-071-44/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do the replacing of the executable instead by: - The original MT renames itself to a temporary name - The new MT is renamed to the destination file name - The new MT is started as a detached process, it polls to delete the temporary MT (requires that the parent process exited) Introduce hidden options, cleanup-update and cleanup-update-only to start the maintenance tool in a mode for deleting the old binary. Also fix missing verbose messages on hard restart of maintenance tool after update. Due to QProcessWrapper::startDetached using a modified implementation of the wrapped class (QProcess) method, the detached process was started with a new console instead of inheriting the console of the parent process. Fix by adding a second variant of the QProcessWrapper::startDetached functions using the QProcess implementation. Task-number: QTIFW-2625 Change-Id: Iebc5b04befa1e79765217f93723f977556e03d90 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Merge remote-tracking branch 'origin/4.4' into masterKatja Marttila2022-08-301-7/+14
|\| | | | | | | Change-Id: I54ae9e455d055abf321ba5c7c02301a889ef7ee2
| * Uninstaller remove target directory if it is emptyYAMAMOTO Atsushi2022-08-251-7/+6
| | | | | | | | | | | | | | | | | | | | | | When RemoveTargetDir flag is set false, then uninstall.vbs stops with error. Pass to script the correct arguments. And remove the target directory only if it is empty. Task-number: QTIFW-884 Change-Id: I722bfffbecaa6f7f27e545af354649bf17f7a0ae Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * Uninstaller remove maintenancetool's data filesYAMAMOTO Atsushi2022-08-251-0/+8
| | | | | | | | | | | | | | | | | | | | maintenancetool create dat,ini,xml and txt files on installation. Remove these files on uninstallation. Task-number: QTIFW-884 Change-Id: I10a268678f1a4285f4a2fd6a749570f707f0dbc2 Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * Revert "Display progress for loading component install scripts"Katja Marttila2022-06-161-26/+4
| | | | | | | | | | | | | | | | | | This reverts commit a6f2df9ebdb965d38ea2c263e3b3bea17c7abffe. Reason for revert: This should go to master as this requires a long localization round and we need to keep 4.4 branch available for quick fixes Change-Id: I4d4eb27a8f1d791666392ec3249254f6b516205e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>