Refactor setting and checking of file permissionsCreate methods to explicitly set default file permissions on Unix
platforms, use these on installer created files and installation
target directory. Add unit test for introduced functions.
Remove method introduced in 46aecc23b2983c807ff2232ae9cb9651b4d2fdc2
as the same effect is achieved more efficiently by ensuring target
directory will be written with explicit permissions on initial
installa...
Fix maintenance tool source translations to match the actual stringsChange-Id: If4f87a6d14450a74151b610e0da54ef3a82712fd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Enable support for Qt 5.12 in installer frameworkWorkaround issues of IFW not being able to work on elevated mode
caused by changes in qtbase, namely when initializing socket
connection between remote installer client and server, and writing
maintenance tool binary.
Switch to using unbuffered mode for QFSFileEngine instances as
buffered mode support has been dropped. Fix calls to QFile::copy()
when running elevated installer process. Make mi...
Update usage of Apple-related terminologyReplace deprecated Q_OS_OSX macro used in several places with the newer
Q_OS_MACOS. Old style reference of Apple's desktop operating system name
as "OS X" in documentation and files are also replaced with "macOS"
where applicable.
Task-number: QTIFW-1406
Change-Id: I0561d5e0d964917ac4fca0702d58a06b85d30e57
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Add IFW version information to installerbase binary on WindowsAdd Windows VERSIONINFO resource definition to installerbase.rc so we
can link the installerbase executable with file version property.
Created installers using this base binary will include the set version
property.
Task-number: QTIFW-1397
Change-Id: Ie7781bf65c6032c01bb0bac9e945c665e81973d9
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Fix Mkdir undo operation fail to remove directory in Settings operationRelated to 0a842140f5d7cc7383c5266acbbc74428dd82014. MkdirOperation
object instantiated in SettingsOperation::undoOperation() doesn't have
reference to PackageManagerCore instance. As such, replacing
@RELOCATABLE_PATH@ with targetDir value can't be done and the created
settings file path, being invalid, doesn't get removed.
Pass reference of the package manager core which the Settings operatio...
Fix IFW version information not apparent on macOSOn 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>
Update repository categories on server authentication requestIf 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. ...
Fix recalculation of components to install in MaintenanceToolIn 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 ...
Doc: Don't indicate that you can add pages in a control scriptChange-Id: I6ddfc27334d8f14852cd926653b5ab56851c3fec
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Gain admin rights for writing MaintenanceTool config files if neededRunning 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 method...
Fix initially deactivated buttons when selecting components to updateWhen 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>
Update documentation for Component Selection PageRepository 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.sundqvi...
Fix MaintenanceTool file write permission check on Linux and macOSRunning 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: I9b314853634642b0be1fb3ea...
Fix installer hang on Windows with empty command prompt window appearingInstaller 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: I...
Enable links and text selection in component description fieldsExternal 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>
Pass -sort-contexts when calling lconvert to keep the order for smaller diffsChange-Id: I4634d54b9bbf0d762a7274ae482f480baed6c0d2
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Add fetch to the same pane with package categoriesTask-number: QTIFW-1284
Change-Id: Idfd81c3beb60a4dd3b6e8523c219823477eaeeb4
Reviewed-by: Janne Anttila <janne.anttila@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Maintenance Tool: Change text in Select Components view when selection of components is not possibleTask-number: QTIFW-1241
Change-Id: Ib3e67e26b5fd4cf856c4b95f7fe542484e4955ff
Reviewed-by: Janne Anttila <janne.anttila@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Fix install button string having a font name in French translationTask-number: QTIFW-1333
Change-Id: Ia1b055aa0360885d6ab9b3c0aa0fc7930521e040
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Fix components shown in categoriesIf 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
Rev...
Rename variablesWe have named 'archive' to 'category' ages ago, rename the remaining
variables accordingly.
Change-Id: I3f723d3e7014c264e2a4db21c434708691a1038e
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
Fix update with long version numbersUpdate 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>
Update translations for a number of languagesThe 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>
Fix essential updateEssential 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: I754c50f672dd5f13105c710522603e9...
Change quantity information unit textTask-number: QTIFW-1288
Change-Id: Ie5a6fdc27bb5eb96b080638839ee09f06370848e
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Write desktop entry and items to the correct foldersData 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>
Reset error before every new metadata jobInstaller 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>
Fix tmp file removalTmp 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 fo...