| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Also move functionality to PackageManagerCore::checkAvailableSpace()
for more convenient later usage, if we want to use this without
starting the Wizard GUI.
Task-number: QTIFW-1602
Change-Id: I4f2d3cc78bc542475fe9c51b9364b1b221098e4a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I012d9c07fe5f6551e64aabe8debca76a40f5f3b2
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Add some basic output information about updated components when running
repogen with --update-new-components option in silent mode. --update
option is left silent in this regard as it is not component version
filtered, updating everything when -e or -i parameters are not passed.
Task-number: QTIFW-1543
Change-Id: I453a4107a3ec3702945becf4e15a87aad3423c2f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The return value for undoOperation() was incorrect when dealing with
non-persistent variable, causing an empty installer error dialog to
appear if the current env does not contain exactly same variable value
as on installation.
The return value inside !isPersistent condition scope should always be
true regardless of if the temporary variable set on installation still
exists on current environment or contains the same value.
Change-Id: If7deaa310d73a371194138fa1e2c382614452e26
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTIFW-1526
Change-Id: I085dd8b2818f26058432d165a1250b3ac67e1dda
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I591b34fb6823c385dcf4a729c764bef1d87bef8b
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Title color can be given in config.xml with tag TitleColor. If tag is
not set, set title color to empty string so correct default title color is
used from palette.
Task-number: QTIFW-1557
Change-Id: Ic0c808127203c1a70f8183627ac846229223076c
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: I4a8c1ca489ed7d7779c5235101fb57be8bd88274
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
| |
Change-Id: I111829be3183a1e195af4f79c914e6309f9ada9f
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: I48faa58dda30bd79023a3e20624167cef346d060
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
| |
Change-Id: Ibffb5470d374c8d612791f48c951deddd00f3121
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
|
|
|
|
| |
This error can occur for example when user has manually deleted the
installerResource folder or files inside it or the same component has
been installed multiple times (QTIFW-1502).
Change-Id: I8007a2f99517b4f90902ed3b740027d54371d119
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
| |
Change-Id: I504389d78f9d831cb950cb36167ed0379cb7eb38
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 7dd35b336fbaa78e5f3b347c5e1875743d146fb0.
Reason for revert: Change was causing a recursion error.
Change-Id: I273a92fbb3292f33d5e0860085102f6e5cc90e13
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Also use QStackedLayout to transform between treeview and progressbar
views. This simplifies the code as we hide the treeview, categories etc.
and show progressbar instead when we are fetching a new category.
QStackedLayout makes it easier as we then don't have to hide/show
individual widgets we want to show.
Change-Id: I405030e9629052c5ca773a91bc44b66d3d26e137
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Split reading of data files into its own public function so this can be
used elsewhere if needed. Also move deleting of the data file into its
own function.
Change-Id: I63f758be8863c8a19069c97d726dc573bf240484
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If Linux has several partitions and tmp is pointing to a different
partition than where we are trying to create installer executable with
binarycreator, binarycreator fails with 'Invalid cross-device link'.
Fixed so that tmp is not used when creating an installer executable.
Change-Id: Ieee52ee1929f980345a7940dd381cc94dbf3d40e
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently IFW does not support manipulating Windows Access Control Lists
for files. If a user does not have reading permissions to installer.dat
it will throw error on QInstaller::openForRead() before the wizard GUI
is shown. At very least, add a MessageBox to prompt the user to run the
executable again as administrator in such a case.
Task-number: QTIFW-1392
Change-Id: I9e20c34b215ee697118af9c15a7e344f9cfc3c3f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTIFW-1466
Change-Id: I2b9f000cddc63e9eccefb3d86f93ab05a5631581
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As the function to be tested is now enabled also on Windows platforms,
this should at least check that the unsetting of legacy read-only flag
works as intended.
Task-number: QTIFW-1464
Change-Id: Ibe126d279a31aaa3d204cf6a8fe04a05ea195bb8
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases, for example in CreateLocalRepository files may be left
with legacy read-only flag on Windows. Even though the permission
entries in its Access Control List are sane, this will block all writing
operations to the file.
Enable setDefaultFilePermissions() on Windows as this will unset the
read-only flag if it is set. This still does not affect ACLs.
Task-number: QTIFW-1464
Change-Id: I95399e7cb83cb136ef1c978a05f79b6a6790b7e4
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In ExtractArchive, the ConnectionType used to connect signal
'currentFileChanged' to slot 'fileFinished' was changed to
Qt::AutoConnection in c8de51cadbc5855ca1e77d038d7f09bf60d059ee,
rather than using Qt::DirectConnection explicitly.
Now the connection type defaults to queued as the sender and
receiver live on a different thread. This seems to cause an issue
where the slot function is not invoked for every emitted
'currentFileChanged' signal before returning from
ExtractArchiveOperation::performOperation(). This can happen
randomly on some installer runs, leaving entries out from
ExtractArchive's "files" list for some components.
The list formation works fine with Qt::DirectConnection, however
reverting to this behavior might be a bad practice as it leaves
'fileFinished' vulnerable to accidental calls from another thread
if we change the behavior in the future. Rather move the extracted
files list formation to ExtractArchiveOperation::Callback like we
already do for backup files.
Task-number: QTIFW-1239
Change-Id: I7dbe73abefe00814e8652432d8abdbcaa83e0bac
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
This caused interesting install experiences as EssentialUpdate was
handled although no such packages were found.
Change-Id: I35bb3e1b76ed14d1e8a45cee085916b3689f0dd1
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: I87ac44f6e821a4cefe8987aa003c823796bfa60e
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Task-number: QTIFW-1445
Change-Id: Iad02ecda0d5b27c3c9719f7c57e090d53a249be6
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ib4d7f137b5839d3a18560aff10491e90346ff778
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: If4f87a6d14450a74151b610e0da54ef3a82712fd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ida8a94b3396c97708dbbab64224c185169122bb4
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: Ic38a4dd321d01606deb5f85bfdabac3677205e81
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QTIFW-1399
Change-Id: I81d5bf2c2abde9f0e49f5ea8cb99845e14159800
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@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>
|
|
|
|
|
|
| |
Task-number: QTIFW-1386
Change-Id: Ic8faf41fd972505353f6c2e461ddfb47a8db6d94
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTIFW-1185
Change-Id: I602425589b3b2e0482d025a02b06f4b4c27ac330
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
| |
Change-Id: I3e0c2cb9825974ec42940c55d8d9b48afa770d8e
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
| |
Change-Id: I6ddfc27334d8f14852cd926653b5ab56851c3fec
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|