On macOS remove the use of obsolete CFBundleGetInfoString, replace with
CFBundleVersion and CFBundleShortVersionString respectively so that the
bundle's properties in Info.plist are up to date and version shows
correctly.
Task-number: QTIFW-1396
Change-Id: Iac03478e266d9d2994ecdf3b229e63976d683ac0
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
If repositories in a category were located on a server that requires
user authentication, IFW couldn't update information of the repositories
inside a category during runtime. This prevents for example storing
credentials from the authentication request dialog and blocks the
usage of that category.
Add a method for updating contents in repository categories and a
unit test for the new method. Also some minor tweaks to relevant
bits of code.
Task-number: QTIFW-1358
Change-Id: Idfa2559df6d0d2a6de428b8d5fb1f7672aa1e300
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
In MaintenanceTool, navigating back and forth in "Update" and "Add or
remove components" doesn't cause update in components to install and
uninstall information. Without changing component model's state by
checking/unchecking components the recalculating is not done and
performing the opposite maintainer action causes unintended results.
Make IFW recalculate components to install when leaving component
selection page so InstallerCalculator and UninstallerCalculator's
state is correct even without changing the component selection.
Task-number: QTIFW-694
Change-Id: I89abd9a1952fe30d1e3ae4012e7a7bac68793a89
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Running MaintenanceTool from an elevated directory didn't do proper
checks for file writing rights when parsing Updates.xml from a
repository, for example when a default repository contains actions
inside <RepositoryUpdate> tags the MaintenanceTool couldn't write
changes to the .ini file immediately.
Make MaintenanceTool do proper rights checking when parsing Updates.xml.
Create uniform methods for checking directory writing access as it is
used on several occasions. Add tests for directory checking methods.
Task-number: QTIFW-1363
Change-Id: I6d634ddbd59429e5b98af1d8010e70a71de40f69
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
When entering component selection page for updates, force checking of
component model state change so we can enable or disable relevant
component selection buttons right when entering, not after first
selection change.
Task-number: QTIFW-1320
Change-Id: I86a94b70979f7064618186c539b0b7fc594d1481
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Repository categories introduced in IFW 3.1 can cause behavior changes
in older automation scripts that use component selection methods.
Update documentation to include new items on Component Selection Page
and provide an example code for fetching components from a category.
Task-number: QTIFW-1354
Change-Id: Icf93d1325563d3bdf6a38799ab260b13f4078a81
Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Running the Qt installer on Linux and macOS with sudo will leave
the installation target directory and some installation files
writable by other users than their owner (root). Make
MaintenanceTool check over all subdirectories in the installation
directory for write permission so that admin rights can be always
requested when needed.
Task-number: QTIFW-1324
Change-Id: I9b314853634642b0be1fb3ea7a9164a2d4beb853
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Installer sometimes hangs on Windows with a command prompt window opening
and blocking any progress. Hitting enter in this command prompt window
causes progress to move forward. This blocks automated execution of tests
since it requires manual interaction.
parentConsole boolean was not initialized properly, fix logically broken
closing actions for console.
Task-number: QTIFW-1250
Change-Id: I062c0491c16c26e9435022d79f99240bf59e1a79
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
External links can now be included in component description by specifying
a proper URL address like this: {external-link}='https://www.qt.io/'.
The link fields can be placed anywhere inside package <Description> tags.
Task-number: QTIFW-1292
Change-Id: I1d916a58224bdfb6e885445873bf541fad3cf834
Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
If same repository was included in several different categories,
and the categories were fetched in the same time, the components
were shown only in one of the categories. Fixed so that once the
repository is downloaded, the related meta is included to all
categories. This also speeds up other category download times.
Task-id: QTIFW-1314
Change-Id: I0d890a52dee15a9bde11383f608f547a32b99ee7
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
We have named 'archive' to 'category' ages ago, rename the remaining
variables accordingly.
Change-Id: I3f723d3e7014c264e2a4db21c434708691a1038e
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
Update fails if version number is longer than 32bit int. Fixed so that the
value is converted to 64bit int instead so the int overflow will not happen.
Change-Id: If7ab57e89b155793e9fab3ba5dad9c734adc2234
Fixes: QTIFW-1310
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
The translations were contributed from an external and are for
Spanish, French, Italian, Japanese, Polish and Chinese.
Change-Id: I737c88e727c61fb358ab2cf99ce4b80a89817311
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
After adding the categories, RepositoryUpdate got broken. This commit
fixes the issue
Task-number: QTIFW-1300
Change-Id: I01671a547712088d344852dc169661ac9587894e
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
Essential components should be updated before any other component is
updated/installed. This did not happen always as when one essential
component was found and that did not have any updates, the search was
stopped and normal install flow was continued. Fixed so that all
essential components are checked if they contain update.
Task-number: QTIFW-1299
Change-Id: I754c50f672dd5f13105c710522603e90799d61c5
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Data should not be written to directories in XDG_DATA_DIRS.
The spec state that files should only be writen to the
directory in XDG_DATA_HOME.
Change-Id: I755963fa2f70d03c77d7beec0e3f87accde925d0
Fixes: QTIFW-1269
Reviewed-by: Nikos Chantziaras <realnc@gmail.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Installer crashed when invalid QBSP package was selected and after that
new categories were fetched. This was because the error message was not
cleared, although the metadata job was succesfull, installer thought
there was still problems causing it to eventually crash.
Task-number: QTIFW-1272
Change-Id: I8a5a6fd8568dcabd9c857c462b83d0e0b77669f8
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Tmp files were not removed when all or these were met:
1. Using Linux
2. Installing to a folder which needs authorization
3. Installing a component which has no metadata
Tmp 'remoterepo-XXXXXX' is created before acquiring authorization.
In previous version if above list was met, a tmp folder was created
inside remoterepo-XXXXX after authorization leading to permission
error when deleting the folder.
Task-id: QTIFW-1268
Change-Id: I937fe3ce13440c817d1264c80ad060dfc966e456
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Read/write operators were not in sync causing a write fail in
QWindowsPipeWriter.
Task-id: QTIFW-1254
Change-Id: I0c2ead9c6af9ea0459f7ed55b09540c50cc60a6c
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Unstable component means that the component has unresolved dependency,
script error etc. Installer cannot recover if we are already in
component selection view and fetch new packages from a category which
has unstable components if AllowUnstableComponent is false. Fixed so
that allowing unstable components is forced when categories are used.
Ideal solution would be to recover and rollback the install tree if
unstable components are found but that requires huge changes to IFW.
Task-id: QTIFW-1257
Change-Id: I786df1b8b54c238f50e15b94a06005e244417c97
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Seems this is used for gaining admin rights in Windows
Task-id: QTIFW-1254
Change-Id: Ia169200ead7a95d152378ba68ba9b8ad3054d5bb
Reviewed-by: Antti Kokko <antti.kokko@qt.io>