| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
This changes allows in follow-up commits to access windows registy with
other than just NativeFormat. This is needed for 32-bit applications to
access 64-bit registry and 64-bit application s to access 32-bit
registry.
Change-Id: I0b88f4eaa499e53e10162ae5343b95d06ddbfc27
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This causes problems when installers created with IFW share config files
with Qt 6 applications. If the config file contains keys with QDateTime
values written by the other application, the installer and maintenance
tool will segfault when attempting to sync the file, even if we do not
overwrite the values.
This is fixed to recent Qt 5 and 6 versions with the submitted patches
to QTBUG-102334. But as this requires updating the baseline Qt version
for both the Qt IFW and the Qt 6 application, apply the workaround
suggested in the issue comments, to avoid the crash in meantime.
Task-number: QTIFW-2610
Change-Id: I968e293324775dc650315e223f549a81657a27a3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If component is updated to repository, and new dependencies are added,
the dependencies should be installed only when fresh install to
component is made or the component is updated.
This change adds a new LocalDependencies value to component. It keeps
track of the dependencies the local installed packages has.
Fixes also a bug in uninstallecalculator, where we should also read the
dependencies from local installed packages instead of newly introduced
repositories.
Task-number: QTIFW-2624
Change-Id: I0557e5adf1e87c0a1238cc455cfb2c90f6b05c87
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Autodependency components were always forcely updated, even if 'Deselect
All' was selected in component selection page. Fixed so that the
autodependency component update is updated only when one of its
dependants is updated.
Task-number: QTIFW-2595
Change-Id: I05ececc45ef32ff80d53b008f839b358158a3316
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
| |
This change allows more freely to add new test cases as the test cases
are now independent on each other.
Change-Id: Ia0635cf44b51095ef7be8bd829474233fb075e7a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
| |
Change-Id: Id6cac37c1c5cb760ea5303a4fdbf53cf02fcda0a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a lot of components are installed, maintenancetool was slow to
select/unselect a single component. This was caused because the whole
tree's components were recalculated. Fixed so that only the
selected/unselected components and their dependencies and
autodependencies are recalculated instead of whole tree.
This change speeds up clicking tree item from zero to 90 percent,
depending on how much components are already installed. The more
components are installed as autodependency, the slower it gets to
select the items.
Task-number: QTIFW-2522
Change-Id: I5e824aed8787fd7ecdce72b15a1b13848f0a3923
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 3rd-party sources haven't been updated in a long time, and
is missing some features compared to libarchive (which the
official IFW binaries use), like symbolic link support on Windows.
Add deprecation warning when compiling with LZMA SDK, and make
building the library and related client code conditional behind
a separate config feature.
Update docs to emphasize that libarchive is the recommended build
option for archive handler.
Change-Id: I70ed5f9b5d13e2243778f7c44b4ea833c8092ae0
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
I couldn't find a reason why this combination wouldn't work. If there
are no known issues the option should be allowed.
Task-number: QTIFW-2558
Change-Id: I9bceddc70e3ea4edeb1af2fe873f96bf815900d3
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Also print a general message when no components from the user selection
are valid - in case the installer misses the detailed reason why
components cannot be selected, at least some information is printed.
Task-number: QTIFW-2591
Change-Id: I1b10e7601527ddc0192417b41691691b517139a5
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
In details view uninstallable and installable components are listed. For
installable components a reason is shown why the component is installed.
Added similar kind of message for uninstallable components as well.
Task-number: QTIFW-2581
Change-Id: Idbf31200793a6c89a4ed4a6fc115f49889b5f9b5
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\
| |
| |
| | |
Change-Id: I449320b3af2c561a0b4a4cb689d072533d8fdb8f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replaced component was uninstalled when installing other components
although no update or install was requested to the component. Fixes also
a bug when some components were uninstalled unvisible from user.
Task-number: QTIFW-2577
Change-Id: I6a7e9ce4a56991dfbdea53eb376d782dfb5d050a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Product image can now be clicked. It opens either url in Web browser or
if file reference is given, then it will be opened with the suitable
application.
Task-number: QTIFW-2361
Change-Id: I59ed1355e90c23c8d0a5124779725825ca1ee2c8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I8204fdbae2602f3dfb6eb04dc28d2e59606594ea
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Libarchive stores most paths internally in a multistring that can
contain a combination of a wide character string, multibyte string in
current locale or unicode string encoded as UTF-8. Try to retrieve and
set a variant of the string with the correct encoding when converting
libarchive strings to/from Qt string classes.
Task-number: QTIFW-2506
Change-Id: I7e7c1e3c5709b669df68b2f3918789ad4ebe4f13
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ConsumeOutput may be run to fetch a file path. Extra line break in the
end will cause problems.
Change-Id: I61133a66fb3d3a6961e9f79c11f783b5d103f046
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|/
|
|
|
|
|
|
| |
Some of the license headers were still LGPL. Changed those to use
GPL-EXCEPT.
Change-Id: I26fd46b1f226b2898c7296737c12c679bf3cc9e1
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
| |
Use https instead of http in www.qt.io/licensing
Change-Id: I0a2e97afcda03d50fd823be8e11426c2399a3b8f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add where missing. Replace occurrences of Q_DECL_OVERRIDE macro,
building IFW requires a C++11 compatible compiler so the language
specifier is preferred.
Change-Id: Idb75e2813d26b9da85e03891f0ae9537c6524c56
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I1d5fdfedaee35c530b383951e6fc69b75bd67d64
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If there are lot of components installed, querying core from component
caused unnecessary performance hit. Also replaced the foreach keyword
with the preferred C++ range-based loop
Task-number: QTIFW-1021
Change-Id: I961439ba14f26fee21f201769a71319b4b98d14b
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Print both 'TreeName' element and 'moveChildren' attribute value with
detailed verbosity mode.
Also use QXmlStreamWriter to write the output documents with
deterministic attribute order, QDomElement stores the attributes
internally in a QMultiHash map, which is randomized.
Task-number: QTIFW-2452
Change-Id: I8eec64d39394f4092f8505ec99869165c82d11da
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: Iaac72aa3d856a10c830f018ceb5c6ad87f4f28a5
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QBSP archives were missing a handler which caused UnzipArchiveTask
to fail when fetching metadata. Also fix the resulted segfault in
UnzipArchiveTask::doTask() when ArchiveFactory::create() returns nullptr
for unknown file extension - it now handles the exception properly.
Task-number: QTIFW-2475
Change-Id: I72624763a06d6e7495daebd69970a5f22a4fd6d3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ComponentModel object was not always reset in case we already got
to the point of clearing the source data (deleted components owned by
PackageManagerCore from previous fetch) and failed after that, leaving
the model with dangling pointers to the deleted component objects.
If we were already on ComponentSelectionPage, this would cause
segmentation faults when the component tree view using the model would
be shown again after fetch.
Task-number: QTIFW-2441
Change-Id: Ie779de5ca0a3c4ae895ea507e6be4a2f7343501e
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
| |
Replacable component was not correctly removed in install and update.
Also added new tests for Replace element.
Task-number: QTIFW-2454
Change-Id: Idce7fd1ef0ac2025ca5ca0952ab837e14516ac2b
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On (tree)name conflicts with other than the same component in local and
remote packages - instead of silently replacing the remote package with
local, do one of the following:
- Remote package A may have declared the same tree name as installed
local package B. Catch the case and re-register package A as an
unstable component with the original name, if possible.
- Remote package A may have declared a tree name that conflicts with
local package B's name. Do not register component A.
Change-Id: I16ac583ea10bf203d8b8d0b19e6890f03cf0067a
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add new optional "moveChildren" attribute to <TreeName> element.
Children of components declaring "moveChildren=true" attribute are
calculated a value for an automatic tree name element.
Multiple components in a single tree branch can declare a
tree name, the order which the relocation happens is from leaf
components to root components.
Components may be moved under another tree name target.
Components may be moved to an existing identifier part that
does not have a component, for example in the following
repository structure:
rootA.childA
rootB
rootB.childB
the "rootB" component can legally declare a "rootA" tree name.
The tree names of components become static after installed. If
a repository declares a new tree name for a component that is
installed, it is only applied after updating in maintenance tool.
Child components, which have an automatic tree name, are moved if
the parent component is updated with a new tree name, however.
Task-number: QTIFW-2380
Change-Id: I9c44a114d3c1248b7e2dd4f0b5cda0739af102f3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The QHash dictionary used to store component objects before building
the component tree may include keys that are either original names or
overridden tree names of components. Only the former were handled when
removing replaced components from the QHash.
Task-number: QTIFW-2455
Change-Id: I340aa61c724da0da62d7e5a875a38b6ecc0eceb5
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Components with conflicting original identifiers are not registered.
- Components with conflicting tree names are registered with the
original name, if installer is configured to allow unstable
components. Otherwise they are not registered.
- Unaffected components can be installed as usual.
Task-number: QTIFW-2444
Change-Id: Ic1eaf3878f974185bc68202930134e5199dc0398
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: Ie9e9b5659097d86d897995398ba29e0f8d7ba536
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This left quite many temporary files from being properly released and
could affect the test cases that followed, for example when temporary
repository directories were not cleaned they hid problems in the
clearing of downloaded archives resource mapping.
Change-Id: Id8ba1837486264d35af0c297a0519e160eb99d60
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QInstaller::init() registers the custom message handler used by
installer, which formats and prints the messages and writes the
installation log. We clear the buffer device used for the log contents
before it gets written on disk when destructing the installer's
PackageManagerCore object, but on tests there might be several core
objects.
Use a silent message handler instead.
Change-Id: I6694bca1dfffaffd1389f8f619531f1b0052c090
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes issues on auto-tests where we construct a new
PackageManagerCore instance for each test case.
Installer registers downloaded archives into internal resource
collection mapping with a naming scheme that contains values such as:
"installer://collectionName/resourceName". As the "BinaryFormatEngine
Handler" singleton class retains the resource collection mappings
between mock installer runs, we ran into situations where we would
register different actual paths with the same mapped file names, or
the old resources would not exist anymore on disk, causing failures
at different points.
Change-Id: Ic7ee30886a2c586fbe0efbe4bb4d19a24d9dba83
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
Also update build version requirements.
Task-number: QTIFW-2388
Change-Id: Iae1949548dda7a3b8d448228e27060efb5abd8eb
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTIFW-2404
Change-Id: I4c62d283d54a1f180f9c3525da0728a1c75ef50e
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make libarchive the default handler for 7z archives if the IFW
tools were built with the 'libarchive' configuration feature.
The LZMA SDK library is still built and can be used instead
if the config feature is omitted.
Also modify tests.
Task-number: QTIFW-2375
Change-Id: I1091d5fa140cbd783cddecc595f35c6562639b07
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
| |
Arguments with wildcards were not working if archivegen was called from
somewhere else than shell, like from within a Python script.
Task-number: QTIFW-2423
Change-Id: Icf6d6c3c45ad9050a03c1a3dd7c4d9f10d1f3be6
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Change-Id: I63f80301f452d3d83384fb2c7b3039b43b9d61fe
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
| |
Building with Qt 5.15.2, the qmlimportscanner will complain about
"No such file or directory" for paths using backslash separators.
Task-number: QTIFW-2388
Change-Id: I7e8b25c67505524edc83077ab52bb2c0ed03884a
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Windows, QFileInfo::isSymLink() returns true for *.lnk files, which
unlike symlinks contain data - when creating an archive the writing was
incorrectly skipped.
Also add test case for creating and extracting archives containing
either symlinks or shortcuts.
Change-Id: I3ebbd28e889ffa17ece7378c3812244a55df20d5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes losing executable bits of files in Zip archives when
extracted. Zip archives store file metadata in two ways, partial
metadata per-entry and full metadata at the end of archive. IFW's read
implementation previously did only streaming without support for seeking
archives, which is required to obtain full metadata - meaning the
partial metadata was used instead by libarchive's Zip reader. The
extracted entries between the two metadata types are not consistent.
This change also enables usage of archive formats that cannot be
accurately handled with a streaming model, like 7zip which needs to read
key data from the end of the file before reading file data from the
beginning.
Task-number: QTIFW-2372
Change-Id: Ie4ed33040fc52de073546e46d9da726816f47a81
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not use our own message handler for printing XML-formatted component
information (from 'list', 'search', 'check-updates') that is expected to
be included in output regardless of the current verbosity level or
logging rules. Higher verbosity can still add more information to be
included in output.
Also:
- Modify auto-tests to pass and check the output correctly.
- Remove now orphaned 'ifw.package.info' logging category.
- Rename 'LoggingHandler::printComponentInformation()' to
'printUpdateInformation()' to better match the intended purpose.
Task-number: QTIFW-2349
Change-Id: Id1a868f8f824c606825cd6168974a7e3845383e6
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
| |
This tends to fail on CI with rhel 7.4
Change-Id: I50408060f75d57497b878bc171289bb39a859644
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QTIFW-2344
Change-Id: I971e96ed5b1f1e52c5779a04b7edab0952d89d9a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|\ |
|
| |\
| | |
| | |
| | | |
Change-Id: I8e2864b3ec81cffa907fe02ff1f2019e155c54e3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When collecting information about the paths to be compressed into
unified metadata, if the package directory used to update repository was
missing replacements for two or more components, it would reveal an
issue with the traversing of the existing repository directory.
Fix by adding the missing "cd up" after entering a component entry
directory. Add new test case.
Task-number: QTIFW-2287
Change-Id: Ica1228968398b6e987bdf89336f74f53fcd35d27
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I1e3a91fd0722b0b73197257ec5092a617b41516e
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|