summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/archivefactory.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 3rdparty: deprecate usage of LZMA SDKArttu Tarkiainen2022-04-131-2/+2
| | | | | | | | | | | | | | | | 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>
* ArchiveFactory: register handlers for .qbsp file extensionArttu Tarkiainen2022-01-111-2/+3
| | | | | | | | | | | 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>
* Libarchive: enable support for uncompressed tar archivesArttu Tarkiainen2021-12-091-1/+1
| | | | | | | Task-number: QTIFW-2404 Change-Id: I4c62d283d54a1f180f9c3525da0728a1c75ef50e Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Enable handling 7z archives with libarchiveArttu Tarkiainen2021-12-091-5/+8
| | | | | | | | | | | | | | 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>
* Add support for handling archive files with libarchiveArttu Tarkiainen2021-09-141-0/+147
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>