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>
Unstable component was installed if component had unresolved dependency
and was fetched from category. Fixed so that unstable component which is
not already installed gets never selected in restoreCheckState().
Task-id: QTIFW-1265
Change-Id: I04176d095f6d79b2aabae73b490adc36706f597a
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
We don't need categories in updater mode, the categories were accidently
visible if we first visited the 'Add or remove components' page before
going to 'Update components'
Task-number: QTIFW-1259
Change-Id: I945c2b7e8cdfbb8bfeefbfa0ed07222189573179
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
After we implemented maintenancetool signing, we wrote the binary magic
marker to separate installer.dat file in maintenancetool (like we have always
done in macOS in both installer and maintenancetool). Devtool needs to
know about this change too to fetch the magic marker from correct place.
Task-number: QTIFW-1222
Change-Id: I08e74596033cb33ccb9c49d9db1ee7b4beef59ca
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Due to bug in QTextDocument (QTBUG-65865), installer will crash if it
will write a lot of logs to 'Details View' in 'PerformInstallationPage'.
Fixed so that instead of writing all extracted filenames to log, write
only the name of package which is extracted. This will reduce the huge
amount of log written and thus prevents the 'Bad allocation' crash.
Task-number: QTIFW-1242
Change-Id: I98ff0df25bcc10d0f7bb79d6c4010665b5e2ac51
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
User can set height and width for wizard in config.xml. If the given
dimentions does not fit to the screen, wizard was clipped and buttons
were of the screen. Fixed so that the screen size cannot be exceeded.
Task-number: QTIFW-1016
Change-Id: Iab6970d4203fc1271b93475aec71c946d0508653
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
This addressed the following error:
[29065] Critical: Error occurred while assembling the installer: Cannot
open resource <some file>: Too many open files
libc++abi.dylib: terminating with uncaught exception of type
QInstaller::Error: std::exception
Abort trap: 6
Kai from TQtC suggested the fix used in commit:
8f8800de7ab89e6cbc7b5eb08f2b3f16407e6cdf
Applying it to binarycreator fixed the issue.
Change-Id: I8e616ded94310d33824242ab52e1101b7f2ddafd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>