| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: Idea842129a76f1b554fd7e3a80ff9bdd27d0406f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
In some rare cases, both component to be uninstalled and component to be
installed has dependency to same virtual component. In such case the
virtual component should not be uninstalled.
Change-Id: I3b826693d4a72d6765a5ac1ee9a3957fdf7415da
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
| |
Change-Id: I8b57121533520dc580c94dd8ecce880065caba83
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Attaching to squish will trigger firewall questions in the installer.
Changing the attach behavior so that by default no attach is done, and user
can run the installer with --squish-port <number> if the attach is needed.
Task-number: QTIFW-2746
Change-Id: I89f06a52b1ef95493e99084cb6080266b4eaf1dc
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was an issue with the Extract operations when using the same
"targetDir" argument for multiple archives. The DirectoryGuard object
creating the missing leading directories would occasionally run into
a race condition when multiple threads competed with creating the
directories.
Fix by adding installer specific implementation similar to
QDir::mkpath(), but which checks if the directory was created
elsewhere at every directory level. Also convert an existing similar
case with the Extract operation to use the new function.
Task-number: QTIFW-2752
Change-Id: I4451e931309edb536294314b11c903189dacf2f0
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
| |
Fortunately no reported issues yet that would have been caused by this.
Change-Id: I0ee9cb368600f660eb7c048e8cf3df5d31e43b4f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The installerResources directory is created with the
ExtractArchiveOperation::performOperation() function.
But it is not removed from anywhere.
Remove it with the ExtractArchiveOperation::undoOperation.
Task-number: QTIFW-884
Change-Id: I46e3e3676b5d276e0c0029943070c1eeb2a6e39e
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Framework users expect license files to be copied as is.
Task-number: QTIFW-903
Change-Id: I32e3a2a19c242049599407818fcd5e9abb33af0c
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
|
|
|
|
| |
License files are read in UTF-8 but written out in the system encoding.
This will cause garbled characters.
Task-number: QTIFW-1436
Change-Id: I52049d207499609a9cfc3e2a7059882067cc9256
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
| |
Change-Id: I67ebe6970a54fad9d8c5fcea91b726fb140d6dc3
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
| |
Change-Id: Id561753d7990835fe6362169af9b8bfc9f9269a4
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Components can be requested to install by several components using
dependency. Components should have a reference count to inform how many
components are requesting the install, so that the component can be
removed from install when nobody has requested it, or user has not
explicitly selected it for install.
Dependency reference count was not calculated correctly, user selection
was ignored if component was already added as dependency. Also if
component which is added as dependency is also autodependency to same
component should not increase the reference count, as the component is
uninstalled when the reference count is zero. Having both autodependency
and dependency would never cause the reference count to be zero.
Task-number: QTIFW-2708
Change-Id: I398bc892f6626d76c872402d8ab55cb8115112ae
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 86b8f5f5a7e11e2121b5f1181c8a049b5562789a.
Reason for revert: Wrong fix after all, we do check in realAppendToInstallComponents() whether the dependency component should be installed or not. This change messes the dependency reference count.
Change-Id: Ia7bed84b303f13449edb80e486cf192b8872febc
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Several components can have dependencies to a same component. We
calculate the component only once, and increase the reference count to
the dependent component to keep track when it needs to be removed from
install when user clicks the install tree.
The dependency component was removed from install despite of the
reference count. Fixing the bug so that it is truly removed from install
only when there are no references to it.
Task-number: QTIFW-2708
Change-Id: Ieb45270183dc948d9c58271f2d43fccfa7fb8a9f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
| |
Change-Id: I119fc584a3e59d6c4cc9037c47a85eaef6af62ad
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
Also process pending events for the main thread in the loop that calls
Component::loadComponentScript() repeatedly, to not block the UI while
busy loading the scripts.
Task-number: QTIFW-2701
Change-Id: I4a1dd8e2441e21b5075b6fdffff8a47cd4bc7c80
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I0a96cea5432c827b308034d38fbb7d0e952e98be
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
| |
The directory created to temp in commandlineupdate was not
deleted.
Change-Id: I0375743ad408d3ba6adb4244f276e48b9a7d7d47
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If installed component is replaced by another component, core
'categorizes' it under ComponentType::Replacement. By asking
PackageManagerCore::componentByName(QString &name) excludes the replaced
components. Fixed so that all 'categories' are used when searching the
component by its name.
Task-number: QTIFW-2672
Change-Id: I8b5528f7ddca777fe9b696c1d0151640730d1b9f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
| |
Also rename the test to better correspond the test cases.
Change-Id: Ic3f624fc8cf42724ff4df550cc85a52343ac6452
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the installer will create an alias file for maintenance tool
with the name defaulting to the file name of maintenance tool, if the
name is not explicitly declared in the installer's configuration file.
This can cause issues with installers that use the same maintenance tool
filename, as the alias would be overwritten on each install, and the
default name does not tell which installation the alias is associated
with. Make it so that the alias is only created if installer config
specifies a name for the alias.
Task-number: QTIFW-2665
Change-Id: I790ee376ec56cff16730189e513a194b8c610066
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I73e07ac8d4099df0c0a3bade4bc40cb1467fbbe2
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
As lupdate wants to do this anyway on updating the source strings,
better to make a separate commit to not clutter when doing real changes.
Change-Id: I8ea644f4aef8f95adaac8dd6257e86441a266264
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
A follow-up for the translation update round for 4.4.0 release, fix
the noted issue of some strings having strange formatting in the
.ts files. This makes it less likely that the translated strings miss
the newlines in cases where it matters to the text presentation.
Change-Id: I0fc9c2c8014a6ffa30dc510701b7bfad72e8eb82
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I5dffd7567451f349a49ccc0695e66c8145d4bb55
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I8b27055b43e8866bf739907ad3a5b2198cac0117
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
Script engine does not know how to evaluate QSettings Formats, use int
instead and cast it to QSettings Format when used in c++ code.
Change-Id: I5c66708aa09ceb5f9a747849a7a2ca72efdd7080
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For classes supporting the remote-client-server protocol through
inheritance of the QInstaller::RemoteObject class: when calling
functions of return type void, the client process did not block and
wait for the server process to finish execution of the corresponding
function, only checking that the packet containing the function
command and arguments was written to the socket.
The server-side connection thread operates in a loop that tries to
read a packet from the socket in each iteration, and process the
contained command, with the condition that the socket is still in
connected state. If the function calls requested by the commands take
long time to execute and we destruct the client-side object,
disconnecting the socket, the server thread could break out of the
loop before handling all pending packets.
This hasn't been a problem for non-void functions because the server
will send a return value reply and the client would block until the
sent packet was available. Fix by refactoring the server connection
code to send a default reply for commands not requiring a real return
value, and blocking the client until the reply can be read.
Task-number: QTIFW-999
Change-Id: Ie1d0e118e6830a1049a2ad50cc80b54c967fcde6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I128910335ca926229389f245265870947c25870f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I4a52f8655e363de05a3e04d5b4eda6d05342c290
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: If895876d4b8fbb3793ffe9260954a3c39d9e5a2a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I0d20e5ad3dcbc22e18176469250796e3e6137d81
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
Binarycreator needs imageformats for creating application icons.
Task-number: QTIFW-2668
Change-Id: I0ca7238f8af311ad3a29c607014c54c2802e1523
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I10246ab16a02cb54502b72bd6e240506bf8fd594
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I6ca680884313c2ea5e835272f9010bcae80c19d3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I50e7ce3bae04494c0ff73bc214db2e0d39f0c7c1
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: If4025d249320a8fbf903c04b0f9a6ea88c6b2797
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: I18f535351fbe12c569bb989ba9eac9958671c246
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2622
Change-Id: If4c576bcd46a529e5a1bbf616483fecda58c5d20
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change expands installer.value() -function allowing
QSettings::Format setting when asking registry key.
Windows 32bit registry keys on 64bit Windows and 64bit application can
be accessed using QSettings::Registry32Format. Window 64bit registry
keys on 64bit windows and 32bit application can be accessed using
QSettings::Registy64Format. If no format is set, QSettings::NativeFormat
is used.
Task-number: QTIFW-2657
Change-Id: Ie30e31886526db5b9d72793d5883c11bd1910737
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This changes allows in follow-up commits to access windows registy with
other than just NativeFormat. This is needed for 32-bit applications to
access 64-bit registry and 64-bit application s to access 32-bit
registry.
Change-Id: I0b88f4eaa499e53e10162ae5343b95d06ddbfc27
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
| |
Change-Id: I60ba22d9661b11e9caa293f8dc8c3b3d358b780d
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This causes problems when installers created with IFW share config files
with Qt 6 applications. If the config file contains keys with QDateTime
values written by the other application, the installer and maintenance
tool will segfault when attempting to sync the file, even if we do not
overwrite the values.
This is fixed to recent Qt 5 and 6 versions with the submitted patches
to QTBUG-102334. But as this requires updating the baseline Qt version
for both the Qt IFW and the Qt 6 application, apply the workaround
suggested in the issue comments, to avoid the crash in meantime.
Task-number: QTIFW-2610
Change-Id: I968e293324775dc650315e223f549a81657a27a3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a component with the same name and equal version is available from
both remote repository and installer binary, it makes more sense to
use the installer resource as the package source for the component.
This also fixes the issue of erroneously registering duplicate archives
to a single resource collection. Because both the internal resources and
downloaded archives are registered in the same naming scheme of
"installer://<component>/<version><archive>", we would register the
same archive second time when using the remote source. If the packager
has not explicitly added Extract operations for the component, these
would be created automatically by looking for archive entries from the
component's resource collection, and so the same operation would be
added twice.
Task-number: QTIFW-2242
Change-Id: I82d4ed8a94a67d982b016bf7cec972e43bef8f03
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Autodependencies can be added also from script. The uninstaller and
installer calculators ignored the values set from script depending on at
what state of the script run the autodependencies were added. Fixed so
that at any point the autodependencies are added from script, the
installer and uninstaller calculators has correct values.
Change-Id: If993bcce72f889b51e4b981473540c4e1ccd6067
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If component is updated to repository, and new dependencies are added,
the dependencies should be installed only when fresh install to
component is made or the component is updated.
This change adds a new LocalDependencies value to component. It keeps
track of the dependencies the local installed packages has.
Fixes also a bug in uninstallecalculator, where we should also read the
dependencies from local installed packages instead of newly introduced
repositories.
Task-number: QTIFW-2624
Change-Id: I0557e5adf1e87c0a1238cc455cfb2c90f6b05c87
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Autodependency components were always forcely updated, even if 'Deselect
All' was selected in component selection page. Fixed so that the
autodependency component update is updated only when one of its
dependants is updated.
Task-number: QTIFW-2595
Change-Id: I05ececc45ef32ff80d53b008f839b358158a3316
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|