Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
4.0.1
-
None
-
I was using https://download.qt.io/official_releases/qt-installer-framework/4.0.1/QtInstallerFramework-linux-x64.run installed in /opt/Qt/QtIFW-4.0.1 on an Ubuntu 18.04 machine.
Description
This is a small example do demonstrate how updating an installation with QtIFW creates an inconsistent project installation where dependencies are not met.
This example uses dependencies to a specific version of a component:
componentB and componentC depend on a fixed version of componentA, all components are supposed to have the same version.
The directory dependency_test contains the installation components (data and metadata), dependency_test_1.0.1 is a copy of dependency_test with updated versions (from 1.0.0 to 1.0.1, the versions in the dependencies are updated too).
Steps to run this example:
1. Run the build.sh script, this builds an installer for the 1.0.0 content versions and setups a local repository
2. Run the new dependencies_test.run installer
3. Install all three components.
4. run the build_1.0.1.sh script, it updates the repository with the version 1.0.1 content (for all three components)
5. Go to the installation directory and start the maintenance tool
6. Go to Update, select only the componentB for this update and finish updating. This will update componentB, and its dependency setting causes componentA to be updated. But componentC is not updated.
This results in a state where the installed componentC (this is still the initial version 1.0.0) has an unmet dependency to version 1.0.0 of componentA, as componentA was updated to 1.0.1.
I expected the componentC at least to be deleted, but as there is a new version 1.0.1 of the componentC (with a dependency to version 1.0.1 of componentA) it should be updated too.
This example uses dependencies to specific versions of a component (=), I did not test any of the other operators.
My home directory (/home/florian) is hardcoded in the build scripts, you might need to change it to yours.