| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
When trying to install or update component which is not found, a warning
is dispayed. Changed the wording so that the texts fits both to update
and install commands.
Change-Id: I06c58624fc33586f64a2c63768690ab431e661e8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If no component is given to update command, look for updates from all
categories so no update is missed. If component is given, utilize the
meta fetch from default repositories first. Checkupdates command
searches update from all categories.
Change-Id: I6dbd9f130c9b008cb066ad7767d2b9a287ecac9f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
As the search pattern can be regexp, the search can match to basically
anything. Enabling all categories when doing such searches
Task-number: QTIFW-3356
Change-Id: I46bd25e2a1493b4ebba245910c2a5f7505a67af5
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
QLocale::Languege does not distinguish between Brazilian Portuguese and
European Portuguese. Sending the QLocale object in
defaultTranslationsLoadedForLanguage signal to make a difference between
these languages.
Change-Id: I95994e00b67e2bd18a611d4c9a14d4a6cf57b204
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Progress information is printed using same static instance of the
coordinator by different operations. The operation object pointer was saved as key to QHash so that progress could be tracked. This has caused problems in installer as QHash insert occasionally caused segmentation fault.
Fixed so that the progress information is no longer tracked based on
operation object pointer, instead object name is used.
Task-number: QTIFW-3314
Change-Id: Ic4007f226321e109109006c5c89415308920c614
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt Installer will send information to backend if unstable components are
found (e.g. dependency is missing), to better track for problems the CLI
arguments are needed as well. Options which are not defined in installer
are not saved, also option arguments which may contain confident
information are not saved either.
Task-number: QTIFW-3070
Change-Id: Iff5bfad725d1f56b7fb6c501138427ef4c58b5c3
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
| |
Url logging does not nowadays provide any useful information as the meta
is read from cache, and the cache path is already printed to log once.
Change-Id: I9845ad9ecf2dac53b3775a07b1702f938632b64a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check the cache validity and use it as the initial state for the button.
After clearing the cache, regardless of success, the cache will become
invalid so the button should stay disabled until new settings are
applied and the cache is reinitialized.
Also disable the button in case the selected cache path does not match
the one currently applied in the settings.
Task-number: QTIFW-3252
Change-Id: I1b403fbc8a6680dfd5222296479ab0821cdb4a37
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When installing from CLI and the installable component is not in default
categories, developer has possibility to override ProductkeyCheck and
return custom security message warning.
Task-number: QTIFW-3305
Change-Id: Ie321af6796bf19c910216be2c6ee521aa63788d8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Especially in installers which contains huge amount of repositories, it
takes a long time to perform commands from CLI. If the repositories are
filtered using categories, it saves a lot of time if the components to
install/update etc. are tried to install/update from the defaultly selected
repository categories. Assuming that the component is found
from the defaultly selected repositories. If the component is not found from
defaultly selected repository categories, then all categories are searched for
the component.
Implemented also a filter logic, where the components to install are
searched earlier, if the component is not found then we can exit early.
Task-number: QTIFW-3251
Change-Id: I1274b5f56dbff293554cb21839a8cea63a7d2dcc
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
| |
We need to access the core functionality despite of what user interface
is used.
Change-Id: I6c4c7e8526ff24a479128061aa40fba66e61660c
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\
| |
| |
| | |
Change-Id: Id9fe7a127a72b58732f5dffd11c4c9c7c1c56060
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In case the user chose to generate offline installer by clicking the
"Create Offline Installer" button on ComponentSelectionPage, navigating
back to the page did not reset the internal binary marker. This made
it impossible to perform a normal installation afterwards.
Fix by resetting the state on ComponentSelectionPage::entering().
Task-number: QTIFW-3236
Change-Id: I0951ec90e70dff9e8e233dee0cc5592c5c509c28
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
rootComponentsAdded -signal is not used anywhere, in case the components
are added connect to componentAdded -signal instead
Task-number: QTIFW-807
Change-Id: I148e74bd9f1650ae09f0020269fb7ed2349b5d3b
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
If user selects Settings->Repositories and adds a repository to a
maintenancetool which does not have any repositories (is offline
installation), the repository was not saved for future use. Fixed so
that repositories can be always added to maintenance tool.
Task-number: QTIFW-3179
Change-Id: I6d0e4d85fb72180944a6cfbdde840e681a1a1453
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case the "--type=aliases|packages" option is omitted, search first
for aliases, and if not found, search for components. If the option
is specified, search only given type.
This changes the behavior from previous one, where only aliases were
considered for the search by default, if the type option was omitted.
Change-Id: Ie01ea85e1b88376f8df3edbf864d1e78788c3464
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce concept of component aliases, which act as an alternative way
for referring a set of related components.
Component aliases are declared in an alias definition file, which is
included to the created installer's binary layout as a resource. The
file lists the available aliases, including metadata - such as name,
version, and description - and the list of components and other aliases
the alias requires.
Aliases can be referred only from the CLI for the time being, with the
supported commands 'install' and 'search'.
Task-number: QTIFW-2978
Change-Id: I281f171cc7d932ce496051d7090ae169a4709eec
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|\
| |
| |
| | |
Change-Id: Idadf4fb3047f72880e5a86f76eb21b659589cd17
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As the settings button can be configured to be visible for offline-only
installers, the user may configure additional repositories in addition
to the embedded binary content. Those repositories were not considered
for the metadata fetch, however, so components from those repositories
could not be installed.
Allow fetching metadata from temporary or user configured repositories regardless of if the installer is created as "offline-only". Also fix
required temporary space calculation when content is installed
simultaneously from both embedded to the installer binary and remote
repositories.
Task-number: QTIFW-3078
Change-Id: I4effa365e856ca009588ac8768f8b6c30b4b0373
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was previously possible only from the CLI. The same methods
can be used from the graphical installer, so we do not need to
limit the feature for CLI users.
Task-number: QTIFW-3072
Change-Id: I271aecf163528b922e6cc399d31f07218e2a1650
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Originally, new Component object was created for javascript so that the garbage collector would not destroy the object. This caused the
thisObject in javascript to differ from the object in packageManagerCore, which in Qt6.5 lead to warning messages when each script was evaluated:
"Warning: :1: Calling C++ methods with 'this' objects different
from the one they were retrieved from is broken, due to historical
reasons. The original object is used as 'this' object."
Fixes so that the new object creation is omitted
and QJSEngine::CppOwnership is set to Component object so that garbage
collector won't destroy it.
Task-number: QTIFW-1829
Change-Id: Ia131d88fc83122f11c5b19a431e7db45e0ba18f9
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Due to api changes in Qt6 versus Qt5 we need minor changes to both
tests and to IFW itself.
Task-number: QTIFW-3064
Change-Id: I7e08161db074c96a6d639a2ff8b4c3d73f59e3cf
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-1829
Change-Id: Iad99b41ec67b0d4c64623da04fff65a737f46ff2
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QScopedPointer function take() is deprecated since 6.1. Fixed by using
std::unique_ptr instead
Task-number: QTIFW-1829
Change-Id: I7a0c0167044dedf2f520fffc97a8f7d2a1e72371
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The installer.gainAdminRights() and installer.dropAdminRights() methods
are invokable from the scripting API. During installing, updating or
uninstalling components, installer does it's own decision making to
request and drop admin rights on-demand, but this could be overridden
with the aforementioned methods.
This was not taken into account, instead it was only checked if admin
rights were gained in the context of the calling method. Fix by
checking if the admin rights were present at the start of the installer,
or if they were requested by anyone during installation.
Task-number: QTIFW-2929
Change-Id: Ie4f6fc0ac746183b00f460a2e60c57c2eae9808c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the end of calculating components to install or uninstall, the
check states of the components are updated in the model.
The updateComponentInstallActions() asks both installer and uninstaller
calculators for resolved components, but these may not be valid after
new repository categories are fetched, and the component model is reset.
This would result in dereferencing invalid Component pointers in some
cases. The root cause was that the other calculator was not quaranteed
to be cleared when another requested updating the check states.
Fix by clearing both calculators before full recalculation occurs. Also
clear the calculators when the component environment is reset, for
correctness and to avoid bumping into the similar issue elsewhere in
the code.
Change-Id: Ide6a6188b9a19f4680cd79b55dcc842bbe98e174
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was behavioral mismatch of handling processes to stop for updates
between GUI and CLI modes.
For CLI, each command that would make changes to components would
recursively check the installation directory for running processes
early on, and block continuing if such processes were found. In addition
to this, the component scripts may have requested to stop processes
before performing component 'updates' (add/remove/update).
For GUI, only the latter functionality was utilized, so remove
the early checks from the CLI side to make the behavior uniform.
Task-number: QTIFW-2927
Task-number: QTIFW-3009
Change-Id: I028e699c43ef4352593b49ccc8a927644916c41a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|\
| |
| |
| | |
Change-Id: I9946bf8ff3ea4e132a0490b59c1d4d557198ef62
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In GUI, toggling between updater view, packagemanager view and updater
view could cause impossible dependency resolution error, or wrong
components to be updated. There are two component lists, one for updater
and one for package manager. Same component can exist in both list with
different pointers. m_componentByNameHash contains a quick lookups for
the components - as the component pointers change between updater and
package manager the list needs to be cleared between each
updater/package manager toggle so that correct component is searched.
Task-number: QTIFW-3001
Change-Id: Ia42370a286c45d831864ec632a6958f66209a4cd
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: If5494504e5afe13b70a818c3d6a5bff024fed459
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Cache ended up in invalid state when there was categories used in the
installer which were not all defaultly selected. Cache
was only party updated when using CLI command search, and
the cache was populated only with Updates.xml and repository.txt. In the
next installer or MT launch, installer thought the cache was up to date
as the Updates.xml was found and did not know that the metadata was not
fetched. This lead to different error messages, like 'Cannot open script
file' or 'Cannot open the requested license file' etc.
Fixed so that metadata is fetched also when using CLI command search
Task-number: QTIFW-2998
Change-Id: I1cdc446469f38cc9e6ddc71f512105fc5d10e74c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I486d6f3f6fbdbfe1b92ccff918aaf0fe72aa2fc8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The states were only updated at the end of PackageManagerCore
::recalculateAllComponents() method - the method calls:
PackageManagerCore::calculateComponentsToInstall() and
PackageManagerCore::calculateComponentsToUninstall()
functions in that order, and both emit signals indicating the finishing
of the calculation. Any install script connecting to these signals that
relies on the correct state of the install actions for the components
would work incorrectly, as the state was not updated to reflect the
calculation result yet.
Fix by updating the install action state in both functions before
emitting their finished signals. Also rename the function to better
distinguish its purpose from updating the check state of the components.
Task-number: QTIFW-2976
Change-Id: I67cd88478c39215ec124a5451c1f29a63cb1c82c
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of creating a temporary QHash object for treename components,
using QMutableHashIterator which allows items to be removed during
iteration. This change improves the function calculation 80 percent when
there are lots of components to go through.
Task-number: QTIFW-2805
Change-Id: I04e2fd95beafdae680eb86ebb184715dd73aea5b
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Updates.xml contains Checksum variable which can be set to false to
skip the archives checksum verification. The variable was read from one
arbitrary Updates.xml file and that was used in all downloads. Fixed so
that the checksum is read per Updates.xml. This change also speeds up
the component generation phase as it no longer needs to read Updates.xml
file.
Task-number: QTIFW-2805
Task-number: QTIFW-2928
Change-Id: Id28dd370ef200aec67cb85cbbc1d08d925b43c21
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
As the classes already share similar features and public API, it would
make sense to inherit a common abstract class to define the interface.
Change-Id: I7ed278b1b049b7ec12c4401e55fdf39306b0ab85
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To increase efficiency QString::split is performed only to strings
which are not empty.
Task-number: QTIFW-2805
Change-Id: Ieed887a3e6f415395497dcdf05c118b32c72d9ee
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I07baba6a0e64b6022e6a933708e199551be7dd2f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
IFW could already previously detect circular and missing dependencies by
running a precheck calculation when building the component tree.
However, there can be also cases of where the user selection results in
unsolvable changes to components.
One such case was the erroneous possibility to uninstall a component
marked with ForcedInstallation, if any of its dependencies was checkable
and the user unselected it for uninstallation.
Add support for reacting to such errors in the component tree view,
displaying a message box about the invalid dependency resolvation error,
and blocking further navigation until the component selection passes
the dependency calculations.
Also attempt some refactoring the related code to simplify the different
call sequences resulting in recalculation of the components.
Change-Id: I9dc78f858bd4be7932f89f8e14bbfd97fbd3a0f6
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In addition to the automatic selection, allow end user to select
components declaring the AutoDependOn property when updating components.
This does not change the previous rules for automatic selection for
update, meaning the component 'A' declaring AutoDependOn relation to
component 'B' will still be updated when 'B' is selected for update,
regardless of the user selected check state for 'A'.
This fixes some cases not handled by the automatic selection, where
the component declaring AutoDependOn relation could not be updated.
An example scenario:
- 'A' (1.0.0) declaring an auto dependency to 'B' does not follow the
release schedule and versioning of the component 'B' (2.1.0).
- 'A' has a new release (1.0.1) that is pushed to remote repository
- The end user cannot update the component 'A' unless 'B' is also
updated to the repository, which would trigger the automatic selection
Task-number: QTIFW-2855
Change-Id: Iea06c366f7f14f391cbc0b4a6526c8aee349ae59
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Installer can have thousands of components and only few of them user
selects for install. Parsing the downloadable archives to install only
when they are selected for install for better performance.
Task-number: QTIFW-2805
Change-Id: I0771df05e17c85f37639768e2581d85bbf7bf66f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-1829
Change-Id: I5f062ae4c6389aba57b1de6f0e1884b4cd301334
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia8717933439359e23b65d9465dec8c70fbe59ee2
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-1829
Change-Id: Ieae92a7736784784bc548433eda8b073b1a4b8f8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id8121e6b4cdda23c8c44cf779e35dce8d9a28090
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As there are several optimizations done, the single click of component
in component selection tree is not slow anymore. Cleaning the code so
it is easier to maintain.
Basically this revers commit a28cf55b5a5007c0dd952b3012c076d9da329f0f
but as there are bug fixes made after that so pure revert could not
be done.
Task-number: QTIFW-2885
Change-Id: Id486d5dc68c42c31b4848cd19a1761bcfe242db6
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Maintenance Tool can be retrieved from online repositories like any
other component. The component contains files which are listed to remove
correct files in uninstall. As Maintenance Tool differs a bit from other
components in the matter that it should not be deleted in full uninstall as
it is running, we need to exclude the Maintenance Tool (which we call
also installerbasebinary), from the file list. Maintenance Tool itself
is removed in PackageManagerCorePrivate::deleteMaintenanceTool()
Task-number: QTIFW-2875
Change-Id: I33a16e632e3b354099b749d8dde7b65f5cef8f43
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Added const and reference to function names, removed unused
variables etc.
Change-Id: I5e3851c13ff3baf1884356198020fc86e69d69b4
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I413669860334d96de684c1c32962a33166ac6c7c
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ie9b5f7a3db7e237d396dd5e72577258d953ec38d
|