summaryrefslogtreecommitdiffstats
path: root/src/sdk/installerbase.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Load and install translations as early as possibleKatja Marttila2021-06-171-45/+2
| | | | | | | | | | | | This will ensure that any early error messages are translated if there are any translations for them. Such as the already running instance string. As a result this means that a check if the installer is already running is done slightly later to allow the loading of the translations first before checking. Fixes: QTIFW-1888 Change-Id: I75ef22d98ca4de9a05e7dd485b5afed5652529bc Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Load control script also when using CLIKatja Marttila2021-06-161-12/+1
| | | | | | Task-number: QTIFW-2268 Change-Id: I61e5f7963a55dcdc25aff171523fe078af309785 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix translation loaded -signal when language defined in config.xmlKatja Marttila2021-06-081-0/+2
| | | | | | | | | IFW user can define the used language in config.xml. defaultTranslationsLoadedForLanguage -signal was not sent in that case. Task-number: QTIFW-2266 Change-Id: I8b5abb532b50982e0f6b845251462cc1fef99b9c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Emit signal after loading default translationsArttu Tarkiainen2021-02-111-0/+1
| | | | | | | | | This makes it easier to get the load order correct, if there are translations to be loaded for additional pages from vendor extensions to the internal C++ API. Change-Id: I9e10cfa7e1cbf25f87d998157436c44425403cac Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Allow disabling translation features with environment variableArttu Tarkiainen2020-08-261-2/+2
| | | | | | | | | | 'IFW_DISABLE_TRANSLATIONS' can be used to disable translation features with a value of '1', '0' or any other values are ignored. The variable is evaluated at the time of running qmake. Task-number: QTIFW-1911 Change-Id: I99c472eae4229b8add109fcf7f764f670909231d Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Add verbose levels and cleanup log categoriesKatja Marttila2020-08-241-24/+6
| | | | | | | | | Setting several verbose switches enables more logging and performs component checking. Also cleanup some logging categories and unify the rules. Task-number: QTIFW-1914 Change-Id: I9195f4bb02affaa87e66cf9023a3512e65e0645b Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Merge remote-tracking branch 'origin/3.2' into masterKatja Marttila2020-05-251-2/+11
|\ | | | | | | Change-Id: Icd1dbcfa7f6eef138aad5287a6dcdf7d061a7d70
| * Provide a means to use fixed translations for Qt and IFWAndy Shaw2020-03-261-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since building Qt statically and then IFW can be seen as a lot to do just to be able to provide a fixed translation for a Qt or IFW string then it is better to provide a means to override these translations. So if a translation is found inside :/translations_new then it will use this one instead of the one found at :/translations for Qt or IFW strings. This can be provided via the -r option when using binarycreator then. Change-Id: I007c45ff96ccf5d73b54a5df8a80a2a05c2f35c6 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
| * Add command line option to disable checking of free space on target3.2.2-rcArttu Tarkiainen2020-02-271-0/+3
| | | | | | | | | | | | | | | | | | | | Also move functionality to PackageManagerCore::checkAvailableSpace() for more convenient later usage, if we want to use this without starting the Wizard GUI. Task-number: QTIFW-1602 Change-Id: I4f2d3cc78bc542475fe9c51b9364b1b221098e4a Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Add short versions of CLI optionsArttu Tarkiainen2020-03-191-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add single or couple letter short options and two letter short commands. Single letter short options can be passed in a single joined form, for instance '-dg'. Also change CLI options constant string literals type to QLatin1String as we would have to use this as a wrapper anyway wherever the constants would be used, causing quite long and verbose statements. Task-number: QTIFW-1634 Change-Id: I17e80c9a657d934687d2b7e87fcecddffa1b9b21 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Perform headless commands without GUI dependencyKatja Marttila2020-03-121-361/+58
| | | | | | | | | | | | Task-number: QTIFW-1633 Change-Id: I207cd152a471fddd51c152223460f8a9873f4382 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Add command line option to start the installer binary as uninstallerArttu Tarkiainen2020-03-021-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add option "--uninstaller" to start the installer binary explicitly as uninstaller. This complements options "--updater" and "--manage-packages". Add convenience functions for setting and checking if the magic binary marker has been set by the user. Task-number: QTIFW-1639 Change-Id: Ie40ba9c56e09be079e309bca985b19a8a7bef7ef Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | CLI: decrease the amount of default debug printsKatja Marttila2020-02-201-9/+21
| | | | | | | | | | | | | | | | | | | | Debug prints can be suppressed or extended with logging rules. Make the default usage so that only relevant information will be shown to user, such as uninstall/install progress, server information, warning messages and package name, version and displayname. Change-Id: I09be754a36dd97530d75cdea3edb5fc77e67a856 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Enable optional targetDir argument on command line installationArttu Tarkiainen2020-02-171-28/+16
| | | | | | | | | | | | | | | | | | | | Try to use default target directory value from internal configuration when --targetDir option is not set. This affects usage of options --installDefault and --installPackages (when running as installer). Task-number: QTIFW-1608 Change-Id: Ieac709f6e3d7c539a3a1cb66dce8eb448b20dcfe Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Uninstall selected packages from command lineKatja Marttila2020-02-141-0/+9
| | | | | | | | | | | | | | | | | | | | Components can be uninstalled from CLI with --uninstallPackages package1,package2,... Replicates the same behavior as when removing from visual UI, so forced installation, virtual and components installed as autodependency cannot be uninstalled. Change-Id: Ibcd87b5ceb8e509c84c6944510c23e59b28dedb9 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Move CLI options from /sdk to /libs for access from installer extensionsKatja Marttila2020-02-131-2/+2
| | | | | | | | | | Change-Id: I657645f2126813a93bc38626fabf46deb4711791 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Use of QLoggingCategoryKatja Marttila2020-02-131-9/+23
| | | | | | | | | | | | | | | | The change enables easier filtering of log messages Change-Id: I769f7c163e20f34c37fa0fe2b0729867ffca5bcb Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Do not prompt admin query when command line interface is usedArttu Tarkiainen2020-02-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | If admin rights are needed, fail and require to install with sudo. This is how command line interfaces commonly behave. Add convenience functions for setting and checking if the installer is used from command line. Task-number: QTIFW-1598 Change-Id: Ib28d3be08254dade5d9b2d29da9232064f008eb4 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Enable command line default components installationArttu Tarkiainen2020-02-031-15/+28
| | | | | | | | | | | | | | | | | | | | Add --installDefault option to install components that are set to be checked by default and their respective dependencies. Do not do anything if the component tree does not have anything checked by default. Task-number: QTIFW-1583 Change-Id: I3825c7e797b102a8d6a65ae0e57bfe82fafef5e9 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Install selected packages from CLIKatja Marttila2019-12-041-0/+27
| | | | | | | | | | | | | | | | | | Also move targetDirWarning() from targetdirectorypage to packagemanager and move target directory check to checkTargetDir() function so that those are accessible also without UI. Change-Id: Ia38cc7e66bb542e6a60fea2c39cc3b80735564ef Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Update selected components from command lineKatja Marttila2019-11-221-2/+10
| | | | | | | | | | | | | | | | | | Selected components can be updated with --updatePackages <package_id>. If essential components are found, only the essential components are updated. Change-Id: I0eb8a8f5ca855af16eabd5f888cd9a0d5e933d84 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Merge remote-tracking branch 'origin/3.1' into masterKatja Marttila2019-11-201-6/+22
|\| | | | | | | Change-Id: Icc077e3757b84b2367b2a7dd9c1e389f6845365b
| * Add early prompt to run MaintenanceTool as admin when neededArttu Tarkiainen2019-11-141-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | Currently IFW does not support manipulating Windows Access Control Lists for files. If a user does not have reading permissions to installer.dat it will throw error on QInstaller::openForRead() before the wizard GUI is shown. At very least, add a MessageBox to prompt the user to run the executable again as administrator in such a case. Task-number: QTIFW-1392 Change-Id: I9e20c34b215ee697118af9c15a7e344f9cfc3c3f Reviewed-by: Katja Marttila <katja.marttila@qt.io>
| * Fix --no-proxy option in WindowsKatja Marttila2019-10-141-5/+5
| | | | | | | | | | | | Task-number: QTIFW-1445 Change-Id: Iad02ecda0d5b27c3c9719f7c57e090d53a249be6 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | List available packages from command lineKatja Marttila2019-11-191-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | Available packages can be listed from command line with --listPackages <regexp>. All packages can be listed with --listPackages . . By default package id, name and version are listed in output. In case you want to see all the packet information use logging category --logging-rules ifw.package.*=true. See --help for more detailed information on how to use logging category. Change-Id: Ic0815d2274643e3fb3f0670ed9036fe765805c0e Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Refactor code to functions which command line interface needsKatja Marttila2019-11-191-7/+11
| | | | | | | | | | | | | | | | These are needed in multiple places while implementing CLI so created common functions to avoid code repeat. Change-Id: I2b30bedf5de838211f48bd1669c59ff3a17f640e Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | List installed packages from command lineKatja Marttila2019-10-181-2/+10
|/ | | | | Change-Id: Ic8efe08be347f3a208e37458936f8316d66ca916 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Replace 0 with nullptrKatja Marttila2019-01-091-3/+3
| | | | | | | Prevents a lot of warnings seen in QtCreator Change-Id: I63bf95aca68a04fc9fd0eecbe29c63e9b9c47efd Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Do not reset core data values in restartKatja Marttila2018-10-161-10/+2
| | | | | | | | | | | | | Do not reset core data values as that removes all data set using setValue() which are needed. Restart is called when pressing 'Restart' after maintenancetool finish page or when changing settings from Settings Dialog. Task-number QTIFW-504 Change-Id: I0713b0371811957b93623433d26f0b10e4c8fb12 Reviewed-by: Janne Anttila <janne.anttila@qt.io> Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Enable building IFW with Squish supportKatja Marttila2018-02-121-0/+18
| | | | | | | | | | | | Change enables building IFW with Squish support by passing SQUISH_PATH to qmake when building IFW. Also enables runtime change of Squish port with command line option --squish-port <port number>. If no port is set, default port 11233 is used to attach to Squish. Change-Id: I4821b360031df66968d3592886c2e45598e1b097 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Antti Kokko <antti.kokko@qt.io> Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
* Fix usesSystemConfiguration usageKatja Marttila2018-01-301-3/+5
| | | | | | | | As usesSystemConfiguration() is introduced in Qt 5.8, use it only when compiling with Qt 5.8 or higher. IFW still supports version 5.6.2. Change-Id: Ib39f38a452624a84627ad53c9941154bc0fd7929 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Set correct proxy typeKatja Marttila2018-01-251-2/+7
| | | | | | | | | From Qt 5.8 onwards system proxy might be used by default. Checked if that is the case and updated settings accordingly. Task-number: QTBUG-65143 Change-Id: Ibe8f3173636c57f73addcc576afdd37a68ec1d03 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* make .ts file naming follow the usual patternOswald Buddenhagen2018-01-031-1/+1
| | | | | | | | this makes it easier to integrate ifw into the surrounding infrastructure. Change-Id: I7918830b7a6c29d8556911eec83a3b6530478d84 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Check license when doing silentUpdateKatja Marttila2017-05-151-0/+3
| | | | | | Task-number: QTAUTO-428 Change-Id: Ib3d56b59a12d4c7091a6abdbc5231ed5dbe2c3b1 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Give warning and exit install if invalid URL given for 7z repositoryKatja Marttila2017-05-101-0/+6
| | | | | | Task-number: QTIFW-966 Change-Id: I13cf001771d30e0737348d33183e329e4c1d2070 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Merge remote-tracking branch 'origin/2.0'Katja Marttila2017-01-301-17/+12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Changelog dist/config/config.xml dist/packages/org.qtproject.ifw.binaries/meta/package.xml dist/packages/org.qtproject.ifw/meta/package.xml installerfw.pri src/libs/installer/lib7z_create.h src/libs/kdtools/kdgenericfactory.cpp src/libs/kdtools/kdgenericfactory.h src/libs/kdtools/kdupdaterapplication.cpp src/libs/kdtools/kdupdaterapplication.h src/libs/kdtools/kdupdaterupdatesourcesinfo.cpp src/libs/kdtools/kdupdaterupdatesourcesinfo.h src/libs/kdtools/localpackagehub.cpp src/libs/kdtools/localpackagehub.h src/libs/kdtools/updatefinder.cpp src/libs/kdtools/updatefinder.h tools/binarycreator/resources/mkdmg.sh Change-Id: Iab2513f549832d2e750e77131c673457ab265af4
| * License header update to GPL-EXCEPTKatja Marttila2017-01-261-17/+12
| | | | | | | | | | Change-Id: I6426c4e8f932cf26c6c638dec18d0c12e22972d1 Reviewed-by: Janne Anttila <janne.anttila@theqtcompany.com>
* | Introduces new --silentUpdate command line optionKatja Marttila2016-11-151-31/+41
| | | | | | | | | | | | | | | | | | With this feature one can update all installed components silently with maintenancetool by passing --silentUpdate parameter Change-Id: If31d37ce24e794775c2fe47b603259da133c9ee7 Task-number: QTIFW-906 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | allow installing compressed packagesKatja Marttila2016-11-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces new feature to add 7z packages to be installed. Packages must be installer repositories (created with repogen), compressed to 7z file and named as qtbsp or 7z. Selecting compressed package is done either with button in component selection page or with --installCompressedRepository parameter given to installer or to maintenancetool. Button will not be created by default. If you want to show the button either build IFW with DEFINES+=INSTALLCOMPRESSED or enable the button in control script with allowCompressedRepositoryInstall() in ComponentSelectionPageCallback Task-number: QTIFW-886 Change-Id: Ia060092c348991d5195393b7dc154205f8bf92a5 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Automatically load all fonts in 'fonts/' resourcesFrerich Raabe2016-11-081-0/+11
| | | | | | | | | | | | | | ...such that they can be used in style sheets. Change-Id: I677be428972dbfe9385cf438b0ccf2f0f3fcd822 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* | Merge remote-tracking branch 'origin/2.0'Katja Marttila2016-06-211-2/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Changelog dist/config/config.xml dist/packages/org.qtproject.ifw.binaries/meta/package.xml dist/packages/org.qtproject.ifw/meta/package.xml installerfw.pri src/libs/7zip/7zip.pro src/libs/7zip/win/CPP/7zip/UI/Common/Update.cpp src/libs/installer/component.cpp src/libs/installer/lib7z_facade.cpp src/libs/installer/packagemanagercore.cpp src/libs/installer/proxycredentialsdialog.h src/sdk/translations/ja.ts tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp tests/auto/installer/scriptengine/tst_scriptengine.cpp tests/auto/installer/settings/tst_settings.cpp Change-Id: I3bb98b8490b3c3eb7f664c1abb7417155b5430b2
| * add missing tr for "AlreadyRunning" messageboxKatja Marttila2016-05-191-2/+2
| | | | | | | | | | | | Change-Id: Icffe886597a1f18d9eaacf1e3a14f31e252919c6 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* | Store lock files in temporary directoryFrerich Raabe2016-06-151-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The directory in which the application is stored may not be writable for the current user, e.g. if the installer is stored on a read-only network drive, or (common case on OS X) if the installer bundle is started from a read-only .dmg image. This fixes warnings in the verbose output (especially noticeable during unattended installations) like: [0] Warning: Cannot create lock file "/Volumes/froglogic Squish/Install Squish.app/Contents/MacOS/Squish1234865.lock": Read-only file system The patch is defensive in that it just uses QDir::tempPath() instead of going for QTemporaryFile to avoid having to worry about auto-delete semantics. Change-Id: Iee2409dd6f884c4fe234057b2926eee82127f985 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Fix setValue saving in restartKatja Marttila2016-02-151-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | When running maintenancetool and installing a component that sets a value in installscript with setValue, the value is cleared when pressing 'Restart'. Task-number:QTIFW-504 Change-Id: Ie588b6f1011d7b50b771ea8ee0dea99350f65878 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* | Don't use 'lockmyApp' prefix for lock filesFrerich Raabe2016-02-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'lockmyApp' part of the lock file names looked like some generic default value which just was not customized to fit the installer. Let's use the Qt application name instead as returned by QApplication::applicationName(). We maintain the strong random filename generation algorithm by sticking to the proven constants which presumably are perfectly random since they were generated by a fair die roll. Change-Id: Ief18942ca4e967f7016e7c471a7b44e3b8ab8c95 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Iikka Eklund2016-01-201-4/+3
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: installerfw.pri src/libs/kdtools/kdgenericfactory.cpp src/libs/kdtools/kdgenericfactory.h src/libs/kdtools/kdupdaterapplication.cpp src/libs/kdtools/kdupdaterapplication.h src/libs/kdtools/kdupdaterupdatesourcesinfo.cpp src/libs/kdtools/kdupdaterupdatesourcesinfo.h sync.profile Change-Id: Ifdc8b065f89b7e241bd3788ed79768e21888161f
| * Update license headersIikka Eklund2015-12-291-4/+3
| | | | | | | | | | | | | | | | | | Update existing license headers. LGPL -> LGPLv21. Update copyright year as well. Change-Id: Ie1d71f8c68186b8f625f409ddf94691f178093c9 Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com> Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* | Missed to rename classes and to update docs and tests.Karsten Heimrich2015-09-071-3/+3
| | | | | | | | | | Change-Id: I2d79ab4094cb9706287d44160543c19b35a66c95 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-08-191-0/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Changelog dist/config/config.xml dist/packages/org.qtproject.ifw.binaries/meta/package.xml dist/packages/org.qtproject.ifw/meta/package.xml installerfw.pri src/libs/installer/component.cpp src/libs/kdtools/updatesinfo.cpp Change-Id: I0a1b4a464f7d9008b589b54dd7aed0cac71bd666
| * Fix: .dat file gets deleted after multiple component changes.Karsten Heimrich2015-06-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can close the .dat file in maintenance mode. There is no need to keep it open since no packages are in there and resources are mapped into memory anyway. Fixes commit 7f2c98c8 that updates the .dat file on soft restart. On Windows updating did not work cause the .dat is opened and locked by the OS. To overcome locked files we run a VB script that does a deferred rename once the lock is gone, but in case of a soft restart we now did start several of them depending on the amount of restarts. That had the undesired effect of several replace/rename operations, of which only 2 "succeeded": - First script: Remove .dat | Rename .dat.new -> .dat - Second script: Remove .dat | no .dat anymore... Task-number: QTIFW-689 Change-Id: Ic3ee1b418890eabe5b854dc7879cd7bc118f9240 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>