| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| | |
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: I86049138466399411ba36791330f4a94faad8c52
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-2225
Change-Id: I6a7fdfc1070ad54d520563cae7d2446e97e2e87c
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I8adecc4573134d2b33f2b98fba9372320b2f8737
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-2189
Change-Id: Ic6f56156194039cca7bebf095fad8c1fc66fc275
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In a somewhat rare case, it is possible that a same package exist in
multiple repositories. The latest available package from remotes is
used - however if we select that package for inclusion and also
implicitly get some other package from the another repository it exists
in with an older version (autodependency, etc.), that repository is then
also used to parse package information, and we store a duplicate entry
of the package to the Updates.xml to-be-written to the offline
installer binary.
Fix by appending only the package with the latest version to the
PackageInfoVector object used to temporarily hold the package
information.
Task-number: QTIFW-2190
Change-Id: Icdb3dc979153dfada37fdb0aabb3c718bc8aedff
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Search command results can now be optionally filtered with
the '--filter-packages'-option, which takes an unspecified
count of key-value pairs that contain the desired package
information element and a regular expression used to find
matches in the element.
Example usage:
'installer --fp "Version=1.0, Description=Some text" search *'
Only the packages which match all given filter rules are
included in the output print.
Task-number: QTIFW-2168
Change-Id: I788b065d95952b988489c36db80b3c859b970f05
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously subcomponents of a virtual component were shown on
search results, and trying to install these would print a bit
vague message: 'Component not found'. As the sub-branches of
virtual component nodes are hidden on GUI, we should also hide
them when using CLI search, and give a more appropriate error
message why the component cannot be explicitly selected for
installation, if the user still tries to do so.
Also some minor refactoring to the handling of supplemental
information about binary type of the running installer/mt.
This change does not fix the possible case of an install script
changing the 'virtual'-state of a component, as it would require
downloading and evaluating the full metadata for repositories (or
components), which would impose a performance penalty to search.
Task-number: QTIFW-2168
Change-Id: Ibacaca23c38f5ea98967955d91849cefc1f11f61
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I787b6ae58a01af1d8be5f3504e561982cf8acc0c
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia8305652afdf29cbc88328b76f5156187aa54dba
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ibf92b3e93ca11428f92e60031a5c8c3c5f60b402
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I77acdecaf5660f2d7aa723c56d53a97e5687a8b8
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Components can be updated from online repository using version number.
Sometimes there is a need to update to an older version which is now
possible by using content sha. Content sha can be added to repository
with repogen --sha-update <component_id>. If there is a new content sha
available in the repository, component is updated although it version
number might be smaller. After the content sha is removed from online
repository, the normal update with version number is performed.
Task-number: QTIFW-1798
Change-Id: Id9e32b0345af5101cccaf6e30c81bd39691d9590
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|/
|
|
|
|
|
|
| |
Functionality is only moved from repogen.cpp to repositorygen.cpp. This
makes the repository testing much easier.
Change-Id: I2078e2880955c71b9ffa0ac46501eafbd499c3ba
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also changes some of the return values in our CLI-related
functions in PackageManagerCore class to better catch cases
where we exit without failing but also without doing anything.
Also adapt existing tests.
Task-number: QTIFW-2028
Change-Id: I73c4ca1b20d439773d0e290195f137d0d7369d17
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting <TreeName> -tag to component.xml will overwrite the default location
of component in installer's tree view. This way we can define the component
location without a complete repo build. Updates.xml can be directly modified
by adding <TreeName> -tag for easy relocation of components. TreeName must be
an unique name - it cannot conflict with existing tree name or name.
Task-number: QTIFW-594
Change-Id: Ie69f90f1303d932369d566d0d7b4bc0e354505c6
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Execute operation can have hard coded paths to program which is
executed. In case the program is relocated, UNDO operation will fail as
it will not find the program. Implemented new XXXX_OLD value which can
be used for overwriting the hardcoded value. In case the program
execution fails, program is tried to launch again with the replaced
value.
Task-number: QTIFW-2125
Change-Id: I446a4c423e53cc4ffc6e5e25617d2400945ac3d9
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTIFW-1903
Change-Id: I4d8eaf71a1a63dfbfa75ea61af728fa1f5e3e9f3
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The operations write the output files to a valid, writable directory
value of XDG_DATA_HOME variable if set, otherwise defaulting to
"$HOME/.local/share". This follows the XDG Base Directory Specification
but misses the use case of system-wide installation: the XDG_DATA_HOME
should only contain base directory relative to which user specific data
files should be stored.
Prefer a predefined value "/usr/local/share" when launced as root or
the internal elevated admin rights handling is active. This should be
a sane and well known value for applications installed system-wide, and
should not conflict with files extracted by distribution's package
management system.
Task-number: QTIFW-2093
Change-Id: I96fab3367122e7df783697e07baeb71dfd9b3f0e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-1945
Change-Id: Ic8a076a28385e99ad09cfbccd07c7012d6570639
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2089
Change-Id: I8cccd471718eaaa6dc167a852b8854dc424f994e
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2090
Change-Id: If0c2d4901ee1fb634e1e436ab14a507d06dd99ab
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-2088
Change-Id: Ic5e781b89b1c74fc8f65575bd46c073610545523
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
| |
Task-number: QTIFW-1973
Change-Id: I89f15c8ed7d56c3e1bc72d3c740e9054363f9390
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Setting ForcedUpdate for component will cause a mandatory update for
component if it is installed. Component must be updated before any other
component can be updated/installed/removed. Essential components are updated
at the same time with ForcedUpdate.
Task-number: QTIFW-1565
Change-Id: I6af07fba222371e8cd161d1fec65301450077d86
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Operations can from now on be declared also in component.xml. The
operations are performed, backuped and rollbacked the same way as they
would be when defined from scripting api.
Task-number: QTIFW-507
Change-Id: Ia509219b94737136c3de25db0cb0c72076b48380
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
| |
This makes it possible to utilize parts of our existing tooling in the
offline installer from online installer generation process.
Task-number: QTIFW-2048
Change-Id: I7ee605be75541cc83a3b6909089bda45f0835bcf
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
| |
Also removed logging categories for package information, the full package
information can be printed by increasing the verbosity level.
Task-number: QTIFW-1950
Change-Id: I4bce019a63ba1fbf48e3bb0ca45511e42d4974c9
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|\
| |
| |
| | |
Change-Id: If5205ff6ef2c8989520e24d41595c04d5920d207
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
United metadata 7z was missing the component which had no update
available.
Task-number: QTIFW-2018
Change-Id: I069fd852499f157075bf28e3ccfef3e42e5f30a9
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The debug print does not look very nice when the string contains escape
characters for quotes or extra spaces.
Change-Id: I9428d3aef4e3ebd693f66083447430e4e2600098
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-1062
Change-Id: I3deb46cae74d1e5851d4ddd4b58c0ba19375ddbd
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-1996
Change-Id: Iaf9aa6bfd39d266ed052838e969881c168b4b2ed
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ifbbfec4449a9f5b0a79269fc7ddfcc1780e762e5
Task-number: QTBUG-76210
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTIFW-1953
Change-Id: Ie291e8ae96d46082e342e9bcb152258862813afd
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|/
|
|
|
| |
Change-Id: Ie61b192bcf047cc70f728ea15370ff50e7a41769
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: Iced229d7d364f68599bd6eec20db57838f36a671
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
| |
Change-Id: I67178a9df34e3ed4752452dca9a85709fdd4c620
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed regogen 'update' and 'repository' options to work with unite
metadata.
--update-new-components with unify metadata is prevented.
Moved --update-new-components functionality from repogen.cpp to
QInstallerTools so it can be accessed from tests.
Created tests for repogen.
Task-number: QTIFW-1943
Change-Id: I12389f4747154a0f6f51b4f34f630103c2cfef04
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
|