diff options
author | Yann E. MORIN <yann.morin.1998@free.fr> | 2014-02-06 21:45:19 +0100 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2014-02-06 23:07:15 +0100 |
commit | 2e66e26aa6bfa336fceb838918f3a88e0b21899d (patch) | |
tree | 9f28b92d52763b229bc316afb0c50d2c111bf312 /package/weston | |
parent | 7122e6a7f47124f735a3851b92ba74ac98959741 (diff) |
package/weston: un-break the rpi-compositor
The rpi-compositor was broken with the 1.4.0 release,
but we now have a fix from upstream.
Add this patch, and remove the 'depends on BROKEN'.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/weston')
-rw-r--r-- | package/weston/Config.in | 1 | ||||
-rw-r--r-- | package/weston/weston-0000-compositor-rpi-fix-input-initialization.patch | 57 |
2 files changed, 57 insertions, 1 deletions
diff --git a/package/weston/Config.in b/package/weston/Config.in index 1ab3c2f2e..247efc888 100644 --- a/package/weston/Config.in +++ b/package/weston/Config.in @@ -41,7 +41,6 @@ comment "RPi compositor needs a toolchain w/ C++, largefile, threads" config BR2_PACKAGE_WESTON_RPI bool "RPi compositor" - depends on BROKEN # rpi-backend broken in 1.4.0 depends on BR2_arm # rpi-userland depends on BR2_INSTALL_LIBSTDCPP # rpi-userland depends on BR2_LARGEFILE # rpi-userland diff --git a/package/weston/weston-0000-compositor-rpi-fix-input-initialization.patch b/package/weston/weston-0000-compositor-rpi-fix-input-initialization.patch new file mode 100644 index 000000000..8722d07b8 --- /dev/null +++ b/package/weston/weston-0000-compositor-rpi-fix-input-initialization.patch @@ -0,0 +1,57 @@ +commit bf539e39c15e9a4ef4479d03c52263a3f020ef4a +Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> +Date: Mon Feb 3 16:57:27 2014 +0100 + + compositor-rpi: Fix input initialization + + The input initialization code assumes the outputs have already + been initialized; thus create the outputs first. This fixes a + segfault upon startup. It is also what the drm and fbdev backends + do. + +diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c +index 399090d..e7c0e0d 100644 +--- a/src/compositor-rpi.c ++++ b/src/compositor-rpi.c +@@ -527,13 +527,6 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], + weston_log("Dispmanx planes are %s buffered.\n", + compositor->single_buffer ? "single" : "double"); + +- if (udev_input_init(&compositor->input, +- &compositor->base, +- compositor->udev, "seat0") != 0) { +- weston_log("Failed to initialize udev input.\n"); +- goto out_launcher; +- } +- + for (key = KEY_F1; key < KEY_F9; key++) + weston_compositor_add_key_binding(&compositor->base, key, + MODIFIER_CTRL | MODIFIER_ALT, +@@ -549,19 +542,23 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], + bcm_host_init(); + + if (rpi_renderer_create(&compositor->base, ¶m->renderer) < 0) +- goto out_udev_input; ++ goto out_launcher; + + if (rpi_output_create(compositor, param->output_transform) < 0) + goto out_renderer; + ++ if (udev_input_init(&compositor->input, ++ &compositor->base, ++ compositor->udev, "seat0") != 0) { ++ weston_log("Failed to initialize udev input.\n"); ++ goto out_renderer; ++ } ++ + return &compositor->base; + + out_renderer: + compositor->base.renderer->destroy(&compositor->base); + +-out_udev_input: +- udev_input_destroy(&compositor->input); +- + out_launcher: + weston_launcher_destroy(compositor->base.launcher); + |