Details
-
Suggestion
-
Resolution: Unresolved
-
Not Evaluated
-
None
-
4.6.0
Description
The 4.x series of installer framework has included a gradual migration to a new archive handling and compression library:
- In 4.2.x libarchive was introduced alongside the previous LZMA SDK (9.38.beta) for handling new archive formats, tar.* and zip.
- In 4.3.x the handling of 7z format was transferred also to libarchive.
- In 4.4.x the usage of the included LZMA SDK version was marked deprecated, and the library was omitted entirely from official builds.
I would suggest we consider if the old LZMA related code could be removed in the 5.0.0 major version jump. Some points to keep in mind if we decide to go with this:
- This would allow simplifications to the internal API and remove the need to maintain two facade implementations for the two different libraries
- Making implementation level changes wouldn't require duplicate effort to ensure compatibility with the LZMA SDK.
- As the official builds currently disable all code paths related to LZMA SDK, it does not get as much testing.
- The included version is very old (released 2015-01-03) with no straightforward update path and no plans to update it in IFW
- However, one benefit to users wanting to build installer framework locally is that the LZMA SDK does not require additional external dependencies. The libarchive configuration shipped with IFW requires non-optional linkage with external libraries, at minimum liblzma and libbz2. At least on Windows this requires matching the exact configuration options used to select the run-time library that were used for building the Qt version for IFW, which means it is likely that these need to be built also by hand.