[regression] Client functions residing in libmircommon
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alan Griffiths | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
We seem to now have a bunch of client functions living in libmircommon:
$ nm -D lib/libmircommon.so | grep ' mir_'
0000000000010287 T mir_event_
000000000001012a T mir_event_
0000000000010264 T mir_event_
0000000000010241 T mir_event_
000000000001021e T mir_event_
00000000000101fb T mir_event_
0000000000010105 T mir_event_get_type
000000000001038e T mir_event_ref
00000000000103c6 T mir_event_unref
000000000002dae2 T mir_input_
000000000002dbea T mir_input_
000000000002dcf0 T mir_input_
000000000002e5b5 T mir_input_
000000000002e003 T mir_input_
000000000002d9d8 T mir_input_
000000000002ddc9 T mir_key_
000000000002de1e T mir_key_
000000000002dfab T mir_key_
000000000002de43 T mir_key_
0000000000010368 T mir_orientation
000000000002e6bb T mir_pointer_
000000000002e7d9 T mir_pointer_
000000000002e733 T mir_pointer_
000000000002e68f T mir_pointer_
0000000000010342 T mir_prompt_
000000000001031c T mir_resize_
00000000000102f6 T mir_resize_
00000000000102aa T mir_surface_
00000000000102d0 T mir_surface_
000000000002dfd7 T mir_touch_
000000000002e1df T mir_touch_
000000000002e453 T mir_touch_
000000000002e0dd T mir_touch_
000000000002e0f7 T mir_touch_
000000000002e349 T mir_touch_
I think this could cause serious risk to clients/toolkits that call them. As their symbol versions are no longer tied to the stable client ABI, but instead tied to the more volatile mircommon ABI.
Related branches
- Alan Griffiths: Approve
- Alexandros Frantzis (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 24 lines (+17/-0)1 file modifiedexamples/CMakeLists.txt (+17/-0)
- PS Jenkins bot (community): Approve (continuous-integration)
- Kevin DuBois (community): Approve
- Daniel van Vugt: Abstain
- Alberto Aguirre (community): Approve
- Chris Halse Rogers: Abstain
-
Diff: 1010 lines (+300/-258)28 files modifieddebian/changelog (+1/-1)
debian/control (+2/-2)
debian/libmirclient-dev.install (+1/-0)
debian/libmircommon4.install (+1/-1)
examples/CMakeLists.txt (+10/-2)
include/client/mir_toolkit/cursors.h (+6/-0)
include/client/mir_toolkit/mir_client_library.h (+1/-0)
include/common/mir_toolkit/common.h (+0/-2)
src/client/CMakeLists.txt (+13/-2)
src/client/events/CMakeLists.txt (+2/-2)
src/client/input/CMakeLists.txt (+7/-13)
src/client/input/input_event.cpp (+1/-1)
src/client/mir_cursor_api.cpp (+17/-15)
src/client/symbols-debug.map (+0/-8)
src/client/symbols.map (+164/-24)
src/common/CMakeLists.txt (+2/-7)
src/common/sharedlibrary/CMakeLists.txt (+4/-1)
src/common/symbols.map (+48/-163)
src/common/udev/CMakeLists.txt (+8/-0)
src/include/common/mir/logging/input_timestamp.h (+1/-5)
src/server/CMakeLists.txt (+3/-1)
src/server/graphics/nested/CMakeLists.txt (+0/-4)
src/server/input/default_configuration.cpp (+2/-0)
tests/integration-tests/CMakeLists.txt (+1/-2)
tests/unit-tests/CMakeLists.txt (+2/-1)
tests/unit-tests/client/input/test_android_input_receiver.cpp (+1/-1)
tests/unit-tests/input/test_cursor_controller.cpp (+1/-0)
tests/unit-tests/input/test_xcursor_loader.cpp (+1/-0)
description: | updated |
Changed in mir: | |
milestone: | none → 0.12.0 |
Changed in mir: | |
milestone: | 0.12.0 → 0.13.0 |
Changed in mir (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
status: | Triaged → In Progress |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Hmm, if we explicitly avoid versioning these C symbols then we might be able to get away with proxying through libmirclient... That could avoid any direct dependency between clients and libmircommon.