Mir

Merge lp:~afrantzis/mir/automate-package-abi-versioning into lp:mir

Proposed by Alexandros Frantzis
Status: Rejected
Rejected by: Alexandros Frantzis
Proposed branch: lp:~afrantzis/mir/automate-package-abi-versioning
Merge into: lp:mir
Diff against target: 426 lines (+115/-96)
16 files modified
debian/control.in (+20/-20)
debian/create_control_and_install_files.sh (+78/-0)
debian/create_postinst_prerm_scripts.sh (+0/-39)
debian/install_ld_so_conf.sh (+0/-26)
debian/libmirclient-debug-extension.install.in (+1/-1)
debian/libmirclient.install.in (+1/-1)
debian/libmircommon.install.in (+1/-1)
debian/libmirplatform.install.in (+1/-1)
debian/libmirprotobuf.install.in (+1/-1)
debian/libmirserver.install.in (+1/-1)
debian/mir-client-platform-android.install.in (+1/-1)
debian/mir-client-platform-mesa.install.in (+1/-1)
debian/mir-platform-graphics-android.install.in (+1/-1)
debian/mir-platform-graphics-mesa.install.in (+1/-1)
debian/rules (+4/-0)
src/protobuf/CMakeLists.txt (+3/-1)
To merge this branch: bzr merge lp:~afrantzis/mir/automate-package-abi-versioning
Reviewer Review Type Date Requested Status
Alexandros Frantzis (community) Disapprove
Adam Conrad (community) Needs Fixing
Colin Watson (community) Needs Fixing
Chris Halse Rogers Abstain
Robert Carr (community) Approve
Cemil Azizoglu (community) Needs Fixing
Alan Griffiths Abstain
Kevin DuBois (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+251442@code.launchpad.net

Commit message

debian: Automate creation of packaging files based on the current component ABIs

Description of the change

debian: Automate creation of packaging files based on the current component ABIs

With this MP some packaging files (debian/control and various debian/*.install files) are produced at package build time based on the ABIs detected in the source tree (but see "Future improvements" below).

Because during package pre-creation dpkg-source needs preliminary access to the source package fields (i.e. the top fields) of the control file, debian/control is symlinked to debian/control.in. At the beginning of the build process, the symlink is overwritten with a proper control file produced from control.in.

Using a control file produced at build time is a neat and versatile idea. However, there may be issues (e.g. too fragile?) we are not aware of and it may not be acceptable to our debian packaging overlords. If that's the case then we can fall back to having a script that can be invoked manually to update our packaging, plus corresponding tests to ensure that our packaging and source tree (i.e. ABIs) are in sync.

Future improvements:

* Improve how we handle ABIs in the source tree, so that we can detect them more cleanly at package build time (i.e. not grep through all the sources). Perhaps a single file that both CMake and our packaging scripts could read?

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

Thanks for the quick action and this MP. Since CI is not good at detecting packaging issues, could you mention the testing you've done on this MP?

review: Needs Information
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

> Thanks for the quick action and this MP. Since CI is not good at detecting packaging issues,
> could you mention the testing you've done on this MP?

Since the MP changes the packaging process but not the packaging output, I focused on ensuring the new packages matched packages created from trunk. I checked this by locally creating both sets of packages and comparing.

There is also the confidence we get from the successful CI run. Although CI doesn't detect all packaging issues, it can detect a decent amount of them, especially since we enabled installation of all packages in mediumtests last week.

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

lgtm

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

I like the autogeneration but I worry about it being fragile in ways I do not understand.

Also isn't there a risk of accidentally checking in the generated file that overwrites the link?

review: Abstain
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

I don't think it's good to have a symlink for debian/control. If the script fails then everything should fail in a spectacular manner, and not act like it has a way to proceed.

review: Needs Fixing
Revision history for this message
Robert Carr (robertcarr) wrote :

>>I don't think it's good to have a symlink for debian/control. If the script fails then everything
>> should fail in a spectacular manner, and not act like it has a way to proceed.

It sounds like the symlink is required because dpkg-buildpackage wants to parse a few non ABI (hopefully!) fields from debian/control prior to kicking off the full build (and performing the autogeneration).

LGTM

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

I expect this would be NAKed by the distro team.

The ‘traditional’ way this is done is in the clean: (so, override_dh_clean) target; this ensures that it's run before generating the source package. Currently When debian/control autogeneration is done at all it's done to populate a relatively contained field, such as Uploaders:.

Although it's autogenerated we should still have debian/control in source control.

As a distro packager I would not do this, but the “upstreams contain packaging and automatically land in the distro” world is still strange and it seems like this might be reasonable for us to do.

Maybe this is better off as something in tools/ to manually run when necessary?

review: Abstain
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

> I expect this would be NAKed by the distro team.
>
> Maybe this is better off as something in tools/ to manually run when necessary?

This matches the fallback I mentioned in the description: "If that's the case then we can fall back to having a script that can be invoked manually to update our packaging, plus corresponding tests to ensure that our packaging and source tree (i.e. ABIs) are in sync."

Let's see what distro says.

Revision history for this message
Colin Watson (cjwatson) wrote :

I agree with Chris's comments above. Autogenerating debian/control like this is dangerous and tends to play hell with tools that expect the list of package names to be accurate at the point when the source package is built; as written this will probably result in an incorrect .dsc file in some cases, causing archive problems. Best practice when this stuff is necessary is to do it in the clean rule so that the source package is accurate, or to have a script to update it manually when necessary.

review: Needs Fixing
Revision history for this message
Adam Conrad (adconrad) wrote :

02:38 < infinity> alf: I would NACK it if you asked for a review from me. :P
02:39 < infinity> alf: debian/control should be correct, leading to .dsc actually listing the binary packages a source produces. Your control and .dsc contain garbage until build time, which is unacceptably wrong.
02:39 < infinity> alf: Generating that at source package creation time is fine, though. You should just do that.

As an added bonus, using the symlink trick here, your debian/control isn't just inaccurate, but actually syntactically broken, as it contains invalid characters in the Package: fields.

review: Needs Fixing
Revision history for this message
Adam Conrad (adconrad) wrote :

Another aside, if you ever intend to get this stuff into Debian, the Debian ftp/build infrastructure is very picky about sources producing the binaries listed in .dsc (I had to fix glibc to stop listing some binaries it didn't produce), so this really should just be done correctly from the get go.

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

OK, it seems that, as feared, automagic creation of debian/control is indeed fragile and needs special care. Although there are ways to make it work, the process will become more complicated than what I would like. It's much more straightforward to go for a scripted but manual packaging update and tests to check for inconsistencies between source tree ABIs and packaging. Stay tuned for a new MP.

review: Disapprove

Unmerged revisions

2353. By Alexandros Frantzis

debian: Automate creation of packaging files based on the current component ABIs

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added symlink 'debian/control'
2=== target is u'control.in'
3=== renamed file 'debian/control' => 'debian/control.in'
4--- debian/control 2015-02-27 15:54:19 +0000
5+++ debian/control.in 2015-03-02 13:06:12 +0000
6@@ -45,7 +45,7 @@
7 # just go ahead. ~mir-team will notice and sync up the code again.
8 Vcs-Bzr: https://code.launchpad.net/~mir-team/mir/trunk
9
10-Package: libmirprotobuf0
11+Package: libmirprotobuf@MIRPROTOBUF_ABI@
12 Section: libs
13 Architecture: i386 amd64 armhf arm64
14 Multi-Arch: same
15@@ -61,7 +61,7 @@
16
17 #TODO: Packaging infrastructure for better dependency generation,
18 # ala pkg-xorg's xviddriver:Provides and ABI detection.
19-Package: libmirserver31
20+Package: libmirserver@MIRSERVER_ABI@
21 Section: libs
22 Architecture: i386 amd64 armhf arm64
23 Multi-Arch: same
24@@ -74,7 +74,7 @@
25 .
26 Contains the shared library needed by server applications for Mir.
27
28-Package: libmirplatform7
29+Package: libmirplatform@MIRPLATFORM_ABI@
30 Section: libs
31 Architecture: i386 amd64 armhf arm64
32 Multi-Arch: same
33@@ -93,7 +93,7 @@
34 Architecture: i386 amd64 armhf arm64
35 Multi-Arch: same
36 Pre-Depends: ${misc:Pre-Depends}
37-Depends: libmircommon3 (= ${binary:Version}),
38+Depends: libmircommon@MIRCOMMON_ABI@ (= ${binary:Version}),
39 libprotobuf-dev (>= 2.4.1),
40 libxkbcommon-dev,
41 ${misc:Depends},
42@@ -110,7 +110,7 @@
43 Architecture: i386 amd64 armhf arm64
44 Multi-Arch: same
45 Pre-Depends: ${misc:Pre-Depends}
46-Depends: libmirplatform7 (= ${binary:Version}),
47+Depends: libmirplatform@MIRPLATFORM_ABI@ (= ${binary:Version}),
48 libmircommon-dev,
49 libboost-program-options-dev,
50 ${misc:Depends},
51@@ -127,7 +127,7 @@
52 Architecture: i386 amd64 armhf arm64
53 Multi-Arch: same
54 Pre-Depends: ${misc:Pre-Depends}
55-Depends: libmirserver31 (= ${binary:Version}),
56+Depends: libmirserver@MIRSERVER_ABI@ (= ${binary:Version}),
57 libmirplatform-dev (= ${binary:Version}),
58 libmircommon-dev (= ${binary:Version}),
59 libglm-dev,
60@@ -138,7 +138,7 @@
61 .
62 Contains header files required to build Mir servers.
63
64-Package: libmirclient8
65+Package: libmirclient@MIRCLIENT_ABI@
66 Section: libs
67 Architecture: i386 amd64 armhf arm64
68 Multi-Arch: same
69@@ -156,7 +156,7 @@
70 Architecture: i386 amd64 armhf arm64
71 Multi-Arch: same
72 Pre-Depends: ${misc:Pre-Depends}
73-Depends: libmirclient8 (= ${binary:Version}),
74+Depends: libmirclient@MIRCLIENT_ABI@ (= ${binary:Version}),
75 libmircommon-dev (= ${binary:Version}),
76 libprotobuf-dev (>= 2.4.1),
77 ${misc:Depends},
78@@ -166,7 +166,7 @@
79 .
80 Contains header files required to develop against Mir.
81
82-Package: libmirclient-debug-extension1
83+Package: libmirclient-debug-extension@MIRCLIENT_DEBUG_EXTENSION_ABI@
84 Section: libs
85 Architecture: i386 amd64 armhf arm64
86 Multi-Arch: same
87@@ -192,8 +192,8 @@
88 Architecture: i386 amd64 armhf arm64
89 Multi-Arch: same
90 Pre-Depends: ${misc:Pre-Depends}
91-Depends: libmirclient-debug-extension1 (= ${binary:Version}),
92- ${misc:Depends},
93+Depends: libmirclient-debug-extension@MIRCLIENT_DEBUG_EXTENSION_ABI@ (= ${binary:Version}),
94+ ${misc:Depends},
95 ${shlibs:Depends},
96 Description: Display server for Ubuntu - client debug interface headers
97 Mir is a display server running on linux systems, with a focus on efficiency,
98@@ -252,7 +252,7 @@
99 .
100 Contains a tool for stress testing the Mir display server
101
102-Package: libmircommon3
103+Package: libmircommon@MIRCOMMON_ABI@
104 Section: libs
105 Architecture: i386 amd64 armhf arm64
106 Multi-Arch: same
107@@ -266,7 +266,7 @@
108 Contains the shared libraries required for the Mir server and client.
109
110 # Longer-term these drivers should move out-of-tree
111-Package: mir-platform-graphics-mesa2
112+Package: mir-platform-graphics-mesa@MIR_SERVER_GRAPHICS_PLATFORM_ABI@
113 Section: libs
114 Architecture: i386 amd64 armhf arm64
115 Multi-Arch: same
116@@ -280,7 +280,7 @@
117 Contains the shared libraries required for the Mir server to interact with
118 the hardware platform using the Mesa drivers.
119
120-Package: mir-platform-graphics-android2
121+Package: mir-platform-graphics-android@MIR_SERVER_GRAPHICS_PLATFORM_ABI@
122 Section: libs
123 Architecture: i386 amd64 armhf
124 Multi-Arch: same
125@@ -294,7 +294,7 @@
126 Contains the shared libraries required for the Mir server to interact with
127 the hardware platform using the Android drivers.
128
129-Package: mir-client-platform-mesa2
130+Package: mir-client-platform-mesa@MIR_CLIENT_PLATFORM_ABI@
131 Section: libs
132 Architecture: i386 amd64 armhf arm64
133 Multi-Arch: same
134@@ -322,7 +322,7 @@
135 Contains header files required to use the platform specific capabilities of
136 the Mir Mesa backend.
137
138-Package: mir-client-platform-android2
139+Package: mir-client-platform-android@MIR_CLIENT_PLATFORM_ABI@
140 Section: libs
141 Architecture: i386 amd64 armhf
142 Multi-Arch: same
143@@ -342,8 +342,8 @@
144 Multi-Arch: same
145 Pre-Depends: ${misc:Pre-Depends}
146 Depends: ${misc:Depends},
147- mir-platform-graphics-mesa2,
148- mir-client-platform-mesa2,
149+ mir-platform-graphics-mesa@MIR_SERVER_GRAPHICS_PLATFORM_ABI@,
150+ mir-client-platform-mesa@MIR_CLIENT_PLATFORM_ABI@,
151 Description: Display server for Ubuntu - desktop driver metapackage
152 Mir is a display server running on linux systems, with a focus on efficiency,
153 robust operation and a well-defined driver model.
154@@ -357,8 +357,8 @@
155 Multi-Arch: same
156 Pre-Depends: ${misc:Pre-Depends}
157 Depends: ${misc:Depends},
158- mir-platform-graphics-android2,
159- mir-client-platform-android2,
160+ mir-platform-graphics-android@MIR_SERVER_GRAPHICS_PLATFORM_ABI@,
161+ mir-client-platform-android@MIR_CLIENT_PLATFORM_ABI@,
162 Description: Display server for Ubuntu - android driver metapackage
163 Mir is a display server running on linux systems, with a focus on efficiency,
164 robust operation and a well-defined driver model.
165
166=== added file 'debian/create_control_and_install_files.sh'
167--- debian/create_control_and_install_files.sh 1970-01-01 00:00:00 +0000
168+++ debian/create_control_and_install_files.sh 2015-03-02 13:06:12 +0000
169@@ -0,0 +1,78 @@
170+#!/bin/sh
171+
172+set -e
173+
174+abi_vars="\
175+ MIRCLIENT_ABI \
176+ MIRCLIENT_DEBUG_EXTENSION_ABI \
177+ MIR_CLIENT_PLATFORM_ABI \
178+ MIRCOMMON_ABI \
179+ MIRPLATFORM_ABI \
180+ MIRPROTOBUF_ABI \
181+ MIRSERVER_ABI \
182+ MIR_SERVER_GRAPHICS_PLATFORM_ABI"
183+
184+install_files="\
185+ libmirclient:MIRCLIENT_ABI \
186+ libmirclient-debug-extension:MIRCLIENT_DEBUG_EXTENSION_ABI \
187+ libmircommon:MIRCOMMON_ABI \
188+ libmirplatform:MIRPLATFORM_ABI \
189+ libmirprotobuf:MIRPROTOBUF_ABI \
190+ libmirserver:MIRSERVER_ABI \
191+ mir-client-platform-android:MIR_CLIENT_PLATFORM_ABI \
192+ mir-client-platform-mesa:MIR_CLIENT_PLATFORM_ABI \
193+ mir-platform-graphics-android:MIR_SERVER_GRAPHICS_PLATFORM_ABI \
194+ mir-platform-graphics-mesa:MIR_SERVER_GRAPHICS_PLATFORM_ABI"
195+
196+
197+get_abi_number()
198+{
199+ local abi_var=$1
200+ grep -R "set($abi_var" src/* | grep -o '[[:digit:]]\+'
201+}
202+
203+populate_abi_variables()
204+{
205+ for abi_var in $abi_vars;
206+ do
207+ local tmp=$(get_abi_number $abi_var)
208+ if [ -z "$tmp" ];
209+ then
210+ echo "Failed to find ABI number for $abi_var"
211+ exit 1
212+ fi
213+ eval "$abi_var=$tmp"
214+ done
215+}
216+
217+create_control_file()
218+{
219+ local cmd="sed"
220+
221+ for abi_var in $abi_vars;
222+ do
223+ cmd="$cmd -e \"s/@$abi_var@/\${$abi_var}/\""
224+ done
225+
226+ cmd="$cmd debian/control.in > debian/control"
227+
228+ # Remove the debian/control symlink before writing to it
229+ rm debian/control
230+ eval "$cmd"
231+}
232+
233+create_install_files()
234+{
235+ for f in $install_files;
236+ do
237+ local pkg=${f%%:*}
238+ local abi_var=${f##*:}
239+ local abi=$(eval "echo \$${abi_var}")
240+ sed "s/@$abi_var@/$abi/" \
241+ debian/${pkg}.install.in > debian/${pkg}${abi}.install
242+ done
243+}
244+
245+populate_abi_variables
246+create_control_file
247+create_install_files
248
249=== removed file 'debian/create_postinst_prerm_scripts.sh'
250--- debian/create_postinst_prerm_scripts.sh 2015-01-21 07:34:50 +0000
251+++ debian/create_postinst_prerm_scripts.sh 1970-01-01 00:00:00 +0000
252@@ -1,39 +0,0 @@
253-#!/bin/sh
254-
255-set -e
256-
257-dpkg_alternatives_priority=500
258-deb_host_arch=$1
259-deb_host_multiarch=$2
260-
261-mir_platform_types="${PLATFORM_DRIVER}"
262-case $deb_host_arch in
263- arm64)
264- mir_platforms="mesa"
265- ;;
266- *)
267- mir_platforms="android mesa"
268- ;;
269-esac
270-
271-create_script()
272-{
273- local script=$1
274- local platform_type=$2
275- local platform=$3
276-
277- sed -e "s/@DEB_HOST_MULTIARCH@/$deb_host_multiarch/" \
278- -e "s/@MIR_PLATFORM_TYPE@/$platform_type/" \
279- -e "s/@MIR_PLATFORM@/$platform/" \
280- -e "s/@DPKG_ALTERNATIVES_PRIORITY@/$dpkg_alternatives_priority/" \
281- debian/update-alternatives.${script}.in > debian/libmir$platform_type-$platform.${script}
282-}
283-
284-for platform_type in $mir_platform_types;
285-do
286- for platform in $mir_platforms;
287- do
288- create_script postinst $platform_type $platform
289- create_script prerm $platform_type $platform
290- done
291-done
292
293=== removed file 'debian/install_ld_so_conf.sh'
294--- debian/install_ld_so_conf.sh 2015-01-21 07:34:50 +0000
295+++ debian/install_ld_so_conf.sh 1970-01-01 00:00:00 +0000
296@@ -1,26 +0,0 @@
297-#!/bin/sh
298-
299-set -e
300-
301-DEB_HOST_ARCH=$1
302-DEB_HOST_MULTIARCH=$2
303-
304-mir_platform_types="${PLATFORM_DRIVER} ${CLIENT_DRIVER}"
305-case $DEB_HOST_ARCH in
306- arm64)
307- mir_platforms="mesa"
308- ;;
309- *)
310- mir_platforms="android mesa"
311- ;;
312-esac
313-
314-for platform_type in $mir_platform_types;
315-do
316- for platform in $mir_platforms;
317- do
318- platform_dir="/usr/lib/$DEB_HOST_MULTIARCH/mir/$platform_type/$platform"
319- package_dir="debian/libmir$platform_type-$platform/$platform_dir"
320- echo "$platform_dir" > $package_dir/ld.so.conf
321- done
322-done
323
324=== renamed file 'debian/libmirclient-debug-extension1.install' => 'debian/libmirclient-debug-extension.install.in'
325--- debian/libmirclient-debug-extension1.install 2014-08-25 07:23:50 +0000
326+++ debian/libmirclient-debug-extension.install.in 2015-03-02 13:06:12 +0000
327@@ -1,1 +1,1 @@
328-usr/lib/*/libmirclient-debug-extension.so.*
329+usr/lib/*/libmirclient-debug-extension.so.@MIRCLIENT_DEBUG_EXTENSION_ABI@
330
331=== renamed file 'debian/libmirclient8.install' => 'debian/libmirclient.install.in'
332--- debian/libmirclient8.install 2015-01-21 07:34:50 +0000
333+++ debian/libmirclient.install.in 2015-03-02 13:06:12 +0000
334@@ -1,1 +1,1 @@
335-usr/lib/*/libmirclient.so.8
336+usr/lib/*/libmirclient.so.@MIRCLIENT_ABI@
337
338=== renamed file 'debian/libmircommon3.install' => 'debian/libmircommon.install.in'
339--- debian/libmircommon3.install 2015-01-21 07:34:50 +0000
340+++ debian/libmircommon.install.in 2015-03-02 13:06:12 +0000
341@@ -1,1 +1,1 @@
342-usr/lib/*/libmircommon.so.3
343+usr/lib/*/libmircommon.so.@MIRCOMMON_ABI@
344
345=== renamed file 'debian/libmirplatform7.install' => 'debian/libmirplatform.install.in'
346--- debian/libmirplatform7.install 2015-02-14 00:01:13 +0000
347+++ debian/libmirplatform.install.in 2015-03-02 13:06:12 +0000
348@@ -1,1 +1,1 @@
349-usr/lib/*/libmirplatform.so.7
350+usr/lib/*/libmirplatform.so.@MIRPLATFORM_ABI@
351
352=== renamed file 'debian/libmirprotobuf0.install' => 'debian/libmirprotobuf.install.in'
353--- debian/libmirprotobuf0.install 2014-10-21 15:42:39 +0000
354+++ debian/libmirprotobuf.install.in 2015-03-02 13:06:12 +0000
355@@ -1,1 +1,1 @@
356-usr/lib/*/libmirprotobuf.so.0
357+usr/lib/*/libmirprotobuf.so.@MIRPROTOBUF_ABI@
358
359=== renamed file 'debian/libmirserver31.install' => 'debian/libmirserver.install.in'
360--- debian/libmirserver31.install 2015-02-23 16:36:21 +0000
361+++ debian/libmirserver.install.in 2015-03-02 13:06:12 +0000
362@@ -1,1 +1,1 @@
363-usr/lib/*/libmirserver.so.31
364+usr/lib/*/libmirserver.so.@MIRSERVER_ABI@
365
366=== renamed file 'debian/mir-client-platform-android2.install' => 'debian/mir-client-platform-android.install.in'
367--- debian/mir-client-platform-android2.install 2015-02-20 12:11:25 +0000
368+++ debian/mir-client-platform-android.install.in 2015-03-02 13:06:12 +0000
369@@ -1,1 +1,1 @@
370-usr/lib/*/mir/client-platform/android.so.2
371+usr/lib/*/mir/client-platform/android.so.@MIR_CLIENT_PLATFORM_ABI@
372
373=== renamed file 'debian/mir-client-platform-mesa2.install' => 'debian/mir-client-platform-mesa.install.in'
374--- debian/mir-client-platform-mesa2.install 2015-02-20 12:11:25 +0000
375+++ debian/mir-client-platform-mesa.install.in 2015-03-02 13:06:12 +0000
376@@ -1,1 +1,1 @@
377-usr/lib/*/mir/client-platform/mesa.so.2
378+usr/lib/*/mir/client-platform/mesa.so.@MIR_CLIENT_PLATFORM_ABI@
379
380=== renamed file 'debian/mir-platform-graphics-android2.install' => 'debian/mir-platform-graphics-android.install.in'
381--- debian/mir-platform-graphics-android2.install 2015-02-20 12:11:25 +0000
382+++ debian/mir-platform-graphics-android.install.in 2015-03-02 13:06:12 +0000
383@@ -1,1 +1,1 @@
384-usr/lib/*/mir/server-platform/graphics-android.so.2
385+usr/lib/*/mir/server-platform/graphics-android.so.@MIR_SERVER_GRAPHICS_PLATFORM_ABI@
386
387=== renamed file 'debian/mir-platform-graphics-mesa2.install' => 'debian/mir-platform-graphics-mesa.install.in'
388--- debian/mir-platform-graphics-mesa2.install 2015-02-20 12:11:25 +0000
389+++ debian/mir-platform-graphics-mesa.install.in 2015-03-02 13:06:12 +0000
390@@ -1,1 +1,1 @@
391-usr/lib/*/mir/server-platform/graphics-mesa.so.2
392+usr/lib/*/mir/server-platform/graphics-mesa.so.@MIR_SERVER_GRAPHICS_PLATFORM_ABI@
393
394=== modified file 'debian/rules'
395--- debian/rules 2015-02-13 06:12:34 +0000
396+++ debian/rules 2015-03-02 13:06:12 +0000
397@@ -16,6 +16,10 @@
398 %:
399 dh $@ --parallel --fail-missing
400
401+override_dh_testdir:
402+ sh debian/create_control_and_install_files.sh
403+ dh_testdir
404+
405 #overrding dh_auto_test to get rid of --parallel during testing
406 override_dh_auto_test:
407 GTEST_OUTPUT=xml:./ dh_auto_test --max-parallel=1 -- ARGS="-V"
408
409=== modified file 'src/protobuf/CMakeLists.txt'
410--- src/protobuf/CMakeLists.txt 2015-01-21 07:34:50 +0000
411+++ src/protobuf/CMakeLists.txt 2015-03-02 13:06:12 +0000
412@@ -25,11 +25,13 @@
413 ${PROTOBUF_LIBRARIES}
414 )
415
416+set(MIRPROTOBUF_ABI 0)
417+
418 set_target_properties(
419 mirprotobuf
420
421 PROPERTIES
422- SOVERSION 0
423+ SOVERSION ${MIRPROTOBUF_ABI}
424 )
425
426 # Export the include directories

Subscribers

People subscribed via source and target branches