3145 Commits

Author SHA1 Message Date
Katja Marttila
abf6e847b5 Decrease the dat file file size
Write the filename list to a separate file and only the name of the
separate file is in .dat file. This has significant effect on the .dat file size
and it also decreases the restart/start time of maintenancetool.

Task-number: QTIFW-1448
Change-Id: If03ce1bb91754acfb4e7dd74434f22a6e3fa2554
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-10-31 04:55:27 +00:00
Katja Marttila
64e656846e Use grid layout in component selection page
The layout in component selection page looked bad, especially in macOS
with dark mode as the widgets were not aligned properly vertically.

Task-number: QTIFW-1334
Change-Id: I718b7eaded78906027ce227671e955afda50c264
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
2019-10-30 08:14:52 +00:00
Katja Marttila
7dd35b336f Fix addDependency functionality
addDependency was acting weird - if a subcomponent was added as
dependency, the parent was not installed. It was installed the next time
the installer was launched and something else was added/removed.
addDependency should behave the same as when selecting the component
from UI - it should install the parents too

Task-number: QTIFW-1458
Change-Id: I21726ad6acda3b1fb382263405754c2d682dea76
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2019-10-21 11:05:56 +00:00
Katja Marttila
730425abb0 Fix --no-proxy option in Windows
Task-number: QTIFW-1445
Change-Id: Iad02ecda0d5b27c3c9719f7c57e090d53a249be6
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-10-14 11:33:05 +00:00
Johanna Äijälä
1b96174671 Fix env variable remove on Windows
Removing env variable failed on uninstallation on Windows if the env
variable value had @TargetDir@ in path. File separators got changed
from Windows style to unix style.
Update documentation to inform users to use '\\' as separators when
setting a path as environment variable.

Tested with following values (component.addElevatedOperation(...)
in components.qs):
"@TargetDir@\\lib\\system\\qtplugins"
"not_a_path_but_variable_with_slash_\\qtplugins"
"not_a_path_but_variable_with_slash_/qtplugins"
"%SystemRoot%\\lib\\system\\qtplugins"
"12345"

Task-number: QTIFW-1148
Change-Id: Iaa48d890e70afdbe56bbf389dd4994d5ae91b316
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-10-11 06:32:27 +00:00
Katja Marttila
c706665c4f Fix essential package update
If there was essential update available and autodependency to already
installed packages, the component containing autodependency was installed.
If there was a Replaces at the same time, the Replaces was ignored.

If there is an essential update, no other components should be installed
nor updated except essentials and the components that have autodependency
to essential component.

Task-number: QTIFW-1215
Change-Id: Ib782335f98b6af6ec546aeecb9b032cf84254256
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2019-10-11 06:20:51 +00:00
Arttu Tarkiainen
62eeab668c Fix CreateLink operation destination string formatting on Windows
- Fix string formatting syntax in createJunction() method.
- Calculate destination directory string length in bytes rather than
  characters count.
- Make minor alterations to operation usage documentation.

Task-number: QTIFW-1443
Change-Id: Ia7f6525c865a3e8a6da5376059111c1ef87353ac
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-10-10 12:59:52 +00:00
Katja Marttila
63723d0d74 Hide scrollarea background while fetching categories
Previously we only hide the label inside the scroll area while fetching
categories, which works if the scrollarea has no background. In macOS
there is a background color in the scrollarea by default so hide the
scrollarea instead of the label to prevent the scrollarea colored
background to be visible.

Change-Id: I2ddc97f7ae9a268b8972c91ab6519381fe7b689c
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-09-24 08:38:48 +00:00
Katja Marttila
a0647b7aa6 macOS: Fix widget overlapping in componentselection page in macOS 10.12
In componentselection page, calling setVisible(false) does not work in
macOS 10.12 causing the treeview to be partly visible under the progressbar.
Added repaint() call to cause immediate redraw to widget to fix the
issue.

Task-number: QTIFW-1437
Change-Id: I854d439908b8d8cd0f81076fced07a4d2d4bb6f2
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-09-24 06:59:45 +00:00
Katja Marttila
72fcd5fb27 Update Changelog
Change-Id: Ib4d7f137b5839d3a18560aff10491e90346ff778
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
3.1.2-rc2
2019-09-03 05:46:06 +00:00
Arttu Tarkiainen
c410e42502 Refactor setting and checking of file permissions
Create 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
installation. Unlike the removed method, this will also not break if
an installed component contains owner non-writable directories.

Further simplify PackageManagerCore::directoryWritable() introduced
in 89f772f819178ee2502768c3d259d22ecb910fbe. Remove orphan unit
test for removed PackageManagerCore::subdirectoriesWritable().

This does not change permissions of files and directories extracted
for installed components.

Task-number: QTIFW-1412
Change-Id: I59698c78aceef874b1f79482bff5a618b9a1b536
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-30 07:22:30 +00:00
Andy Shaw
8f7af86198 Fix maintenance tool source translations to match the actual strings
Change-Id: If4f87a6d14450a74151b610e0da54ef3a82712fd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-23 07:00:01 +00:00
Arttu Tarkiainen
b3eaeb1782 Enable support for Qt 5.12 in installer framework
Workaround 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 minor modifications
for unit tests to pass. Explicitly fail and return when performing
CreateLocalRepositoryOperation on non-owned directory.

Task-number: QTIFW-1312
Change-Id: I3db72547ee95c87d8c02d27e5b31c7b30e793431
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-22 11:49:19 +00:00
Katja Marttila
8efb76dc0a Update ChangeLog
Change-Id: Ida8a94b3396c97708dbbab64224c185169122bb4
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
2019-08-19 10:56:22 +00:00
Arttu Tarkiainen
c7066c9dc2 Update usage of Apple-related terminology
Replace 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>
2019-08-16 08:35:19 +00:00
Arttu Tarkiainen
54f1de217b Add IFW version information to installerbase binary on Windows
Add 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>
2019-08-15 12:16:57 +00:00
Arttu Tarkiainen
864aaa7ea3 Fix Mkdir undo operation fail to remove directory in Settings operation
Related 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 operation
belongs to, to MkdirOperation object, so @RELOCATABLE_PATH@ will be
replaced with core's targetDir value.

Task-number: QTIFW-1365
Change-Id: I327d8a63320ecec0e1d51fe7ed899d236fbd21e2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-15 12:15:44 +00:00
Arttu Tarkiainen
6d5c3d36ea Fix incorrect compare string on findMagicCookieWithError() test function
Change-Id: Ic38a4dd321d01606deb5f85bfdabac3677205e81
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-15 12:14:34 +00:00
Arttu Tarkiainen
d4eb7fba67 Fix IFW version information not apparent on macOS
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>
2019-08-15 10:01:55 +00:00
Arttu Tarkiainen
1c22f5dd46 Doc: Define CreateShortcut operation as a Windows-specific feature
Task-number: QTIFW-1399
Change-Id: I81d5bf2c2abde9f0e49f5ea8cb99845e14159800
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-08-15 10:00:50 +00:00
Arttu Tarkiainen
55ecbb9660 Update repository categories on server authentication request
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>
2019-08-15 10:00:37 +00:00
Arttu Tarkiainen
120e527ed1 Fix recalculation of components to install in MaintenanceTool
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>
2019-08-15 10:00:10 +00:00
Arttu Tarkiainen
1ae7ad5c68 Doc: Fix wrong values in Settings Operation summary
Task-number: QTIFW-1386
Change-Id: Ic8faf41fd972505353f6c2e461ddfb47a8db6d94
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-08-15 09:59:45 +00:00
Katja Marttila
18a722ade4 Doc: Update getting-started page
Task-number: QTIFW-1185
Change-Id: I602425589b3b2e0482d025a02b06f4b4c27ac330
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-08-13 10:48:51 +00:00
Katja Marttila
670e8b69f3 Prepare 3.1.2 release
Change-Id: I3e0c2cb9825974ec42940c55d8d9b48afa770d8e
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
3.1.2-rc
2019-06-18 06:40:24 +00:00
Andy Shaw
b07d55203b Doc: Don't indicate that you can add pages in a control script
Change-Id: I6ddfc27334d8f14852cd926653b5ab56851c3fec
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-06-17 12:58:02 +00:00
Arttu Tarkiainen
89f772f819 Gain admin rights for writing MaintenanceTool config files if needed
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>
2019-06-14 08:10:26 +00:00
Katja Marttila
8d020f1b19 Update INSTALL file
Fix recommended configure options and building of Qt

Task-number: QTIFW-1185
Change-Id: Id4365b3debe8adbe325cba3ed868a7659438bdbe
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2019-06-13 10:28:15 +00:00
Katja Marttila
c1f87ceed0 Fix double condition check
Task-number: QTIFW-1082
Change-Id: I47e403444b2932984f0a559613826ca6fa9e41df
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
2019-06-13 10:27:30 +00:00
Arttu Tarkiainen
0bb2d25e87 Fix initially deactivated buttons when selecting components to update
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>
2019-06-11 08:04:49 +00:00
Arttu Tarkiainen
4ada7607ae Update documentation for Component Selection Page
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>
2019-06-03 07:01:54 +00:00
Arttu Tarkiainen
46aecc23b2 Fix MaintenanceTool file write permission check on Linux and macOS
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>
2019-06-03 07:00:48 +00:00
Katja Marttila
c97eb6750c Documentation fixes
Change-Id: Ibfb4fd033f8dae23b953f21ebcda40c8325577e1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-05-27 09:15:47 +00:00
Arttu Tarkiainen
6ea22a1a9e Fix installer hang on Windows with empty command prompt window appearing
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>
2019-05-17 10:52:33 +00:00
Katja Marttila
9653c8607f Update Russian translation
Change-Id: Ic8edbbd34b048d4d7b4fd034b0dddfa1e73ef8a1
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-05-17 08:43:13 +00:00
Kavindra Palaraja
6ec05851a7 Doc: Improve strings in the Select Components page
Task-number: QTIFW-1334
Change-Id: I4ed13fd066c98e1716f3358cffef85e160a3324a
Reviewed-by: Vladimir Minenko <vladimir.minenko@pelagicore.com>
Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-05-13 20:40:31 +00:00
Katja Marttila
8730cb0fcf Update changelog
Change-Id: Ic4d755c27cf4f6f3d076a43444f21ce2d1ecc1cd
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
3.1.1 3.1.1-rc
2019-05-08 07:46:17 +00:00
Arttu Tarkiainen
04a3e32784 Enable links and text selection in component description fields
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>
2019-05-07 08:38:04 +00:00
Andy Shaw
aba1d564ce Pass -sort-contexts when calling lconvert to keep the order for smaller diffs
Change-Id: I4634d54b9bbf0d762a7274ae482f480baed6c0d2
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-05-03 07:23:30 +00:00
Katja Marttila
e10545f37c Prepare 3.1.1 release
Change-Id: I4aae0b0a95cfdb94c608001b3d636cf2c535c4f6
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-05-02 10:43:49 +00:00
Arttu Tarkiainen
a499b3d85e Add fetch to the same pane with package categories
Task-number: QTIFW-1284
Change-Id: Idfd81c3beb60a4dd3b6e8523c219823477eaeeb4
Reviewed-by: Janne Anttila <janne.anttila@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-05-02 10:05:39 +00:00
Arttu Tarkiainen
3e114f6317 Maintenance Tool: Change text in Select Components view when selection of components is not possible
Task-number: QTIFW-1241
Change-Id: Ib3e67e26b5fd4cf856c4b95f7fe542484e4955ff
Reviewed-by: Janne Anttila <janne.anttila@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-05-02 10:05:29 +00:00
Arttu Tarkiainen
9d8c368828 Fix long description texts not properly shown by enabling scrolling
Task-number: QTIFW-1308
Change-Id: I9b20d4a4c4e169bb6b523bbf53da6fb5053ae578
Reviewed-by: Janne Anttila <janne.anttila@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
2019-05-02 10:05:16 +00:00
Katja Marttila
a35daeeee2 Fix install button string having a font name in French translation
Task-number: QTIFW-1333
Change-Id: Ia1b055aa0360885d6ab9b3c0aa0fc7930521e040
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-05-02 06:02:58 +00:00
Katja Marttila
d82a363286 Fix maintenancetool size
Task-number: QTIFW-1322
Change-Id: Ibab81f97f2a114b5b55d24deb0f013657e17fc39
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-04-23 10:34:27 +00:00
Sergey Belyashov
48fd5d74c8 Update Russian translation
Change-Id: I36d329b7c8742133fe62cfc250e53a71ac25d069
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: olesya gerasimenko <gammaray@basealt.ru>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-04-17 18:02:47 +00:00
Frederik Schwarzer
cca4f41448 fix missing backslashed with double backslash command
Change-Id: I0404f3d08d2a4bdc3f5d3ccafe8a016486d4ecdb
Fixes: QTIFW-1037
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-04-02 08:52:27 +00:00
Katja Marttila
2b61b70718 Fix components shown in categories
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>
3.1.0 3.1.0-rc
2019-04-01 11:43:13 +00:00
Katja Marttila
701beccd14 Rename variables
We have named 'archive' to 'category' ages ago, rename the remaining
variables accordingly.

Change-Id: I3f723d3e7014c264e2a4db21c434708691a1038e
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
2019-04-01 08:32:16 +00:00
Katja Marttila
2767210585 Fix update with long version numbers
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>
2019-03-25 05:41:56 +00:00