Mir

Merge lp:~mir-team/mir/fix-1388686 into lp:mir

Proposed by Kevin DuBois
Status: Rejected
Rejected by: Daniel van Vugt
Proposed branch: lp:~mir-team/mir/fix-1388686
Merge into: lp:mir
Diff against target: 59 lines (+16/-4)
3 files modified
debian/control (+15/-0)
debian/libmirprotobuf-dev.install (+1/-0)
debian/rules (+0/-4)
To merge this branch: bzr merge lp:~mir-team/mir/fix-1388686
Reviewer Review Type Date Requested Status
Chris Halse Rogers Disapprove
Daniel van Vugt Needs Fixing
PS Jenkins bot (community) continuous-integration Needs Fixing
Review via email: mp+241459@code.launchpad.net

Commit message

finish fixing the ftbfs for USC and for unity8 (and mir clients as well) that happened from splitting out libmirprotobuf. The first half of this fix was in lp:~vanvugt/mir/fix-1388686, which added libmirprotobuf to the mirserver.pc and mirclient.pc files. This fix adds a libmirprotobuf-dev package, which installs the libmirprotobuf.so symlink needed by the compiler now that we tell it "-lmirprotobuf" in the .pc files

fixes: lp: #1388686

Description of the change

finish fixing the ftbfs for USC and for unity8 (and mir clients as well) that happened from splitting out libmirprotobuf. The first half of this fix was in lp:~vanvugt/mir/fix-1388686, which added libmirprotobuf to the mirserver.pc and mirclient.pc files. This fix adds a libmirprotobuf-dev package, which installs the libmirprotobuf.so symlink needed by the compiler now that we tell it "-lmirprotobuf" in the .pc files

fixes: lp: #1388686

note: If testing, use sbuild to build the packages. If you "make install", cmake will install the libmirprotobuf.so symlink, and you won't see the problem.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Chris Halse Rogers (raof) wrote :

Urgh, this should be unnecessary. Client code does *not* need the libmirprotobuf.so link. Let me investigate...

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

The new package libmirprotobuf-dev should not exist, by design. No external projects should access it directly.

I think you might have made a mistake in the bug report and been using the wrong (out of date system-installed) *.pc files.

review: Disapprove
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Although some of your reasoning is correct too. Something about our packaging needs fixing, but that new package should still not exist.

review: Needs Fixing
Revision history for this message
Chris Halse Rogers (raof) wrote :

The addititon of -lprotobuf to mirserver.pc and mirclient.pc in r2021 is what is causing the requirement for libmirprotobuf.so.

It's not clear to me why that change was made; unity-system-compositor builds just fine (testing qtmir now) with that change reverted.

Revision history for this message
Chris Halse Rogers (raof) wrote :

https://code.launchpad.net/~raof/mir/dont-ask-downstreams-to-link-against-private-libraries/+merge/241475 fixes this properly. Tested by building unity-system-compositor and qtmir against it.

review: Disapprove
Revision history for this message
Kevin DuBois (kdub) wrote :

Happily withdrawn for the better fix. I thought that we were intending to have the users link to libprotobuf (but didn't quite see why)

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

On 12/11/14 13:05, Kevin DuBois wrote:
> Happily withdrawn for the better fix. I thought that we were intending to have the users link to libprotobuf (but didn't quite see why)

the platform-api client used to use the deprecated "PrivateProtobuf"
facility for cut & paste. (But that code got deleted a while ago.)

--
Alan Griffiths +44 (0)798 9938 758
Octopull Ltd http://www.octopull.co.uk/

Unmerged revisions

2048. By Kevin DuBois

roll back out the cross compile changes needed

2047. By Kevin DuBois

add a libmirprotobuf-dev.install so the downstreams linking to libmirclient and libmirserver can link via the .pc file we provide

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/control'
--- debian/control 2014-11-06 11:39:02 +0000
+++ debian/control 2014-11-11 20:54:50 +0000
@@ -121,12 +121,26 @@
121 .121 .
122 Contains header files required for hardware/driver support development.122 Contains header files required for hardware/driver support development.
123123
124Package: libmirprotobuf-dev
125Section: libdevel
126Architecture: i386 amd64 armhf arm64
127Multi-Arch: same
128Pre-Depends: ${misc:Pre-Depends}
129Depends: libmirprotobuf0 (= ${binary:Version}),
130 ${misc:Depends},
131Description: Display server for Ubuntu - development headers
132 Mir is a display server running on linux systems, with a focus on efficiency,
133 robust operation and a well-defined driver model.
134 .
135 Contains common library needed by server and client
136
124Package: libmirserver-dev137Package: libmirserver-dev
125Section: libdevel138Section: libdevel
126Architecture: i386 amd64 armhf arm64139Architecture: i386 amd64 armhf arm64
127Multi-Arch: same140Multi-Arch: same
128Pre-Depends: ${misc:Pre-Depends}141Pre-Depends: ${misc:Pre-Depends}
129Depends: libmirserver27 (= ${binary:Version}),142Depends: libmirserver27 (= ${binary:Version}),
143 libmirprotobuf-dev (= ${binary:Version}),
130 libmirplatform-dev (= ${binary:Version}),144 libmirplatform-dev (= ${binary:Version}),
131 libmircommon-dev (= ${binary:Version}),145 libmircommon-dev (= ${binary:Version}),
132 libglm-dev,146 libglm-dev,
@@ -157,6 +171,7 @@
157Multi-Arch: same171Multi-Arch: same
158Pre-Depends: ${misc:Pre-Depends}172Pre-Depends: ${misc:Pre-Depends}
159Depends: libmirclient8 (= ${binary:Version}),173Depends: libmirclient8 (= ${binary:Version}),
174 libmirprotobuf-dev (= ${binary:Version}),
160 libmircommon-dev (= ${binary:Version}),175 libmircommon-dev (= ${binary:Version}),
161 libprotobuf-dev (>= 2.4.1),176 libprotobuf-dev (>= 2.4.1),
162 ${misc:Depends},177 ${misc:Depends},
163178
=== added file 'debian/libmirprotobuf-dev.install'
--- debian/libmirprotobuf-dev.install 1970-01-01 00:00:00 +0000
+++ debian/libmirprotobuf-dev.install 2014-11-11 20:54:50 +0000
@@ -0,0 +1,1 @@
1usr/lib/*/libmirprotobuf.so
02
=== modified file 'debian/rules'
--- debian/rules 2014-10-22 18:55:40 +0000
+++ debian/rules 2014-11-11 20:54:50 +0000
@@ -51,10 +51,6 @@
51 dh_makeshlibs -V51 dh_makeshlibs -V
5252
53override_dh_install:53override_dh_install:
54# Nothing outside Mir should link to libmirprotobuf directly.
55# Delete the symlink so that --fail-missing doesn't think we've missed it
56# accidentally.
57 rm debian/tmp/usr/lib/*/libmirprotobuf.so
58 dh_install --fail-missing \54 dh_install --fail-missing \
59 -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmir$(PLATFORM_DRIVER).so \55 -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmir$(PLATFORM_DRIVER).so \
60 -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmir$(CLIENT_DRIVER).so56 -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmir$(CLIENT_DRIVER).so

Subscribers

People subscribed via source and target branches