Merge lp://qastaging/~raof/mir/waylanding-again into lp://qastaging/mir
- waylanding-again
- Merge into development-branch
Status: | Merged |
---|---|
Approved by: | Alan Griffiths |
Approved revision: | no longer in the source branch. |
Merged at revision: | 4244 |
Proposed branch: | lp://qastaging/~raof/mir/waylanding-again |
Merge into: | lp://qastaging/mir |
Diff against target: |
4937 lines (+4487/-18) 32 files modified
CMakeLists.txt (+12/-0) debian/control (+1/-0) examples/CMakeLists.txt (+9/-0) examples/wayland_client.c (+391/-0) include/platform/mir/graphics/egl_extensions.h (+11/-0) include/platform/mir/graphics/wayland_allocator.h (+45/-0) include/server/mir/frontend/buffer_stream.h (+1/-0) include/test/mir/test/doubles/mock_egl.h (+7/-0) src/CMakeLists.txt (+1/-0) src/include/server/mir/compositor/buffer_stream.h (+0/-1) src/include/server/mir/default_server_configuration.h (+2/-0) src/include/server/mir/server_configuration.h (+1/-0) src/platform/graphics/CMakeLists.txt (+1/-0) src/platform/graphics/egl_extensions.cpp (+34/-1) src/platforms/mesa/server/CMakeLists.txt (+2/-0) src/platforms/mesa/server/buffer_allocator.cpp (+231/-0) src/platforms/mesa/server/buffer_allocator.h (+9/-1) src/platforms/mesa/server/kms/CMakeLists.txt (+2/-0) src/platforms/mesa/server/kms/platform.cpp (+14/-0) src/protocol/CMakeLists.txt (+28/-0) src/protocol/wrapper_generator.cpp (+509/-0) src/server/CMakeLists.txt (+2/-0) src/server/display_server.cpp (+11/-3) src/server/frontend/CMakeLists.txt (+2/-0) src/server/frontend/wayland/CMakeLists.txt (+14/-0) src/server/frontend/wayland/core_generated_interfaces.h (+1189/-0) src/server/frontend/wayland/wayland_connector.cpp (+1785/-0) src/server/frontend/wayland/wayland_connector.h (+83/-0) src/server/frontend/wayland/wayland_default_configuration.cpp (+39/-0) src/server/symbols.map (+1/-0) tests/mir_test_doubles/mock_egl.cpp (+48/-1) tests/mir_test_doubles/nested_mock_egl.cpp (+2/-11) |
To merge this branch: | bzr merge lp://qastaging/~raof/mir/waylanding-again |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Review via email:
|
Commit message
First round of Wayland support
This is sufficient to
a) Not break unrelated tests, and
b) Provide enough protocol to run es2gears_wayland
c) Provide input support to Wayland clients
Description of the change
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4179
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4180
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4183
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4183
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4185
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4186
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4188
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4189
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Chris Halse Rogers (raof) wrote : | # |
Oh, balls.
Cross-compilation with generated binaries. Sigh.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Gerry Boland (gerboland) wrote : | # |
+class WaylandBuffer :
+ void gl_bind_
+ for (auto&& frame : frames)
+ {
+ auto framer = std::move(frame);
+ executor->spawn(
+ [frame = framer.release(), deleter = framer.
+ {
+ wl_callback_
+ wl_client_
+ deleter(frame);
+ });
+ }
+ frames.clear();
More a question of intent: if a client has no new frame to draw, are we doing wrong to delete the frame on the server? I would expect we only delete a frame when we have got a new one from the client.
Or instead do we tell the client, compositor has released the frame, and client can then specify that buffer be re-used? That seems a bit wasteful. /me trying to interpret the buffer exchange design from wayland.xml
It's the fact you need the Executor just to deal with frame release, that made me bring this up.
+ struct DestructionShim
+ {
+ std::shared_
The way you're sharing this mutex between this and the WaylandBuffer is a bit peculiar looking, but I suspect unavoidable, as you need the mutex for the on_buffer_destroyed callback. You *could* use the void*, but what you're doing is indeed cleaner.
+ if (dpy == EGL_NO_DISPLAY)
+ BOOST_THROW_
Mir has been rated PG13 due to its low expletive, violence and sexual content, please don't jeopardise that. The kids are where its at for all that sweet merchandising profit.
+++ src/platforms/
does this file need to change? I only see header files being added.
+++ src/protocol/
Missing licence.
to be continued...
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4190
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4190
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4190
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4190
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4192
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:4193
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:4195
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
+ DestructionShim* shim;
+
+ shim = wl_container_
I thought we were passing an uninitialized value to a function, but no, its a nasty lowercase MACRO imitating a function, but doing something a function can't!!
I guess this isn't something we can fix.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
[terminal 1]
$ bin/miral-shell
[terminal 2]
$ bin/mir_
...
^C
The server crashes (this doesn't happen with using Shift-Alt-F4 to send SIGTERM).
~~~~
+ * Copyright © 2015 Canonical LTD
Really 2015? We use "Ltd." elsewhere.
~~~~
+ GNU General Public License version 3
2 or 3
~~~~
+#include "../../
1. Not the approved way to reach a header.
2. Platforms shouldn't be depending on mirserver (yes I realize it's an interface)
~~~~
+#include "../../
1. Not the approved way to reach a header.
2. The frontend shouldn't be dependent on scene internals. (It should define an abstraction that scene can implement.)
~~~~
I just merged to trunk and "built" and got...
/home/alan/
#include "core_generated
"make refresh-
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Chris Halse Rogers (raof) wrote : | # |
Heh. Turns out that doing the not-quite-
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Gerry Boland (gerboland) wrote : | # |
Nice work so far, I can bring up wayland glmark and Qt apps using wayland, and they render ok.
Input is problematic. Seems Qt apps not getting input events. And moving mouse over glmark quickly causes server lockup.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
I'm off work until Tuesday, so won't be reviewing in detail until then. But looks like my "Needs Fixings" are being fixed.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Chris Halse Rogers (raof) wrote : | # |
Hah! The reason why input is problematic is that the *window* is only set to 100x100! You only get input in the top-left-hand corner.
That took altogether too long to figure out.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Gerry Boland (gerboland) wrote : | # |
Little patch to make it compile on artful: https:/
Input is more stable now, but something broke Qt app rendering - colours are there, but each line offset by a little, as if window width not quite right.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4196
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
I just merged to trunk and "built" and got...
../libmirshared
/home/alan/
/home/alan/
../libmirshared
/home/alan/
/home/alan/
clang: error: linker command failed with exit code 1 (use -v to see invocation)
src/platforms/
make[2]: *** [lib/server-
CMakeFiles/
Once again "make refresh-
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
> I just merged to trunk and "built" and got...
>
> ../libmirshared
> `WaylandBuffer':
> /home/alan/
> 46: undefined reference to `wl_resource_
> /home/alan/
> 65: undefined reference to `wl_resource_
> ../libmirshared
> `~WaylandBuffer':
> /home/alan/
> 05: undefined reference to `wl_resource_
> /home/alan/
> 06: undefined reference to `wl_resource_
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> src/platforms/
> ke:105: recipe for target 'lib/server-
> make[2]: *** [lib/server-
> CMakeFiles/
> 'src/platforms/
> failed
>
> Once again "make refresh-
> quite right.
Loads of tests fail, and (possibly related):
$ cmake-build-
...
wl_global_create: implemented version for 'wl_seat' higher than interface version (6 > 5)
ERROR: /home/alan/
Dynamic exception type: boost::
std::exception:
Segmentation fault (core dumped)
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
> I just merged to trunk and "built" and got...
>
> ../libmirshared
> `WaylandBuffer':
> /home/alan/
> 46: undefined reference to `wl_resource_
> /home/alan/
> 65: undefined reference to `wl_resource_
> ../libmirshared
> `~WaylandBuffer':
> /home/alan/
> 05: undefined reference to `wl_resource_
> /home/alan/
> 06: undefined reference to `wl_resource_
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> src/platforms/
> ke:105: recipe for target 'lib/server-
> make[2]: *** [lib/server-
> CMakeFiles/
> 'src/platforms/
> failed
>
> Once again "make refresh-
> quite right.
Loads of tests fail, and (possibly related):
$ cmake-build-
...
wl_global_create: implemented version for 'wl_seat' higher than interface version (6 > 5)
ERROR: /home/alan/
Dynamic exception type: boost::
std::exception:
Segmentation fault (core dumped)
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4207
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:4210
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
Close, just a few nits...
=== modified file 'tests/
--- tests/mir_
+++ tests/mir_
@@ -85,6 +85,7 @@
target_
+ mirserver
Not needed
~~~~~~~
+/*
+ * Copyright © 2015 Canonical Ltd.
Probably want 2017 too.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
2 or 3
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://
+ *
+ * Authored by: Christopher James Halse Rogers <email address hidden>
+ */
+
+#include "mir/default_
+#include "wayland_
+
+#include "../../
#include "mir/frontend/
+#include "mir/graphics/
+
+namespace mf = mir::frontend;
+
+std::shared_
+ mir::DefaultSer
+{
+ return wayland_connector(
+ [this]() -> std::shared_
+ {
+ return std::make_
+ the_frontend_
+ *the_mediating_
(Do we really want to avoid sharing ownership? Where's the lifetime guarantee?)
+ the_buffer_
+ });
+}
~~~~~~~
=== added file 'src/server/
Could benefit from a header comment to say it is generated.
The generated code uses a lot of reinterpret_cast<> where static_cast<> is all that is needed to downcast from void*.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
I guess a server crash might be enough to block landing, but this is beyond what we decided was minimal viable feature...
$ bin/miral-app --x11-displays=
Then in the miral-app terminal:
$ QT_QPA_
Use the mouse to switch to the wayland instance of kate, pull down the file menu then click on the editor panel.
Expect: menu disappears
Actual: server crashes:
terminate called after throwing an instance of 'boost:
what(): Setting null buffer is unimplemented
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4215
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:4216
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:4217
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
> I guess a server crash might be enough to block landing, but this is beyond
> what we decided was minimal viable feature...
>
> $ bin/miral-app --x11-displays=
>
> Then in the miral-app terminal:
>
> $ QT_QPA_
>
> Use the mouse to switch to the wayland instance of kate, pull down the file
> menu then click on the editor panel.
>
> Expect: menu disappears
> Actual: server crashes:
> terminate called after throwing an instance of 'boost:
> _impl<boost:
> what(): Setting null buffer is unimplemented
Was -r 4216 meant to stop this crash? (It is still happening)
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
+#include "mir/default_
+#include "wayland_
+
+#include "../../
#include "mir/frontend/
+#include "mir/graphics/
+
+namespace mf = mir::frontend;
+
+std::shared_
+ mir::DefaultSer
+{
+ return wayland_connector(
+ [this]() -> std::shared_
+ {
+ return std::make_
+ the_frontend_
+ *the_mediating_
(Do we really want to avoid sharing ownership? Where's the lifetime guarantee?)
+ the_buffer_
+ });
+}
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Alan Griffiths (alan-griffiths) wrote : | # |
> +#include "mir/default_
> +#include "wayland_
> +
> +#include "../../
>
> #include "mir/frontend/
>
> +#include "mir/graphics/
> +
> +namespace mf = mir::frontend;
> +
> +std::shared_
> + mir::DefaultSer
> +{
> + return wayland_connector(
> + [this]() -> std::shared_
> + {
> + return std::make_
> + the_frontend_
> + *the_mediating_
>
> *the_frontend_
>
> (Do we really want to avoid sharing ownership? Where's the lifetime
> guarantee?)
>
> + the_buffer_
> + });
> +}
nm, let's land this and fixup afterwards.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Chris Halse Rogers (raof) wrote : | # |
On Thu, Sep 7, 2017 at 9:08 PM, Alan Griffiths <email address hidden>
wrote:
>> I guess a server crash might be enough to block landing, but this
>> is beyond
>> what we decided was minimal viable feature...
>>
>> $ bin/miral-app --x11-displays=
>>
>> Then in the miral-app terminal:
>>
>> $ QT_QPA_
>>
>> Use the mouse to switch to the wayland instance of kate, pull down
>> the file
>> menu then click on the editor panel.
>>
>> Expect: menu disappears
>> Actual: server crashes:
>> terminate called after throwing an instance of
>> 'boost:
>>
>> _impl<boost:
>> >'
>> what(): Setting null buffer is unimplemented
>
> Was -r 4216 meant to stop this crash? (It is still happening)
Huh. That particular crash *definitely* cannot happen, and I could
happily switch between Kate instances, open menus, and such without
anything crashing.
I wonder what's up.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Chris Halse Rogers (raof) wrote : | # |
On Thu, Sep 7, 2017 at 9:18 PM, Alan Griffiths <email address hidden>
wrote:
> +#include "mir/default_
> +#include "wayland_
> +
> +#include "../../
>
> #include "mir/frontend/
>
> +#include "mir/graphics/
> +
> +namespace mf = mir::frontend;
> +
> +std::shared_
> + mir::DefaultSer
> +{
> + return wayland_connector(
> + [this]() -> std::shared_
> + {
> + return std::make_
> + the_frontend_
> + *the_mediating_
>
> *the_frontend_
>
> (Do we really want to avoid sharing ownership? Where's the lifetime
> guarantee?)
The lifetime guarantee is that WaylandConnector does not store any
reference to the mf::DisplayChanger; it's purely used at initialisation
time.
FAILED: Continuous integration, rev:4177 /mir-jenkins. ubuntu. com/job/ mir-ci/ 3582/ /mir-jenkins. ubuntu. com/job/ build-mir/ 4905/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/5127 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= artful/ 5116 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial/ 5116 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= zesty/5116 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= artful/ 4944/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4944/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= artful/ 4944/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial/ 4944/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4944/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= mesa,release= artful/ 4944/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= mesa,release= zesty/4944/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial/ 4944/console
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 3582/rebuild
https:/