| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The RemoteObject destructor did not wait that the actual command data
was written to the socket before it was closed.
The incorrect behavior could be noticed with the recently introduced
LibArchiveWrapperPrivate subclass of RemoteObject. Deleting the client
side object would leave the associated RemoteServerConnection thread
owning the wrapped object occasionally in a running state.
Change-Id: I5297fae15d21363227f63b5340946c03cfd03400
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|\ \
| | |
| | |
| | | |
Change-Id: Ib519ee5a92064a033f20609c95515dec45932cac
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since we already adjust the output path for archive entries, libarchive
would fail with the error string "Hard-link target '...' does not exist"
for hard links referring to extracted files. Fix by also adjusting the
hard link target paths.
Task-number: QTIFW-2403
Change-Id: I8f78117c5b0707a70c76433ca1c1483ea49b432b
Reviewed-by: Katja Marttila <katja.marttila@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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that the server process may request file seeks in addition to reads
for archive formats supporting them, the interval which we process the
requests will have a big impact on the extracting speed.
Also shrink the read buffer as its size isn't as significant for the
performance after this change.
Task-number: QTIFW-2384
Change-Id: Iaf296833c6ff1acfc666a6e82f661e1a40c77b61
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
archive_write_header() will write the complete symlink to the archive,
the client application should not try to write any data for symlinks
or if archive_entry_size() is zero.
The tar.* archives were not affected by this.
Task-number: QTIFW-2382
Change-Id: I6a5e62ef4c7e650ad806f183556e39ac8ae8cdc3
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I47d24c72317bed594b22b234be75d0359f2e2b98
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
verbosity"
This reverts commit fae6c9901645d6ae6acdeaf843e542385318a1d8.
Reason for revert: updateinfo plugin also sets QT_LOGGING_RULES=*=false,
meaning the printing is still suppressed.
Change-Id: I5f14d471221a32c58d028be5f06a199422dca7d4
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Dependencies example creates a local repository. The example was failing
in Windows because QFile was not able to rename the file when creating
a local repository as it was open by Lib7zArchive.
Task-number: QTIFW-2362
Change-Id: I7d118707c0d770e67b5a71167b9818fbcccc599f
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduce ComponentSortFilterProxyModel, that compared to its base
class QSortFilterProxyModel, accepts also child indexes of a source
model index which is directly accepted by the filter.
Also remove emitting of QAbstractItemModel::dataChanged() for each
item in the ComponentModel, which was done regardless of if data at
index was changed or not, after reset or when check state or data for
any item was changed. If the ComponentModel acts as a source model
for a proxy model with 'dynamicSortFilter' property set to true, the
extra emits hurt the performance as the model gets filtered again for
each source model change. Actual changes done to the ComponentModel
are still notified.
Task-number: QTIFW-1404
Change-Id: Iea696f8b9abf79d877fb2568488b09dc3cb061be
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Resetting the model is split into two parts - 'ComponentModel
::setRootComponents' updates the root item list and emits
'QAbstractItemModel::modelReset' which was connected to a private
slot of the class that updates the component check state and then
emits 'QAbstractItemModel::dataChanged' for each component index.
The issue was that these could be emitted before the proxy model's
private slot that catches the source model reset and performs
invalidation had been invoked, causing the proxy model's slot
reacting to source model data changes to refer previously retrieved
source model indexes, which now had invalid information.
Fix by moving the post-reset operations to non-slot function
'ComponentModel::postModelReset()' which is called after the
'QAbstractItemModel::modelReset' is emitted, so that any directly
connected slots get invoked first.
Task-number: QTIFW-1404
Change-Id: If4d55110c93658689787484d0e8a8eb6b6da685d
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
No need to have our own logic for generating unique file name when used
with a name template as this is also possible with QTemporaryFile.
Change-Id: Ia43e6d7f33e7612cd70851319fbc49fbf373b2db
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|/ /
| |
| |
| |
| | |
Change-Id: I1f090be53caced09db655a310a57893e13e77eab
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it easier to grep usage of variable and we shouldn't really
use the magic string as there is already a constant.
Change-Id: I96a6b3901f79127b7cf71494643e2cd038df6670
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-2208
Change-Id: I8c8e9bd798320ab6d4397ac411cfea75177d27f2
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-2344
Change-Id: Ibedcecc82b7a7a28040d0308aa4211925e7fc251
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is required for the deprecated '--checkupdates' option to behave as
it did with IFW 3.x, printing only the XML-formatted update information.
Task-number: QTIFW-2349
Change-Id: Iebd75b33943216a1c7d3b50882e2d1b7a567aa08
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-2347
Change-Id: I1eb11495f3985a0e845853fbfc598447e662bada
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: Id6a94106256309af07ac8fe58952fce4382ee5ea
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\ \ |
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I8e2864b3ec81cffa907fe02ff1f2019e155c54e3
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTIFW-2253
Change-Id: Idf0216c1b4491160ee06924241bf26aaace9c883
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ComponentSelectionPage::isComplete() would return false if the state of
the component model was "DefaultChecked" and user had not (de)selected
any new components. This change adds a condition to check if there are
any ForcedInstallation components that haven't been previously
installed, and allows navigating forward and installing those without
additional selections.
Task-number: QTIFW-2286
Change-Id: I273cc7219df1eae4e11ff23e733d71a9c297bedd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Value of StartMenuDir variable should be permanent after initial
installation and must be read from maintenancetool.ini, don't use the
default value from internal configuration file (metadata/installer-
config/config.xml) of the maintenance tool binary as it:
- Does not contain the path prefix for either user or system-wide start
menu directory, we add this later depending on the installation type.
- May change altogether with a new configuration file if the vendor has
provided an update mechanism for maintenance tool, or if the user has
opted for a non-default location.
Task-number: QTIFW-2284
Change-Id: Id731d151b9f0acc77aa146722d1e088ea6a47eb3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also make the detailed output to be shown on the installation
error message box.
Task-number: QTIFW-2273
Change-Id: I9c678a0b382d52a6ff9ba78e0d93118714cc96ae
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Installer may leave an event loop running in DownloadFileTask::doTask
when shutting down, if Downloader::testCanceled() was not yet triggered
by connection events, or by a timer timeout used to check if the user
has canceled download while the connection is blocked.
Fix by waiting for the tasks to finish when canceled.
Task-number: QTIFW-2282
Change-Id: I8800cdb3c368da3edaf8def50e3b8e837d3e993c
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The "component::addDependency" and "component::addAutoDependOn" methods
support also specifying a comma separated list of components in the same
string parameter.
Change-Id: I7f4d289d80d4efd485a0cfa64c6dda93bfc2f59a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTIFW-2264
Change-Id: Ie7191ba75d923cc8d8eb353f7fac85818b87591f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use a function overload of QUrl::fromUserInput that takes a
workingDirectory parameter, in order to be able to handle relative
paths. Otherwise a string pointing to a relative local file path is
handled as a short form of a HTTP URL.
Change-Id: I5811661680728e79555ea7b99d0a1e8a8f294b44
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTIFW-1587
Change-Id: I8855b1ce4bb8abf072ff235846428fc63729f0fb
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTIFW-1587
Change-Id: I86c4b08eb43e3cafbab83e04961c51d6bdbc98ba
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
libarchive is a multi-format archive and compression library
written in C and licensed under the new BSD license. Usage of
libarchive brings in support for additional archive formats
(in addition to 7z) with the installer framework, like zip and
tar, with several available compression methods like gzip, bzip2
and xz.
libarchive will coexist as a supported archive format handler
with the LZMA SDK currently used in the framework, which will
continue to be used for handling the 7-Zip file format.
This change introduces classes for handling archive operations
using both libraries, removes most calls to the old Lib7z facade
and migrates the code base to use the new handling methods.
Task-number: QTIFW-2255
Change-Id: I8d77110ded503060495a3d6fdfdbc26281df9453
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Included from upstream source archive distribution:
* Sources from "libarchive/" directory, excluding manpages,
tests and build files
* "COPYING" from archive root
* Configuration headers in "3rdparty/libarchive/config/*" are
pre-generated from "build/cmake/config.h.in"
- Add project files for qmake, document usage of library in
"3rdparty/libarchive/qt_attribution.json".
- Update build instructions for Coin.
- Support for libarchive can be enabled or disabled with the
"libarchive" configuration feature.
- Update "Getting Started" page in documentation.
Change-Id: I2c2312600b3c6ede4925625d29953dcebaa48b98
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Qbsp package adding failed using gui if the package with the same name
existed in the component tree.
Also increased priority to qbsp package so that if the same name and version
exists in the component tree then qbsp package is used.
Task-number: QTIFW-2312
Change-Id: I732fef1a7ba503d2332f411e15b6873c63dcf630
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: QTIFW-2288
Change-Id: I49e82485939f220fe51ab52d2abe406fd6e4881f
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTIFW-2207
Change-Id: Ia4ccc5f71a489a1663cdbf66a69f442366e65fc9
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As the uncompressed size is only checked for already installed and new
component selections (+ dependencies), it makes sense to show the size
information for only these components in the ComponentSelectionPage
"Size" column.
This makes it easier to follow how the component selection affects
installation size.
Task-number: QTIFW-2293
Change-Id: Ic8feb505534a1726b6b3296eda7e1ae824292ece
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTIFW-2245
Change-Id: Id9a79c7c572dc588c05ad37c67ae3f0431fa7cdb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: Iff5a7a99afca53305c7f404a74f210f67728dd54
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Translations are read from resource. The file name must match case
sensitively so that resource loading will succeed.
Task-number: QTIFW-2265
Change-Id: Iabc899b99bbbed346ff8e7395af82545e9079eb2
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTIFW-2244
Change-Id: Ib3c717eb7fd76bdc928072630177c71933e8aef1
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I86049138466399411ba36791330f4a94faad8c52
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTIFW-2225
Change-Id: I6a7fdfc1070ad54d520563cae7d2446e97e2e87c
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Component translations were following the system language although
allowed languages were set in config.xml using <Translations> field.
Also the translation file name was not correct as IFW languages has the
syntax 'ifw_<language>'.
Task-number: QTIFW-2220
Change-Id: I6a6f19351cbb956accbc22bc532f7a12dde21a2f
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTIFW-2199
Change-Id: I56f3663ae605b2c568925702e06c4438e11830ac
(cherry picked from commit 35f79da9cb99c7c0456f002829dc0fdfe55b4f8d)
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Maintenancetool has saved values, which are loaded after installer has
initialized some values, overwriting the installer initial values. Fixed
so that only values that are not already set in installer init will be
set from maintenancetool ini file.
Task-number: QTIFW-2218
Change-Id: Ide6a3f67daec81fe22d6dcde1e95a28f5ed2c53a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|