The packaging of headers and libraries is confused
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alan Griffiths | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
A typical example:
include/
src/platform/
The code located in the "platform" tree has an LGPL licence for use by 3rd party graphicsplatform implementations that may be GPL incompatible[1].
It is confusing (to say the least) that:
1. code in "platform" isn't distributed in libmirplatform;
2. code in "shared" isn't distributed in libmircommon[2] (it ends up in libmirserver *and* libmirclient but the headers are distributed in libmircommon-
Notes:
[1]. The code in the "server" tree is all GPL - having potential GPL incompatible code resolve against LGPL symbols in a largely GPL shared library is dubious.
[2] the "shared" <=> "common" naming mismatch is also confusing
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Approve
- Kevin DuBois (community): Approve
-
Diff: 554 lines (+92/-164)24 files modifieddebian/control (+0/-28)
debian/libmirprotobuf-dev.install (+0/-2)
debian/libmirprotobuf0.install (+0/-2)
include/shared/mir/udev/wrapper.h (+0/-1)
server-ABI-sha1sums (+1/-1)
src/client/CMakeLists.txt (+4/-8)
src/client/lttng/CMakeLists.txt (+2/-0)
src/client/rpc/CMakeLists.txt (+1/-8)
src/platform/CMakeLists.txt (+0/-3)
src/platform/graphics/mesa/display.cpp (+1/-0)
src/server/frontend/CMakeLists.txt (+1/-1)
src/shared/CMakeLists.txt (+11/-8)
src/shared/env/CMakeLists.txt (+4/-4)
src/shared/fd/CMakeLists.txt (+4/-4)
src/shared/geometry/CMakeLists.txt (+4/-6)
src/shared/input/CMakeLists.txt (+18/-16)
src/shared/input/android/CMakeLists.txt (+1/-5)
src/shared/logging/CMakeLists.txt (+4/-4)
src/shared/protobuf/CMakeLists.txt (+14/-37)
src/shared/report/lttng/CMakeLists.txt (+4/-5)
src/shared/sharedlibrary/CMakeLists.txt (+9/-11)
src/shared/thread/CMakeLists.txt (+6/-10)
tests/mir_test/CMakeLists.txt (+2/-0)
tests/unit-tests/graphics/mesa/test_platform.cpp (+1/-0)
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Approve
- Kevin DuBois (community): Approve
-
Diff: 74 lines (+7/-15)4 files modifiedsrc/platform/CMakeLists.txt (+5/-4)
src/platform/graphics/CMakeLists.txt (+1/-8)
src/platform/options/CMakeLists.txt (+1/-2)
src/server/CMakeLists.txt (+0/-1)
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
Changed in mir: | |
status: | New → In Progress |
importance: | Undecided → High |
Changed in mir: | |
milestone: | none → 0.6.0 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Some incantations to help illustrate the confusion:
# src/platform/ options/
$ nm -Co lib/libmir*.so | grep "[BT] mir::options::" | cut --fields=1 --delimiter=: | uniq -c
18 lib/libmirserver.so
# src/shared/env/ server_ socket" | cut --fields=1 --delimiter=: | uniq -c
$ nm -Co lib/libmir*.so | grep "[BT] mir::default_
1 lib/libmirclient.so
# 3rd_party/ android- input/
$ nm -Co lib/libmir*.so | grep "[BT] android::" | cut --fields=1 --delimiter=: | uniq -c
163 lib/libmirclient.so
787 lib/libmirserver.so