summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix nested autodependency uninstallKatja Marttila2018-05-031-0/+4
| | | | | | | | Previous commit worked only when --show-virtual-components was uses. Task-number: QTIFW-1114 QTBUG-67106 Change-Id: I6d0649a37095b10ec9fd3a079e020f6a70345c94 Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Fix maintenance tool file name parsing in macJani Heikkinen2017-12-191-2/+2
| | | | | | | | | Earlier we used QFileInfo::baseName but that doesn't work properly if '.' are used in file names. So start using fileName instead. Task-number: QTBUG-61262 Change-Id: I474b9656ef6d83dfbcdbc6ba6e40f95e75853c80 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix maintenance tool update with silentUpdateKatja Marttila2017-06-011-2/+10
| | | | | | | | | | | | Maintenance tool is an essential update. Essential updates should be installed before non-essential updates. This change forces essential updates to be installed first. The behavior is same as when updating with visible UI. Task-number: QTIFW-976 Change-Id: I360145821c4e2d1f3384efca641208acb9338d5e Reviewed-by: Antti Kokko <antti.kokko@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Ignore used separators when comparing file namesKatja Marttila2017-05-151-1/+3
| | | | | | | | The separations might differ in QDirIterator and excludeFiles. Make sure that same separators are used when comparing the values. Change-Id: Ib1c810150e600cd647f5b3a24565268b79f4b09f Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Add progressbar to indicate unzip job is proceedingKatja Marttila2017-05-101-0/+1
| | | | | | | | | | | When a big compressed package is unzipped, it seemed that the installer hanged as there was no indication that the job is still ongoing. Added undetermined state to progress bar as unzip job does not inform the progress state. Task-number: QTIFW-967 Change-Id: I21ca394e1856038c51413f9e5011307ae7a9850a Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix install corrupt with silentInstallKatja Marttila2017-05-101-0/+22
| | | | | | | | | | | | | If there are updates available for a component that is executable and the executable is running, installer is unable to update the component and results to a corrupted install. Check that there are no processes running from the install tree and cancel update if there are any. The update is canceled if there are processes running even if the process does not get update. Task-number: QTIFW-969 Change-Id: I5614cdd21d8538ccf8b0d114d3616804fe367667 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* Fix invalid QBSP installer breakKatja Marttila2017-04-241-1/+3
| | | | | | Change-Id: I7e0bfc2fb0dc4c5438ec2c5ce59b49eb0f0348ee Task-number: QTIFW-954 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>
* | Fix uninstallation on Windows when target path contains non-ascii charactersSlobodan Vrkacevic2017-01-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Windows when a target path contains non-ascii characters and MaintenanceTool has a custom name like Uninstaller it was not possible to start uninstallation after otherwise successful installation. That was because the renaming of Uninstaller.exe.new and Uninstaller.dat.new was silently failing somewhere at the end of installation and there were actaully no files Uninstaller.exe and Uninstaller.dat. To fix this encode the vbs file which is passed to cscript as UTF-16 so that it can handle non-ascii file paths correctly. Change-Id: Id0feb8f8503594f2a9eedddcaa35ae103ccf2938 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | allow installing compressed packagesKatja Marttila2016-11-091-12/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Revert "Allow signing maintenancetool in Windows"Katja Marttila2016-09-151-9/+4
| | | | | | | | | | | | | | | | | | | | This reverts commit 76fd6e8f2953347ea0bf7a57b643968784bc9acc. The change caused that two installation files were needed - one executable and one dat file. Many users did not find it acceptable. We need to figure out something else. Change-Id: Ief12cd47f9897cee8a234d8611a5c18296d42b1c Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | Make support for modifying installations configurableFrerich Raabe2016-09-141-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces support for a new setting 'SupportsModify' in the config.xml file. This is only relevant for Windows installers. By default (i.e. when omitting) this setting, it defaults to 'true' which means that the product supports modifying (i.e. reconfiguring) an existing installations. As such, the 'Modify' button show in Windows' list of installed programs will be enabled. Setting this to 'false' will cause the button to be disabled. Change-Id: I4105f3f0bce67830aa2ee8ae0e6f6abb25c35b30 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* | Allow signing maintenancetool in WindowsKatja Marttila2016-06-211-4/+9
| | | | | | | | | | | | | | | | | | Signing was not possible for maintenancetool since metadata was added to binary. Separated metadata to installer.dat like in OS X. Task-number: QTIFW-667 Change-Id: I74ef307c51a2f43059475dd943d6f0910925fa86 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
* | 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>
* | Allow defining non-checkable itemsKatja Marttila2016-01-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | This change will introduce new element 'Checkable' for package. Setting checkable to false will hide checkbox. Useful if use case is to install one sub item instead of all sub items. Change-Id: I8c731e77353b6da539dddcecdc8495b28ef5f7ea Task-number: QTIFW-773 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-10-121-2/+1
|\| | | | | | | Change-Id: Ia4c0c6766b52626798197c646043407df8de1fd6
| * Fix errors when running updates in a directory requiring elevationKai Koehne2015-08-201-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | isWritable() is not a reliable way to check for permissions on Windows. Instead, just try to create a file. The alternative would be to set the magic qt_ntfs_permission_lookup variable to 1. Anyhow, this might slow down things and cause other regressions ... Task-number: QTIFW-746 Change-Id: I1b5637670bfcfe29966f0545ce2c6b1f663a9738 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Missed to rename classes and to update docs and tests.Karsten Heimrich2015-09-071-4/+4
| | | | | | | | | | Change-Id: I2d79ab4094cb9706287d44160543c19b35a66c95 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
* | Rename files. Remove {kd} prefix. Remove {kdupdater} prefix.Karsten Heimrich2015-07-141-3/+3
| | | | | | | | | | Change-Id: I88c93cab718f4659296d5f7f562beefd747a366f Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Make the installation relocatable (with some limitations).Karsten Heimrich2015-07-141-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the install path with a constant that's updated while loading the stored configuration and operation values. Dynamic variables now need to be set after reading the .ini file, cause there we store the values we found during installation. Makes an installation relocatable, though with some limitations: * Uninstaller entry might break on Windows * Start menu sortcuts might break on Windows * Everything else written to the system using full path Task-number: QTIFW-653 Change-Id: Ie3255299460d4ad7f18c88de9044c95db10d17ac Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Remove quotes around component checker warningsKai Koehne2015-07-101-1/+1
| | | | | | | | | | | | | | This was forgotten in b2a65ce68bce4fcd Change-Id: I3731765ffc17879116609b88fb43215fd8aa4cf7 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Make use of the new varadic template feature + cosmetic changes.Karsten Heimrich2015-07-101-1/+0
| | | | | | | | | | | | | | | | Change constructor to take the a package manager argument. Add a package manager member to the operation. Remove setter function. Change-Id: Iffb860e24089beb6496ac4ee479d547a29463728 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Sanitize QDebug outputKai Koehne2015-07-091-18/+16
| | | | | | | | | | | | | | | | | | | | | | | | Prefer using the stream operator logic instead of using QString::fromLatin1. Add a noquote() where a QString should be printed without any quotes/escapes. This also fixes the tests with Qt 5.5, where QString's are further escaped. Change-Id: Ie3afd14b9355101d3c0b52f30f66ec759c76526c Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Add getter and setter for package manager.Karsten Heimrich2015-06-241-1/+1
| | | | | | | | | | | | Change-Id: Iff8ac5fc97f73939e0cbfea21370bb63e94b7782 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Unify translated error messagesKai Koehne2015-06-241-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | * Enclose file paths in "" * Localize file paths with QDir::toNativeSeparators. * Make sure sentences end with a '.' * Append error details always by ':', e.g. tr("Failed to copy file '%1': %2").(...) * Use 'directory' instead of 'folder' everywhere Change-Id: Ie045f429f72ad5045c96537465c5fb9d2e99d250 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Fix missing operation 'installer' value and update documentation.Karsten Heimrich2015-06-231-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 478a8a1db3eed2 was done under the assumption that after UpdateOperation::fromXml(...) existing values are still set. That is wrong and we have to set the 'installer' value again. The same commit was trying to fix the empty 'installer' value in the operations destructor, though the value got removed in PackageManagerCore::writeMaintenanceToolBinaryData() already. We now skip it once we write out the XML. Change-Id: Ia029ae4583862f4cbc6feb1c757604bf7b042a8f Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Convert to Qt 5 connect syntaxKai Koehne2015-06-151-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | Convert to new signal/slot syntax where it does not make things more complicated: connections where the signal or slot is an overloaded method, or where the receiver method is not in a QObject, are left alone. The new syntax allows compile-time checking of the connection. Change-Id: I2cc3c93b9812797bd67f64a8728569491eeec668 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com> Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Store AutoDependOn inside components.xmlJarek Kobus2015-06-051-5/+10
| | | | | | | | | | Change-Id: Id304ca857ee1897c35171d6c293774f1d638bc02 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/2.0'"Karsten Heimrich2015-06-041-0/+9
|\ \
| * | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-06-041-0/+9
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/libs/installer/packagemanagercore.cpp Change-Id: Ie3d94fe3a633e189c260bf20682c00a2bb901bc8
| | * Fix maintenance tool upgrade on OSX.Karsten Heimrich2015-06-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | Before rename we need to delete a possible existing file, otherwise it will fail and the installation is messed up. Change-Id: I6ade434f828f11b38c00b52eabeb1c574557ec5a Reviewed-by: Jonathan Courtois <jonathan.courtois@gmail.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | | Small optimizationJarek Kobus2015-06-041-8/+3
|/ / | | | | | | | | Change-Id: Ia412f036e8285375e2fc2bd3a1eb7e18edd3dbea Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Add constant and make use of it.Karsten Heimrich2015-05-081-1/+1
| | | | | | | | | | | | Change-Id: I3d244f112e39a57dfa769bb6a786f62b607d9b3c Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com> Reviewed-by: Christoph VogtlÃĪnder <c.vogtlaender@sigma-surface-science.com>
* | Remove pseudo static core instance, fixes autotests.Karsten Heimrich2015-05-061-7/+3
| | | | | | | | | | | | | | | | | | | | | | We need the core engine in operations anyway, so pass the pointer to the create function instead of setting it on our own after the operation was created. The only reason to introduce the static was the ~UpdateOperation() destructor, which now can get the value from its internal data instead of using the static instance call. Change-Id: Ide27542837355ec8c642a6687ca02977983f84fa Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Rename classes to reflect their use. Remove typedef.Karsten Heimrich2015-05-061-28/+28
| | | | | | | | | | Change-Id: I5abb64d356a0951671487b60529a0ca26b0909be Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Replace UpdateSourcesInfo and UpdateSourceInfo classes.Karsten Heimrich2015-05-061-16/+8
| | | | | | | | | | | | | | | | | | | | | | | | Introduce a new struct PackageInfo, which is similar to the removed UpdateSourceInfo struct. The new struct name reflects the actual use better, as we deal with package here (either packages to install or updates to apply) and not updates only. Also remove the container class UpdateSourcesInfo, we can simple reuse a existing Qt container here. Adjust all occurrences that use/ used the classes. Change-Id: I526e24cbf1664f0ab0ad18153f60c2c10b6909d8 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Fix issue with accessing install target directory.Karsten Heimrich2015-05-061-24/+24
| | | | | | | | | | | | | | | | | | | | | | In case we run as installer, do not look into the installation target directory to read the package XML file. This needs only be done to get installed packages, read the application name and version to compare updates and online components against. Change-Id: Ie5b82854e41dc2f11ae5668c5839351c2fc52e04 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Rename function name.Karsten Heimrich2015-05-051-1/+1
| | | | | | | | | | | | | | | | The function actually adds the package info to the known installed packages, it does not install them on its own as, the name suggests. Change-Id: I256300497fce04fb1fd74f26dc1d4fa77ba15f41 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Remove (KDUpdater}Application, functionality has been merge.Karsten Heimrich2015-05-051-2/+1
| | | | | | | | | | | | Task-number: QTIFW-215 Change-Id: I7a9215c8c5d5eae0d66d57650f5b8b82dd4d40b4 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Take over the last used methods from {KD}Application.Karsten Heimrich2015-05-051-1/+21
| | | | | | | | | | Change-Id: I9aaac261bef7aaa48cf0beaee83e15cc5bccd437 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Move the PackagesInfo handling out of {KDUpdater}Application.Karsten Heimrich2015-05-051-34/+36
| | | | | | | | | | | | | | | | | | Do not hide the class behind {KDUpdater}Application, we can use it directly. Also remove unused code from the PackagesInfo class itself. Change-Id: I6876a5887c498aa20fb54e016159223e336d9362 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Move the UpdateSourcesInfo out of {KDUpdater}Application.Karsten Heimrich2015-05-051-14/+9
| | | | | | | | | | | | | | | | | | Do not hide the class behind {KDUpdater}Application, we can use it directly. Also remove unused code from the UpdateSourcesInfo class itself. Change-Id: I99cc34e9089da63087892d8d3540522e9f59b2c8 Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-04-301-1/+2
|\| | | | | | | Change-Id: I2c66fe453db03b833a57a4a400cf859096f81165
| * Enable logging categories as an installer option.Jarek Kobus2015-04-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | Now by default all categories are disabled. They get enabled only in verbose mode. Verbose mode enables all categories by default. Categories can be filtered using logging-rules option. Change-Id: I9324826a6e2d7a746e3d7369747fcd31a42b84b6 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
| * Make componentChecker warnings optional.Jarek Kobus2015-04-221-1/+1
| | | | | | | | | | | | | | | | To enable them export the following environment variable: QT_LOGGING_RULES=ifw.componentChecker=true Change-Id: Ied6744c745ca3fd0840c622c71a8ba30ad22e3d9 Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
* | Merge remote-tracking branch 'origin/2.0'Kai Koehne2015-04-211-4/+5
|\| | | | | | | | | | | | | Conflicts: Changelog Change-Id: Idd7d569f97fba75b05bfc006c7a5b0b9cf8ccf73
| * Move the component checker after installer calculator.Jarek Kobus2015-04-151-4/+5
| | | | | | | | | | | | | | In this way we first check for errors, then check for warnings. Change-Id: I3993498c9c517e7900d789fc0f04c59f9c150e14 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Don't mix iterator and const_iteratorKai Koehne2015-04-081-1/+1
| | | | | | | | | | | | | | | | | | Add QT_STRICT_ITERATORS to disallow implicit conversions between iterator and const_iterator. This avoids potential detaches of the Qt containers. Change-Id: I79d381f531ddda9ac402c6f5c63cdc7c6808a0bd Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>