summaryrefslogtreecommitdiffstats
path: root/bsp/meta-synopsys/recipes-graphics/wayland/weston/1005-protocol-add-weston-debug.xml.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-synopsys/recipes-graphics/wayland/weston/1005-protocol-add-weston-debug.xml.patch')
-rw-r--r--bsp/meta-synopsys/recipes-graphics/wayland/weston/1005-protocol-add-weston-debug.xml.patch242
1 files changed, 242 insertions, 0 deletions
diff --git a/bsp/meta-synopsys/recipes-graphics/wayland/weston/1005-protocol-add-weston-debug.xml.patch b/bsp/meta-synopsys/recipes-graphics/wayland/weston/1005-protocol-add-weston-debug.xml.patch
new file mode 100644
index 00000000..4ca79b72
--- /dev/null
+++ b/bsp/meta-synopsys/recipes-graphics/wayland/weston/1005-protocol-add-weston-debug.xml.patch
@@ -0,0 +1,242 @@
+From 4fc1ee8d5b5c2a66fcc1a5bafad3eb95c3759bac Mon Sep 17 00:00:00 2001
+From: Pekka Paalanen <pq@iki.fi>
+Date: Thu, 12 Oct 2017 13:13:41 +0200
+Subject: [PATCH 05/46] protocol: add weston-debug.xml
+
+This is a new debugging extension for non-production environments. The
+aim is to replace all build-time choosable debug prints in the
+compositor with runtime subscribable debug streams.
+
+Signed-off-by: Pekka Paalanen <pq@iki.fi>
+
+Added new libweston-$MAJOR-protocols.pc file and install that
+for external projects to find the XML files installed by libweston.
+
+Signed-off-by: Maniraj Devadoss <Maniraj.Devadoss@in.bosch.com>
+
+Use noarch_pkgconfig_DATA instead, add ${pc_sysrootdir}, drop
+unnecessary EXTRA_DIST of weston-debug.xml.
+
+Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
+
+Add explicit advertisement of available debug interfaces.
+
+Signed-off-by: Daniel Stone <daniels@collabora.com>
+Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
+---
+ Makefile.am | 10 +++
+ configure.ac | 1 +
+ libweston/libweston-protocols.pc.in | 7 ++
+ protocol/weston-debug.xml | 139 ++++++++++++++++++++++++++++++++++++
+ 4 files changed, 157 insertions(+)
+ create mode 100644 libweston/libweston-protocols.pc.in
+ create mode 100644 protocol/weston-debug.xml
+
+diff --git a/Makefile.am b/Makefile.am
+index 83546b7c..e38ac009 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -104,6 +104,10 @@ libweston_@LIBWESTON_MAJOR@_la_SOURCES = \
+ shared/platform.h \
+ shared/weston-egl-ext.h
+
++libweston_@LIBWESTON_MAJOR@_datadir = $(datadir)/weston/protocols
++dist_libweston_@LIBWESTON_MAJOR@_data_DATA = \
++ protocol/weston-debug.xml
++
+ lib_LTLIBRARIES += libweston-desktop-@LIBWESTON_MAJOR@.la
+ libweston_desktop_@LIBWESTON_MAJOR@_la_CPPFLAGS = $(AM_CPPFLAGS) -DIN_WESTON
+ libweston_desktop_@LIBWESTON_MAJOR@_la_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS)
+@@ -150,6 +154,8 @@ endif
+ nodist_libweston_@LIBWESTON_MAJOR@_la_SOURCES = \
+ protocol/weston-screenshooter-protocol.c \
+ protocol/weston-screenshooter-server-protocol.h \
++ protocol/weston-debug-protocol.c \
++ protocol/weston-debug-server-protocol.h \
+ protocol/text-cursor-position-protocol.c \
+ protocol/text-cursor-position-server-protocol.h \
+ protocol/text-input-unstable-v1-protocol.c \
+@@ -274,6 +280,10 @@ pkgconfig_DATA = \
+ libweston-desktop/libweston-desktop-${LIBWESTON_MAJOR}.pc \
+ compositor/weston.pc
+
++noarch_pkgconfigdir = $(datadir)/pkgconfig
++noarch_pkgconfig_DATA = \
++ libweston/libweston-${LIBWESTON_MAJOR}-protocols.pc
++
+ wayland_sessiondir = $(datadir)/wayland-sessions
+ dist_wayland_session_DATA = compositor/weston.desktop
+
+diff --git a/configure.ac b/configure.ac
+index ab9ff7c7..cb62a386 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -695,6 +695,7 @@ AC_CONFIG_FILES([Makefile libweston/version.h compositor/weston.pc])
+ # libweston_abi_version here, and outside [] because of m4 quoting rules
+ AC_CONFIG_FILES([libweston/libweston-]libweston_major_version[.pc:libweston/libweston.pc.in])
+ AC_CONFIG_FILES([libweston/libweston-]libweston_major_version[-uninstalled.pc:libweston/libweston-uninstalled.pc.in])
++AC_CONFIG_FILES([libweston/libweston-]libweston_major_version[-protocols.pc:libweston/libweston-protocols.pc.in])
+ AC_CONFIG_FILES([libweston-desktop/libweston-desktop-]libweston_major_version[.pc:libweston-desktop/libweston-desktop.pc.in])
+ AC_CONFIG_FILES([libweston-desktop/libweston-desktop-]libweston_major_version[-uninstalled.pc:libweston-desktop/libweston-desktop-uninstalled.pc.in])
+
+diff --git a/libweston/libweston-protocols.pc.in b/libweston/libweston-protocols.pc.in
+new file mode 100644
+index 00000000..6547a0d5
+--- /dev/null
++++ b/libweston/libweston-protocols.pc.in
+@@ -0,0 +1,7 @@
++prefix=@prefix@
++datarootdir=@datarootdir@
++pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@/protocols
++
++Name: libWeston Protocols
++Description: libWeston protocol files
++Version: @WESTON_VERSION@
+diff --git a/protocol/weston-debug.xml b/protocol/weston-debug.xml
+new file mode 100644
+index 00000000..effa1a19
+--- /dev/null
++++ b/protocol/weston-debug.xml
+@@ -0,0 +1,139 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<protocol name="weston_debug">
++
++ <copyright>
++ Copyright © 2017 Pekka Paalanen pq@iki.fi
++ Copyright © 2018 Zodiac Inflight Innovations
++
++ Permission is hereby granted, free of charge, to any person obtaining a
++ copy of this software and associated documentation files (the "Software"),
++ to deal in the Software without restriction, including without limitation
++ the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ and/or sell copies of the Software, and to permit persons to whom the
++ Software is furnished to do so, subject to the following conditions:
++
++ The above copyright notice and this permission notice (including the next
++ paragraph) shall be included in all copies or substantial portions of the
++ Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ DEALINGS IN THE SOFTWARE.
++ </copyright>
++
++ <interface name="weston_debug_v1" version="1">
++ <description summary="weston internal debugging">
++ This is a generic debugging interface for Weston internals, the global
++ object advertized through wl_registry.
++
++ WARNING: This interface by design allows a denial-of-service attack. It
++ should not be offered in production, or proper authorization mechnisms
++ must be enforced.
++
++ The idea is for a client to provide a file descriptor that the server
++ uses for printing debug information. The server uses the file
++ descriptor in blocking writes mode, which exposes the denial-of-service
++ risk. The blocking mode is necessary to ensure all debug messages can
++ be easily printed in place. It also ensures message ordering if a
++ client subcribes to more than one debug stream.
++
++ The available debugging features depend on the server.
++
++ A debug stream can be one-shot where the server prints the requested
++ information and then closes it, or continuous where server keeps on
++ printing until the client stops it. Or anything in between.
++ </description>
++
++ <request name="destroy" type="destructor">
++ <description summary="destroy factory object">
++ Destroys the factory object, but does not affect any other objects.
++ </description>
++ </request>
++
++ <event name="available">
++ <description summary="advertise available debug scope">
++ Advertises an available debug scope which the client may be able to
++ bind to. No information is provided by the server about the content
++ contained within the debug streams provided by the scope, once a
++ client has subscribed.
++ </description>
++
++ <arg name="name" type="string" allow-null="false"
++ summary="debug stream name"/>
++ <arg name="description" type="string" allow-null="true"
++ summary="human-readable description of the debug scope"/>
++ </event>
++
++ <request name="subscribe">
++ <description summary="subscribe to a debug stream">
++ Subscribe to a named debug stream. The server will start printing
++ to the given file descriptor.
++
++ If the named debug stream is a one-shot dump, the server will send
++ weston_debug_stream_v1.complete event once all requested data has
++ been printed. Otherwise, the server will continue streaming debug
++ prints until the subscription object is destroyed.
++
++ If the debug stream name is unknown to the server, the server will
++ immediately respond with weston_debug_stream_v1.failure event.
++ </description>
++
++ <arg name="name" type="string" allow-null="false"
++ summary="debug stream name"/>
++ <arg name="streamfd" type="fd" summary="write stream file descriptor"/>
++ <arg name="stream" type="new_id" interface="weston_debug_stream_v1"
++ summary="created debug stream object"/>
++ </request>
++ </interface>
++
++ <interface name="weston_debug_stream_v1" version="1">
++ <description summary="A subscribed debug stream">
++ Represents one subscribed debug stream, created with
++ weston_debug_v1.subscribe. When the object is created, it is associated
++ with a given file descriptor. The server will continue writing to the
++ file descriptor until the object is destroyed or the server sends an
++ event through the object.
++ </description>
++
++ <request name="destroy" type="destructor">
++ <description summary="close a debug stream">
++ Destroys the object, which causes the server to stop writing into
++ and closes the associated file descriptor if it was not closed
++ already.
++
++ Use a wl_display.sync if the clients needs to guarantee the file
++ descriptor is closed before continuing.
++ </description>
++ </request>
++
++ <event name="complete">
++ <description summary="server completed the debug stream">
++ The server has successfully finished writing to and has closed the
++ associated file descriptor.
++
++ This event is delivered only for one-shot debug streams where the
++ server dumps some data and stop. This is never delivered for
++ continuous debbug streams because they by definition never complete.
++ </description>
++ </event>
++
++ <event name="failure">
++ <description summary="server cannot continue the debug stream">
++ The server has stopped writing to and has closed the
++ associated file descriptor. The data already written to the file
++ descriptor is correct, but it may be truncated.
++
++ This event may be delivered at any time and for any kind of debug
++ stream. It may be due to a failure in or shutdown of the server.
++ The message argument may provide a hint of the reason.
++ </description>
++
++ <arg name="message" type="string" allow-null="true"
++ summary="human readable reason"/>
++ </event>
++ </interface>
++</protocol>
+--
+2.16.2
+