Mir

Merge lp:~kdub/mir/fix-1607358 into lp:mir

Proposed by Kevin DuBois
Status: Work in progress
Proposed branch: lp:~kdub/mir/fix-1607358
Merge into: lp:mir
Diff against target: 74 lines (+10/-7)
4 files modified
debian/control (+1/-0)
debian/rules (+7/-5)
src/platforms/eglstream-kms/server/egl_output.cpp (+1/-1)
src/platforms/eglstream-kms/server/kms_display_configuration.cpp (+1/-1)
To merge this branch: bzr merge lp:~kdub/mir/fix-1607358
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Needs Fixing
Daniel van Vugt Needs Fixing
Cemil Azizoglu (community) Approve
Alexandros Frantzis (community) Needs Fixing
Review via email: mp+301480@code.launchpad.net

Commit message

fix LP: #1607358 by building the eglstream platform in CI. As the produced files (client and server platform) are not packaged anywhere, instruct the packaging to ignore these files until its time to publish them in a deb.

We also had a missing dependency from the eglstream platform, libepoxy-dev.

fixes: LP: #1607358

Description of the change

fix LP: #1607358 by building the eglstream platform in CI. As the produced files (client and server platform) are not packaged anywhere, instruct the packaging to ignore these files until its time to publish them in a deb.

We also had a missing dependency from the eglstream platform, libepoxy-dev.

fixes: LP: #1607358

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3616
https://mir-jenkins.ubuntu.com/job/mir-ci/1372/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1650
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1703
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1694
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1694
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1694
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1665
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1665/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1665
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1665/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1665
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1665/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1665
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1665/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1665
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1665/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1372/rebuild

review: Approve (continuous-integration)
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

In the build-2-binpkg-mir CI job we explicitly override the MIR_PLATFORM config variable, so the change in this MP doesn't have any effect for CI (but it does for other normal package builds, e.g., ci-train builds).

For example in https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1665/consoleFull we still get:

12:53:26 -DMIR_PLATFORM='mesa-kms;mesa-x11;android'

Let's land this, but after landing let's not forget to change the code in build-2-binpkg-mir, too.

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

I have created a test build-2-binpkg-mir-eglstream job with the changes needed to also build eglstream-kms and have scheduled a build of this branch with that job:

https://mir-jenkins.ubuntu.com/view/Build/job/build-2-binpkg-mir-eglstream/1/

Let's see how it goes before top approving.

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

Nice workaround, thanks. I was going to solve it by editing CMakeLists instead.

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

The results are not good, there are many builds failures in https://mir-jenkins.ubuntu.com/view/Build/job/build-2-binpkg-mir-eglstream/1/ and for different reasons depending on the release/arch combination.

eglstream-kms is not ready for CI yet.

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

*shrug*

Ask RAOF to take over this?

lp:~kdub/mir/fix-1607358 updated
3617. By Kevin DuBois

remove unused member variable that clang was complaining about

3618. By Kevin DuBois

fix a few narrowing conversion errors

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

I corrected the minor issues that could be found. The larger issue is that vivid's egl headers don't seem to have the necessary extensions in them.

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3618
https://mir-jenkins.ubuntu.com/job/mir-ci/1387/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1668
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1721
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1712
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1712
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1712
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1683
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1683/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1683
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1683/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1683
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1683/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1683
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1683/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1683
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1683/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1387/rebuild

review: Approve (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

Lgtm.

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

(1) Hmm, clang complains about a lot on lp:mir too. I've proposed the complete set of clang fixes separately:
   https://code.launchpad.net/~vanvugt/mir/fix-clang-20160803/+merge/301869
So let's get that in first.

(2) vivid cross compiling this branch seems to work for me, but that could just be a consequence of cross-compile-chroot.sh using the host headers (yakkety) when it should be using the chroot headers instead (vivid). That's a pre-existing issue that would hide the EGL header problem you mention.

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

1) alright by me.
2) Sounds like that could be a problem with the cross-compile-chroot.sh script (we should probably find a more standardized way to crossbuild for development by now). The problem that vivid doesn't have the eglstream extensions though still is a problem for the package builders that I don't know how to resolve, short of backports to our mesa package.

Also, a +1 vote from the automatic CI runs on this MP is not a 'real' +1 vote, as CI goes and changes the the platforms built. The second job Alexandros set up has to +1 the MP before its fixed.

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

(1) Worked yesterday, but fails today. Very unfortunate timing -> bug 1609612

(2) Yeah I already knew cross-compile-chroot.sh had the flaw of using the wrong headers from android-headers work in the past...

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

(3) Your change to client_platform.h was incomplete and failed to build by itself. The correct change is now on lp:mir so you need to merge trunk.

review: Needs Fixing
lp:~kdub/mir/fix-1607358 updated
3619. By Kevin DuBois

merge in lp:mir

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

Not sure that this can be fixed without getting the eglstream headers in vivid. Moving to WIP.

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3619
https://mir-jenkins.ubuntu.com/job/mir-ci/1396/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1699/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1752
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1743
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1743
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1743
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1719
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1719/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1719
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1719/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1719
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1719/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1719
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1719/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1719
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1719/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1719/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1396/rebuild

review: Needs Fixing (continuous-integration)

Unmerged revisions

3619. By Kevin DuBois

merge in lp:mir

3618. By Kevin DuBois

fix a few narrowing conversion errors

3617. By Kevin DuBois

remove unused member variable that clang was complaining about

3616. By Kevin DuBois

add building of eglstream to the default debian options. ignore the produced files in packaging until its time to publish them

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/control'
2--- debian/control 2016-08-01 14:43:19 +0000
3+++ debian/control 2016-08-04 12:06:59 +0000
4@@ -46,6 +46,7 @@
5 python3:any,
6 dh-python,
7 nettle-dev,
8+ libepoxy-dev,
9 Standards-Version: 3.9.4
10 Homepage: https://launchpad.net/mir
11 # If you aren't a member of ~mir-team but need to upload packaging changes,
12
13=== modified file 'debian/rules'
14--- debian/rules 2016-07-19 09:18:57 +0000
15+++ debian/rules 2016-08-04 12:06:59 +0000
16@@ -34,16 +34,16 @@
17 $(COMMON_CONFIGURE_OPTIONS) \
18 -DMIR_RUN_ACCEPTANCE_TESTS=OFF \
19 -DMIR_RUN_INTEGRATION_TESTS=OFF \
20- -DMIR_PLATFORM=android\;mesa-kms\;mesa-x11
21+ -DMIR_PLATFORM=android\;mesa-kms\;mesa-x11\;eglstream-kms
22 else
23 ifneq ($(filter amd64 i386,$(DEB_HOST_ARCH)),)
24 dh_auto_configure -- \
25 $(COMMON_CONFIGURE_OPTIONS) \
26- -DMIR_PLATFORM=mesa-kms\;mesa-x11\;android
27+ -DMIR_PLATFORM=mesa-kms\;mesa-x11\;android\;eglstream-kms
28 else
29 dh_auto_configure -- \
30 $(COMMON_CONFIGURE_OPTIONS) \
31- -DMIR_PLATFORM=mesa-kms\;mesa-x11
32+ -DMIR_PLATFORM=mesa-kms\;mesa-x11\;eglstream-kms
33 endif
34 endif
35
36@@ -60,8 +60,10 @@
37 # Delete the symlink so that --fail-missing doesn't think we've missed it
38 # accidentally.
39 -rm debian/tmp/usr/lib/*/libmirprotobuf.so
40- dh_install -p libmirplatform-dev -Xmesa --fail-missing
41- dh_install --remaining-packages --fail-missing -Xjquery.js
42+# Note: once we package and ship the eglstream platform, we should remove
43+# the -Xeglstream flag
44+ dh_install -p libmirplatform-dev -Xmesa -Xeglstream --fail-missing
45+ dh_install --remaining-packages --fail-missing -Xjquery.js -Xeglstream
46
47 # Don't try to strip libraries used as test data
48 override_dh_strip:
49
50=== modified file 'src/platforms/eglstream-kms/server/egl_output.cpp'
51--- src/platforms/eglstream-kms/server/egl_output.cpp 2016-05-31 01:21:42 +0000
52+++ src/platforms/eglstream-kms/server/egl_output.cpp 2016-08-04 12:06:59 +0000
53@@ -271,7 +271,7 @@
54 }
55
56 EGLAttrib const crtc_filter[] = {
57- EGL_DRM_PLANE_EXT, plane_id,
58+ EGL_DRM_PLANE_EXT, static_cast<EGLAttrib>(plane_id),
59 EGL_NONE};
60 int found_layers{0};
61 if (eglGetOutputLayersEXT(display, crtc_filter, &layer, 1, &found_layers) != EGL_TRUE)
62
63=== modified file 'src/platforms/eglstream-kms/server/kms_display_configuration.cpp'
64--- src/platforms/eglstream-kms/server/kms_display_configuration.cpp 2016-05-31 01:21:42 +0000
65+++ src/platforms/eglstream-kms/server/kms_display_configuration.cpp 2016-08-04 12:06:59 +0000
66@@ -85,7 +85,7 @@
67 EGLOutputPortEXT port;
68 int num_ports;
69 EGLAttrib const select_connector[] = {
70- EGL_DRM_CONNECTOR_EXT, connector->connector_id,
71+ EGL_DRM_CONNECTOR_EXT, static_cast<EGLAttrib>(connector->connector_id),
72 EGL_NONE
73 };
74 if (eglGetOutputPortsEXT(display, select_connector, &port, 1, &num_ports) != EGL_TRUE)

Subscribers

People subscribed via source and target branches