summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update build instructionsHEADdevKatja Marttila19 hours2-8/+8
| | | | | | | | Qt configure options, Qt version, and compilers has changed, updated the documentation accordingly. Change-Id: Ibc3922eb87e2299c5286195aae42a925ec074d7d Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix potential DLL hijacking in WindowsKatja Marttila9 days1-0/+1
| | | | | | | | | | Set linker flag to tell Windows to load the system dll:s from System32 -folder. The flag prevents the possible malicious dll loading from the directory from which installer is launched. Task-number: QTIFW-2445 Change-Id: Ibced98f1535acbc7d6ab505d575cdfaa5337ac16 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix progress percentage calculationKatja Marttila9 days1-2/+0
| | | | | | | | | Regression due to download optimization fix. Percentage seen in terminal exceeded 100 percent while retrieving information from remote repositories. Change-Id: If64a6b4638d9432a90d577272b38ba8965ba2412 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix download error when network is unstableKatja Marttila2025-12-024-4/+33
| | | | | | | | | | | | | | | | If network is unstable, some packages might not be downloaded. Installer will try to download missed packages again 3 times. When retrying download, all necessary values were not cleared, causing installer to download all files again and again, and resulting to a failed installation and 'Cannot verify Hash' error. Also, as we refetch the already fetched packages when hash verification occurs, the downloaded amout exceeds the total amount. When this happens we inform the user with a common status message instead of starting the progress calculation from beginning. Task-number: QTIFW-3882 Change-Id: I5d0b6a949e5c921d4f4fddcf5ae0c4b9085bedb4 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix script usage for local installed packagesKatja Marttila2025-10-313-4/+24
| | | | | | | | | | | | | | | | If local installed package tree name differs from tree name in remote, the script is not found for the component nor evaluated. In situation where is no tree names, local package is replaced with remote package, with minor updates to the remote package, so that all component values (for example new version) remains. As local package tree name is overriding the remote value, local package is used instead of remote. As the local package still needs the script information, release date value, and new version, the local package is updated using the remote values. Task-number: QTIFW-3884 Change-Id: I1474f9cb8ba44639e44bedaacfb4c1ffd302cfd8 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix progress message when downloading archivesKatja Marttila2025-10-203-3/+4
| | | | | | | | | | | Progress was calculated and shown to the user before the total amount of downloadable data was set. The user was shown the download phase to last several days. Setting the initial total amount to 0, so we can compare whether the total amount is set or not. Change-Id: Ica649ecf18b4cf5cfb5e92933c5f689c9bcb80bb Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Port to Qt 6.11Xavier BESSON2025-10-166-2/+25
| | | | | Change-Id: Id4f8a2e7b515486e1b7ccc6605e80a5ac72c05a3 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix component calculating in CLI modeKatja Marttila2025-10-101-0/+3
| | | | | | | | | | Components were calculated before component post scripts where performed. This caused issue if the script contained a dependency add, or another method which affects the number of installed components. Task-number: QTIFW-3873 Change-Id: I1e9edf2f61b0bada3c1a2f7fb01451bd35cdcf63 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Change default button in finished -pageKatja Marttila2025-09-251-0/+6
| | | | | | | | | When running maintenance tool, and no essential components have been updated, installer should offer the button Finished instead of Restart. Task-number: QTIFW-3858 Change-Id: Ic8e651f819fb9d0deaad556559278a912bfcea38 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* COIN: Support for universal macOS binaryKatja Marttila2025-09-241-1/+1
| | | | | | | | | | From version 4.11 onwards installer and installer tool binaries are built for macOS universal only. As we build with the binaries with Qt version 6.9.x, universal binaries will work on all supported platforms. Change-Id: I6d5e6c431fdc481a60f0fa61e03b3b5722a1a9c9 Reviewed-by: Teemu Jokitulppo <teemu.jokitulppo@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Remove libarchive CONFIGKatja Marttila2025-09-082-4/+4
| | | | | | | | CONFIG was accidently readded in previous commit which updated instructions. Change-Id: Ia135d128657bd4cf8adae5243542e2e486d574f0 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Update qt5 dependencyTeemu Jokitulppo2025-09-051-1/+1
| | | | | | | | Dependency updated to tqtc/6.9.1 do to baseline being updated to Qt 6.9.1 from Qt 6.7.2 Change-Id: I9dca80abea06f0f1f4313f4fce7cb313172ab772 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Update coin instructionsTeemu Jokitulppo2025-09-052-6/+70
| | | | | | | | | | | On Windows ARM, qmake does not properly process INCLUDEPATH and LIBS variables set in the environment, causing build failures. This change modifies the qmake command to pass include and library paths explicitly on the command line, ensuring correct linkage and compilation on WOA platforms. Change-Id: Ic87fc7f134d60825061b6b0d5c5c7632ba35136b Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* 3rdparty: remove libarchive CONFIG featureArttu Tarkiainen2025-09-0214-69/+21
| | | | | | | | | As libarchive is now the only supported archive backend, we can remove the CONFIG feature and build it unconditionally. Task-number: QTIFW-3819 Change-Id: I21a32f59ccd23c87e21e513c135170f1c4919f8f Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Improve CLI input handlingTeemu Jokitulppo2025-09-021-0/+17
| | | | | | | | | | | Allow users to respond with 'y'/'n' in addition to 'Yes'/'No' when answering prompts in CLI mode. This improves usability and aligns with common CLI conventions. Task-number: QTIFW-3764 Change-Id: Idc826de15a55f6f6c9b2b9cb859a5af6236f0f0b Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* installer.readConsoleLine: show title before checking if output is a TTYArttu Tarkiainen2025-08-221-2/+5
| | | | | | | | | | In case the installer is not associated with a TTY, the title message of readConsoleLine() method would be lost, instead printing an error message without context and missing potential instructions for unattended usage. Change-Id: I64e370bf04396e6c8ffae29fdc1fd519902db3d3 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix installer hang when having invalid repositoriesKatja Marttila2025-08-191-1/+1
| | | | | | | | | | | Installer can have invalid repositories (Updates.xml not found). When having such repositories, user can still continue installation using other, valid repositories. This change fixes installer hang when there are both valid and invalid repositories, and the download is done in order when valid repositories are fetched first. Change-Id: If0f718cd6eab44c27263225fd6c822ffd70fd398 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Inform about metadata download failKatja Marttila2025-08-196-2/+28
| | | | | | | | To inform metadata download fail, a signal is sent. The signal can be connected by IFW extensions for customized handling of the error. Task-number: QTIFW-3829 Change-Id: Ic5a31d10f7f86e8a3a213d339f7cbccd5955347e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* feat(i18n): Complete Polish translation for IFWTian Shilin2025-08-121-8/+8
| | | | | | | | | | | Complete missing Polish (pl) translations in Qt Installer Framework. All unfinished texts were translated using a combination of: - Professional Polish terminology dictionaries - AI-assisted translation with linguistic review - Maintaining consistency with existing translation style Change-Id: I1eab3a6fa4500f1afdf072a4d773dfeb722e7d5f Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Improve lock acquisition error message for better clarityTeemu Jokitulppo2025-07-072-4/+9
| | | | | | | | | | | Updated the error string shown when the installer fails to acquire a lock file (e.g., when another installer instance is running). This applies to both Unix and Windows implementations. Task-number: QTIFW-3459 Change-Id: If807d152334ca6401827c5408158419d19bce779 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Convert missing backup error into warning during undoTeemu Jokitulppo2025-07-071-3/+5
| | | | | | | | | | | | When undoing the AppendFileOperation, failure to find the backup file previously caused an error. This has been changed to log a warning instead, allowing the undo process to proceed gracefully in cases where the file didn't exist originally or the backup is unavailable. Task-number: QTIFW-3290 Change-Id: I9f06174a3b9fb279e8ce8c5327827dc714c5aa12 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Fix clang and clang-tidy warningsKatja Marttila2025-07-0729-122/+136
| | | | | Change-Id: Ia31d847b56ad0ca40ca32fdd8c78e8018c9c34e6 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix the 'recommended size exceeded' messageKatja Marttila2025-06-171-2/+2
| | | | | | | | The message was shown when the space was freed, as we were comparing unsigned and signed integers. Change-Id: I97a759d01e663837421515661e4a102d5683ee83 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Support parallel data downloadKatja Marttila2025-06-1331-2305/+939
| | | | | | | | | | | | | | | | | | | Instead of downloading data packages one by one, parallel download is now supported. Installer downloads first all sha1 packages, and after those are downloaded, data packages are downloaded. Data and sha1 files downloads are limited to 100 downloads per QtConcurrent run. The limit can be modified by setting environment variable IFW_DOWNLOAD_SIZE. QNetworkAccessManager might do its own download limits. Data packages are now downloaded using the existing 'Downloader' -class. Also the download resume is moved from 'FileDownloader' class to the 'Downloader' -class. As metadata download also uses the same class, it means that also metadata now supports download resume. Task-number: QTIFW-1151 Change-Id: I8500f5ce419f40575e1ac6354a0ff8f728d1812e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix variable replaceKatja Marttila2025-06-062-2/+51
| | | | | | | | | | | | | | Variables can be defined inside '@' symbols, and are resolved by runtime, like @HomeDir@. This enables the usage of the correct variable value before its final set. If the variable inside '@' was not an installer value, installer replaced the variable with empty value. As the double '@' can be also part of the value itself, installer should not replace it with empty value if no real variable is found for it. Task-number: QTIFW-2945 Change-Id: I83ca40db1e03a12ba51535766b054765071d09ad Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix repository action handlingKatja Marttila2025-06-044-14/+38
| | | | | | | | | | | | | We should not rely that the repository format is the same when we compare repositories when adding, replacing or removing repositories using RepositoryUpdate. This bug occured when building IFW with Qt 6.9. Also, when using Qt6.7, QUrl does not resolve relative paths correctly if the repository path contains duplicate trailing slashes. Task-number: QTIFW-3730 Change-Id: Id8c6dd3702e6af484c81c817dbf7f4e7bb973b63 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Merge remote-tracking branch 'origin/4.10' into devKatja Marttila2025-06-032-0/+10
|\ | | | | | | Change-Id: Iae31477611f55716777f1e3e51b613bf1c260ca1
| * Add getter for isHybridInstaller() to PackageManagerCoreKatja Marttila2025-05-262-0/+10
| | | | | | | | | | | | | | | | | | This is needed to later find out if we are using a hybrid installer or not. Task-number: QTIFW-3832 Change-Id: If483b7fd5ff543f42d34b92f67aefd935a47c6fd Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Fix building with Qt6.9Katja Marttila2025-06-021-0/+1
| | | | | | | | | | Change-Id: I83e2fee9b9229f5414d879f146b6327bffe38282 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add possibility to add warning labels from scriptKatja Marttila2025-05-275-15/+151
| | | | | | | | | | | | | | | | | | | | | | | | Introducing new invokable methods, addWizardPageWarning() and removeWizardPageWarning() to add and remove warning messages to existing pages. Warning messages can be added also with existing addWizardPageItem() -function, but the new method utilizes the LabelWithPixmap -class, which draws a warning image and a label with text wrapped. Task-number: QTIFW-3555 Change-Id: Ie7867d369762f7616ce8c7ca47d102111d651da5 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add warning about space usageKatja Marttila2025-05-238-11/+32
| | | | | | | | | | | | | | | | | | If installation size exceeds 50GB, warning message is shown in installation summary -view. Task-number: QTIFW-3740 Change-Id: I28f1916fefad8f534b7f6b4c4ab971ac1254ad11 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Add possibility to add text to LiceseAgreementPageKatja Marttila2025-05-233-0/+24
| | | | | | | | | | | | | | | | | | | | New text field is added on top of the LicenseAgreementPage. The text field is empty by default, and developer can add text to it using script interfaces. Task-number: QTIFW-3626 Change-Id: Id08bbb148fe3cdbe08b7b33ced786ba4a734ad1a Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Fix warning text on installation folder selectionKatja Marttila2025-05-231-1/+1
| | | | | | | | | | | | Task-number: QTIFW-3644 Change-Id: I1ff29e7be9b137ee30bc00575a93228c65520306 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Fix wording on Finished -pageKatja Marttila2025-05-2310-11/+11
| | | | | | | | | | | | Task-number: QTIFW-3644 Change-Id: I7e5ef4a015fbadce2de8ecbb38b637de77dbc6a0 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Doc: Update Installer Framework Doc's Installation section imageInkamari Harjula2025-05-201-0/+0
| | | | | | | | | | | | | | | | | | Image updated. Task-number: QTIFW-3818 Change-Id: I1433ea65e1ab0fb54a4d641dd9ae4c6a85b83c72 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* | Check component name syntax in repogen and binarycreatorKatja Marttila2025-05-194-2/+30
| | | | | | | | | | | | | | | | | | | | | | Component name cannot contain characters '-' and ':', as those are reserved for version number separation. Check already when creating installer or repository if name contains reserved characters, so we don't end up installing wrongly named components which does not succeed. Task-number: QTIFW-3823 Change-Id: I6175444b84ff80317b845bb3aeebda83ca6de443 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* | Update version number to 4.11.0Katja Marttila2025-05-195-21/+21
|/ | | | | Change-Id: Ia2d5a052424b24b33c28fb58c7658b0382f6ea2e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Add tests for CLI uninstalling needed componentsKatja Marttila2025-05-165-6/+64
| | | | | | Task-number: QTIFW-3798 Change-Id: I1df49cd350e1c1575df254f9c0f70fe870914580 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Update ChangelogKatja Marttila2025-05-151-0/+3
| | | | | Change-Id: I438f9eb3b4e4150e32d5f170c31c44881699a9c9 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Update Portuquese translationKatja Marttila2025-05-151-63/+92
| | | | | | Task-number: QTIFW-3768 Change-Id: I6257acdd006c9be91f1c309160321b569f290847 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Fix Windows library linkage to lzma.libTeemu Jokitulppo2025-05-141-1/+1
| | | | | | | | | | Updated the .pri file to properly link the lzma.lib on Windows by changing the linker flag from -lliblzma to -llzma. This ensures compatibility with the newly built lzma.lib from the XZ 5.6.4 release. Change-Id: I0ceef139e6f4a6fe9fb49413a46cc6232c71ee9e Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Update Chinese translationLiang Qi2025-05-131-63/+92
| | | | | | Task-number: QTIFW-3768 Change-Id: I22af226197f1db1b9428d8ef678bec87d7f5d39f Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* 3rdparty: remove bundled LZMA SDKArttu Tarkiainen2025-05-13620-116595/+7
| | | | | | | | | | | | | | The bundled library has not been updated in a long time, and has been marked deprecated for use with the IFW for several releases. Remove the obsolete library and all references to it in the repository. Users that have been still using theLZMA SDK archive backend in self-built IFW should migrate to using libarchive, which is now enabled by default. Task-number: QTIFW-3819 Change-Id: I45298de282c2b0b65e8f343d90aa75495e55947a Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* 3rdparty: patch libarchive to use GetTempPath2 when availableArttu Tarkiainen2025-05-132-2/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port the related changes made in qtbase for the QFileSystemEngine::tempPath() method. Quotations from the original commit message: > Because the documentation for GetTempPath nows says apps should call GetTempPath2.[0] > Starting with Windows 11[1], and recently Windows 10[2], GetTempPath2 was added. The difference being that elevated processes are returned a different directory. Usually 'C:\Windows\SystemTemp'. > Currently temporary files of an elevated process may be placed in a world write-able location. GetTempPath2, by default, but can be overridden, places it in a directory that's only accessible by SYSTEM and administrators. [0] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppathw#remarks [1] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppath2w (Minimum supported client - Windows 11 Build 22000) [2] https://blogs.windows.com/windows-insider/2025/03/13/releasing-windows-10-build-19045-5674-to-the-release-preview-channel/ (This update enables system processes to store temporary files ...) Change-Id: I98b7d47544202e105b4e4e855551b83fce41d89b Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Update Spanish translationKatja Marttila2025-05-121-63/+92
| | | | | | | Task-number: QTIFW-3768 Change-Id: I8d497df696cb6e7eb2b319a602ff2c321bf2eb34 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
* Update Japanese translationKatja Marttila2025-05-121-63/+96
| | | | | | Task-number: QTIFW-3768 Change-Id: Id699515e7199e0fa3de62110ac58683cb1b406d0 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Update German translationKatja Marttila2025-05-121-63/+92
| | | | | | Task-number: QTIFW-3768 Change-Id: I47dbcb65a3cf41063f1e2912fb921f6ea4c980bc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix TargetDirectoryPage marginKatja Marttila2025-05-071-1/+1
| | | | | | | | | | TargetDirectoryPage had default bottom margin, and adding widgets to the page from extensions or from script left unnecessary space to the bottom of the page. Task-number: QTIFW-3815 Change-Id: Ieb722cfd0ce1b98fb8ce5bd81a63a5e08f018e5c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* Update ChangelogKatja Marttila2025-05-061-0/+20
| | | | | Change-Id: I6030ead7f22c2b3bc3ea5ab89d9da84d6ac2751e Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
* 3rdparty: update libarchive sources to 3.7.9Arttu Tarkiainen2025-05-0632-199/+452
| | | | | | | | | Upstream details: https://github.com/libarchive/libarchive/releases/tag/v3.7.9 Task-number: QTIFW-3770 Change-Id: If781d701d2bdf2549f15014a250d9f844a87f0b5 Reviewed-by: Katja Marttila <katja.marttila@qt.io>