Qt Installer Framework and Online Installer 4.5.0 released
We are happy to announce about the Qt Installer Framework and Online Installer 4.5 releases today.
The major improvement is the evaluation of metadata. The situation has been worst in Windows, where there are several toolchains (MinGW, MSVC) to be selected by the user. When all the categories have been selected, selecting all the categories, it has taken several minutes to evaluate all the metadata. This is because
- There are more than 15,000 install scripts to be evaluated
- Each meta.7z, containing a install script, is downloaded first
- Then each meta.7z is extracted
- Finally the scripts are evaluated one by one.
Downloading and extraction take place in multiple threads.
We measured the metadata evaluation phase and identified some points where excess time was spent. These findings resulted in optimizations affecting the speed of evaluating the install scripts and calculating component dependencies. The improvements are especially noticeable when there's a large number of component metadata to evaluate, such as when all repository categories of the Qt Online Installer are selected and fetched.
Another significant performance improvement is the metadata cache. Metadata is cached into the file system, which makes subsequent metadata downloads much faster when the repository content hasn't changed on the remote server. Users creating their own installers with the Qt Installer Framework may still opt for a non-persistent cache, to minimize disk space usage. We will consider using the cache for data archives as well. However, there are other issues to be solved like heavily increased need for the disk space for cached archives.
With the combined effect of the above mentioned metadata evaluation optimizations and a populated cache, the overall reduction of time spent was over 70% with the Qt Online installer on Linux, when processing all components available for the Qt for Device Creation Enterprise license.
We introduced repository categories several versions ago to optimize and limit the amount of metadata archives to be downloaded. Even though the performance has improved, we decided to keep the categories in this version to keep the evaluation times short enough.
Last but not least the Qt baseline for Qt Installer and Maintenance Tool has been updated to Qt 5.15.11.
Most important fixed bugs
We have been working towards providing the Qt Online Installer and Maintenance Tool as universal binaries on macOS, as they are currently x86_64 only. Code signing is now a strict requirement for running ARM binaries on macOS. The previous way of providing Maintenance Tool updates with only the base binary wouldn't work as the whole application bundle needs to be signed. In this release, in addition to the binary, we have added support for updating the Maintenance Tool with an app bundle, which can be signed and used instead of the base binary.
The problem of installer stalling in a single CPU core machines has been fixed as well.
Installer Framework translations have been updated for changed and new strings in the UI.
To see the complete list of changes, please read the Changelog.
Unrelated to the release, we have decided to start supporting module dependencies. If a module has a build or run-time dependency on another module, the other module is automatically installed as well. We have not done this earlier to optimise the installation package size. However, there are several filed bug reports (for example, RHI plugin not installed without Qt Shader Tools) that a module does not compile or run because of the missing dependencies. From now on the dependencies will be added. The package size will increase, but it is more convenient to get the dependencies automatically than manually add them one by one.
Where to get the IFW and the installer?
Precompiled binaries for the Installer Framework can be downloaded from Qt Online Installer, sources and binaries can be found also on the Qt Download page (open source) or in Qt Customer Portal for commercial users. The latest documentation can also be found online.
Thanks to everyone, who has contributed to the release.
Subscribe to our newsletter
Try Qt 6.6 Now!
Download the latest release here: www.qt.io/download.
Qt 6.6. is a feature release with focus on improving UX capabilities including responsive UI technology and the Qt Graph module.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.