[regression] Platform libraries and packages are not versioned
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alexandros Frantzis | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
Our graphics/client platform libraries and packages are not versioned and thus are not installable in parallel.
Since our other libraries are installable in parallel, this can lead to problems like the one seen in [1]:
1. Start with a system that has Mir 0.11 (mirserver19, mirplatform6, MIR_GRAPHICS_
2. Bump mirserver ABI 20 in *trunk*, build and install packages (mirserver20, mirplatform7, MIR_GRAPHICS_
3. Applications that use mirserver19 (e.g. USC) will load the new graphics platform modules, try to load a symbol with version
MIR_GRAPHICS_
Note that this doesn't happen if we don't bump the mirserver ABI, because in that case when installing the new package we replace the system mirserver19 with a version that looks for MIR_GRAPHICS_
[1] https:/
Related branches
- Andreas Pokorny (community): Approve
- Daniel van Vugt: Abstain
- Chris Halse Rogers: Approve
- Kevin DuBois (community): Approve
- Alan Griffiths: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 473 lines (+73/-35)25 files modifieddebian/control (+8/-8)
debian/mir-client-platform-android2.install (+1/-1)
debian/mir-client-platform-mesa2.install (+1/-1)
debian/mir-platform-graphics-android2.install (+1/-1)
debian/mir-platform-graphics-mesa2.install (+1/-1)
src/CMakeLists.txt (+5/-2)
src/client/CMakeLists.txt (+1/-2)
src/common/sharedlibrary/shared_library_prober.cpp (+9/-1)
src/platform/graphics/platform_probe.cpp (+1/-1)
src/platforms/CMakeLists.txt (+8/-1)
src/platforms/android/client/CMakeLists.txt (+1/-0)
src/platforms/android/server/CMakeLists.txt (+1/-0)
src/platforms/mesa/client/CMakeLists.txt (+1/-0)
src/platforms/mesa/server/CMakeLists.txt (+1/-0)
tests/acceptance-tests/test_symbols_required_by_mesa.cpp (+1/-1)
tests/include/mir_test_framework/client_platform_factory.h (+2/-2)
tests/mir_test_framework/CMakeLists.txt (+2/-0)
tests/mir_test_framework/executable_path.cpp (+12/-2)
tests/unit-tests/client/test_client_platform.cpp (+2/-2)
tests/unit-tests/client/test_probing_client_platform_factory.cpp (+2/-2)
tests/unit-tests/graphics/android/test_platform.cpp (+2/-2)
tests/unit-tests/graphics/mesa/test_platform.cpp (+2/-2)
tests/unit-tests/graphics/test_platform_prober.cpp (+2/-2)
tests/unit-tests/shared_library_test.cpp (+1/-1)
tests/unit-tests/test_shared_library_prober.cpp (+5/-0)
Changed in mir: | |
assignee: | nobody → Alexandros Frantzis (afrantzis) |
status: | New → In Progress |
Changed in mir: | |
milestone: | none → 0.12.0 |
no longer affects: | mir/0.11 |
Changed in mir (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in mir: | |
milestone: | 0.12.0 → 0.13.0 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in mir: | |
status: | Fix Released → Fix Committed |
milestone: | 0.13.0 → 0.12.0 |
status: | Fix Committed → Fix Released |
no longer affects: | mir/0.12 |
We also need ABI compliance checker to detect breaks on the graphics/client platform libraries.