Age | Commit message (Collapse) | Author | Files | Lines |
|
This allow starting up XWayland and the ability to display, albeit
is incomplete, given that we have no way at this moment to make the
window maximized, as we do with xdg-shell/native wayland applications.
A further patch, together with libweston changes are needed to make this
complete. For now this can provide us with initial smoke testing. Tested
with basic X11 clients, including Unigine, which is the reason for
having this the moment.
Note that this at the moment compiled-out, requiring the pass
-Dxwayland=true when building the compositor.
Bug-AGL: SPEC-4782
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I87d2a852165cb3f03482bea1e04931bdd6d4c115
|
|
Similar to Waltham, SMACK hasn't been really used and it was actually
a compile option, showing as a example the deny policy. The RBA and the
allow-all policy still available, and we can revisit the policy
mechanism if we plan on switching to SELinux.
Bug-AGL: SPEC-4806
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iedac63585676ebc47201debcf73870cb0538cc09
|
|
Waltham hasn't been used in a while, its support has been removed for
some time, we've been deprecating it last release so it's time to remove
it from the compositor as well.
Bug-AGL: SPEC-4669
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iaf1e467b1228051fd96cac424ac6781d67f9fefa
|
|
Required when building the compositor locally, without yocto/OE as
weston cflags includes the full path to weston.
Bug-AGL: SPEC-4725
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: If3a4e8238cb40c6fbe0db26bd1056fce48243038
|
|
This forces to create a include directory by hand, which we don't seem
to be needing. This only affected the cases where we build the
compositor locally, without yocto/OE.
Bug-AGL: SPEC-4725
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ic279714671809eae2362da9fccaf592f10f2b888
|
|
Waltham isn't really used, this is a step forward removing
support for it. For now just add an configuration option if users still
want to use it.
Bug-AGL: SPEC-4670
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I5ec900ef075717b438ef9e41167ad4833b2a8b87
|
|
We should probably cut and update the compositor to a newer version
as gRPC support is a big change to have.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iac400a3d2f0e62c5fe3b2ab0f681ce228a1865db
|
|
This brings in support for accessing agl-shell protocol indirectly by
using a gRPC interface which bridges the communication between a
particular client (the client issuing gRPC requests) and the AGL
compositor which does that by re-using the same agl-shell protocol.
In order to achieve that, and further more, to avoid having ifdefs code
in the compositor and deal with threading, we instead resorted to using
a helper client.
On one side this helper implements the gRPC server API,
and on the other, a wayland native client that implements the
agl_shell interface.
It uses the agl_shell_ext interface added
previously to communicate with the compositor that it requires access
to agl_shell interface as well. The helper expects that agl_shell interface
was already bounded to another client before starting it so it waits
until that happens and then it implements the protocol specification,
for each interface.
Launching the helper client automatically can be done by adding the
following entry to the ini file:
[shell-client-ext]
command=/path/to/agl-shell-grpc-server
The gRPC server implementation only handles the agl_shell interface
until to this point, specifically, the activate_app request, and the
events that were adedd with version 3 of the agl-shell protocol.
Also the implementation uses the Reactor pattern, with Callback service
that greatly simplifies the async version and avoids putting locks to
to handle multiple clients. This should allow multiple clients being
connected to the gRPC server and receive events / send requests.
Bug-AGL: SPEC-4503
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie870da3caa138394d8dd30f9d22a5552d585d63a
|
|
This patch is a major rewrite of the client_exec which fixes a couple of
issues found by upstream.
Specifically this address the following two issues:
- Do not weston_log() after fork()
- Own the session for the launched client
These two issues were integrated into this single patch.
It makes use of previously added wrappers to handle custom environment
being passed to the (shell) client being executed.
(Based on the work from https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/954
and from https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/817)
Bug-AGL: SPEC-4509
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I29d4bcacba3671f67bb915bdb55a80b556e143ac
|
|
Bump meson version requirements to a much newer version + some minor
compiler options which are handled directly by the build system.
yocto seem to use meson 0.63 so we're more than fine bumping the verison
for meson.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I69305b3b33e4919cb19ffa088b3530720f1b45c5
|
|
Changes:
- Bump libweston dependencies in meson.build.
- Handle addition of another argument to the wet_main and
weston_compositor_create functions.
Bug-AGL: SPEC-3819
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
|
|
Changes:
- Bump libweston dependencies in meson.build
- Match weston_compositor_tear_down -> weston_compositor_destroy API
change by following what was done in weston for 9.0
- Update log context code to match API changes, based on what was
done in weston for 9.0
- Update transform names to match weston
- Initialize a couple of structure fields to avoid failure from
-Werror=missing-field-initializers triggered by changes in newer
wayland.
Bug-AGL: SPEC-3819
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I48fab590eb59a1b83b0cebc3762ba730450b0e3a
|
|
meson (0.53) seem to be smart enough to resolve cross-compile
dependencies without setting explicitly the dependency type.
Setting the dependency as native results in ignoring PKG_CONFIG_PATH
and using PATH to choose and alternative pkg-config. Sourcing the
yocto/OE toolchain would result in picking the hosts pkg-config due to
modified a PATH where SDKTARGETSYSROOT is before any of the hosts paths.
Combined that with the fact that PKG_CONFIG_PATH is reset when the
dependency is se to native (why that hapens is something to further
investigate) results in not finding wayland-scanner.
Tested with both yocto/OE toolchains and native (local) builds to make
sure we can still build it and seems we're fine.
Bug-AGL: SPEC-4169
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I5c4b12eff044aeb0c3ab4c18e943da4e15d6c411
|
|
This bumps the compositor version to accomodate the protocol
update well.
Bug-AGL: SPEC-4133
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iea01e3e36ef9ebf1f90e3fb07bd9637d8d060ab2
|
|
It would be of tremendous help to know when the transmitter plugin is
really installed, to avoid assuming that the waltham library is enough.
Bug-AGL: SPEC-4087
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I8c569fae641472fe9a2454a89fcf6da4f2a33ccc
|
|
This allow to build the compositor without headless support, just in
case libweston wasn't built with it.
Bug-AGL: SPEC-4087
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie848d842ace06b21371de6f70ad18600927f8044
|
|
And with it remove libweston-X mentioning, as it applies to all
libweston versions.
Bug-AGL: SPEC-4087
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I47b37822204c3ce1397a6a5efc9e7ee6ce1e8e1b
|
|
Use prefix_path + libdir to install the run-time shared library and
avoid pulling lib with it.
This is necessary to avoid installing under PREFIX/ and use
PREFIX/agl-compositor instead. This was unfortunately missed
when doing the split in a previous commit.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I02b2162f62cbdbf3d00f54edae52aa03c7b4b046
|
|
This is follow-up to catch up with weston's way of loading the
compositor instance. This is necessary because the test itself is
capable of loading a specific compositor instance (and with, specific
arguments).
No functional changes whatsoever.
Bug-AGL: SPEC-3889, SPEC-3880
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iedb979156a73def4567927969ab9190c481ffbce
|
|
We haven't had an release for quite some time now so, do it now before
the libweston9 integration.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I8202f88565a94e10cc5dc60fe2ec30cc1e8ee478
|
|
- Added rba-policy option in meson file
- Created new rba adapter file to call rba interfaces from librba
- All the application from Homescreen will be allowed to
display through rba policy as its added in RBAModel.json
Bug-AGL: SPEC-3738
Signed-off-by: Anusha Gugale <external.agogale@jp.adit-jv.com>
Change-Id: Iffd4ac16d9abe768476d025556cbe98a31553288
|
|
For some time now, yocto/OE no longer builds all weston back-ends, which
means the X11 is no longer supported on AGL platform.
The agl-compositor can be built, assuming all dependencies have been
satisfied, without the need of having an AGL or yocto/OE environment,
but so far, I've never tried using SDK directly.
This patch should allow building the compositor, by only using the AGL
SDK, and instead of using the local pkg-config, only use what is
available in the SDK sysroot. This takes care of assuming that X11
back-end is available, when in reality, in the AGL SDK platform that is
not the case.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia2a182b9c3015f14f82043a04e83e917cd99bf6f
|
|
Provides empty implementations to avoid sprinking ifdefs everywhere. The
transmitter plug-in does not expose a pkgconfig file we instead resort
to test again waltham protocol (which is used by the transmitter) and
the the remoting plug-in.
Fixes a minor deps check in the meson file.
Bug-AGL: SPEC-3691
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id25d21d2ef0c6e55575c2e7685cda73e401db015
|
|
This is the same as the remoting plug-in, given that we'll be using the
remoting plug-in to create the remoting output.
The difference would be that instead of the 'remoting-output' section
we'll use 'transmitter-output', with all other section specific being
the same. For instance, using agl-shell-app-id we can instruct the
application to be assigned to that 'transmitter-output'.
Bug-AGL: SPEC-3611
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ic16b6b9672802f4f83be121385c0798b9dbe08e9
|
|
This allows for basic input handling, to better customize how we handle
out seat capabilities to the client. One useful outcome of this is the
fact that we re-advertise to the client that in some situations there
might not be a pointer available. That should let the client know as to
avoid creating a pointer surface.
Bug-AGL: SPEC-3591
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I4624a956264e9fa12a86da005944e9b426dde10a
|
|
The client allows to take screenshots of all outputs, a specific output
(making use of xdg_output_manager interface) or just listing outputs.
Bug-AGL: SPEC-3580
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Idd60d4892adf4c2ea493477421b6e5623e0ca1f0
|
|
Just like weston, we add a private protocol. Underneath we make use of
the weston renderer to get a hold of the pixels and transfer them to a
user-supplied buffer. This only brings up the server side implementation
of the protocol.
Bug-AGL: SPEC-3580
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I02a07ad5eb492ef2ecad74efb34d1453ebcbedc0
|
|
Note this will deny any binding to the private extensions by default,
if the compositor is not built with SMACK support.
Defines a potential lists of applications permitted to
create/display/activate surfaces/applications.
Bug-AGL: SPEC-3413
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I2dbd3b3ef0d519fde7952f97e0303ff2b151aaa0
|
|
Use the client file descriptor to find out the SMACK label of that
client. Enforces homescreen to bind to agl_shell and launcher and
alexa-viewer to bind to the agl-shell-desktop interface. Allows access
to agl_shell_desktop to tbtnavi and hvac as those contain example code
on use it for moving it to other outputs.
Bug-AGL: SPEC-3396
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I1a1abf2d2786624ffa484b6577de17f5010d5ac6
|
|
Streaming to 'remote' outputs needs the remote-plugin library.
We build it automatically if we determine that the gst dependencies are
satisfied, otherwise we're using a stub version for it.
Unfortunatelly, upstream doesn't provide necessary header for the
remoting.h so we copy-paste directly. Will follow up with upstream
to provide headers for the plugins.
Bug-AGl: SPEC-3280
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ide277b402c511ed075fa1c5aaaf7770b50359c35
|
|
Avoids the need to modify, and potentially to forget (like I did), to
modify multiple places when moving/migrating to newer libweston version.
Bug-AGL: SPEC-3352
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ibab581f3e5a6b8253fad0a53dfd870cd4143b797
|
|
Bug-AGL: SPEC-3352
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I03f38948de5676d1c73325045fa1badee01765e2
|
|
Trivial increase dependency.
Bug-AGL: SPEC-3352
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: If78393eb961eb4f5ac8d605903b8adb354463f05
|
|
Increase the version for when policy part was added. Makes tracking of
issues much easier in the future.
Bug-AGL: SPEC-3217
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I77cf5e5d44b0621745f2c3dd113ab46938fd0c1d
|
|
This is just an example on how to use the policy framework API and
allows all actions to performed by default.
Bug-AGL: SPEC-3217
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I83c9e61a2f2a89c373352232009cea4c6f6a3ad6
|
|
This patch adds the policy framework, comprised from hooks which a
policy engine can further customize, and which are checked upon surface
creation, commit and activation. Users should create specialized
versions of these callbacks when creating/desining a policy engine.
Further more, it adds the posibility to further customize the policy
engine by adding new states, events and policy rules.
By default, the policy API is aware of known states like 'start' or
'stop', but also 'show' and 'hide' as events.
A policy rule would allow to define the setup in which an event can happen
based on the state of the rule compared to that of the system, the action
event itself, the application and (optional) an timeout.
The policy rules are there to specify the state, the event, and
application, but it is ultimately handled by a hook which will be called
to handle the event. The compositor will arrange to pass all that
information back to the handler, so the policy engine is in control to
check in what circumstances the policy can be satisfied.
These policy rules allow to handle transitional states which are common
in AGL. For instance:
If one would want to display the application 'navigation' in 3
seconds after and state has been changed to 'start', it should do
add the following rule:
('navigation', STATE_START, EVENT_SHOW, timeout, main_output)
Then, when a 'STATE_START' state is propagated to the compositor the
policy API will trigger a state change signal which in turn wil arm an
timer to execute the event handler after a timeout 'timeout'.
Bug-AGL: SPEC-3217
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie03c5f9b1ddb964949e4f9797cbbe2dd2b32a6b6
|
|
With the new agl-desktop-shell protocol created let us bump the version
once more so we know when that happened.
Bug-AGL: SPEC-3252
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I88599fd2dc49e37349f0717baaca31a3f95cb849
|
|
Bug-AGL: SPEC-3252
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id7f5dedca9173ce32585fd555f1047d77508847c
|
|
Protocol intented for use by regular XDG application which want to
tell the compositor to activate another application. This mimics
the activate_app request from agl-shell, and assumes the application is
already started.
Bug-AGL: SPEC-3252
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I1f7bd1d8d2f7d8f1eedf710aef1bf1046846f9be
|
|
Bump the version of the compositor as well, as we switched to a newer
version of libweston.
Bug-AGL: SPEC-3180
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I345dbc4b992b23b784a35900ef754e39596a3082
|
|
libweston6 built and installed the x11 backend unconditionally, but this
is no longer the case with newer version of weston. Also, poky-agl
configuration specifically removes any distro features that contain x11.
Users wanting to test the compositor under a x11 backend need to
compile their own libweston version this shouldn't be a problem.
Unfortunatelly, meson does not have a easy way to determine if a header
is installed or not so after glancing over the documentation we need to
use the compilers' 'has_header' function to determine if the x11 header
was installed or not by the weston recipe.
This makes sure that if we're building out-of-tree it finds the proper
header as well.
Bug-AGL: SPEC-3180
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I3dce7c1beaf5bfab31fb88bc0462c7eb8320cfc8
|
|
If we have newer wayland-protocols version make use of it.
Bug-AGL: SPEC-3180
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Icce6771356f98599461ae09256a844fe1f1eca84
|
|
Bug-AGL: SPEC-3180
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ifa74b658307ee40d789f90882d210ea2d65c2898
|
|
This way clients can use wayland-scanner to generate their client
headers, and do not need to copy manually the extension.
Also, generate a pkgconfig file otherwise clients will have a hard time
finding the proper pkgdatadir path in order to get the agl-shell xml
file.
Bug-AGL: SPEC-3167
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id62e49b57c8864e0bdb695c03198eac782efcbeb
|
|
The cflags from libweston6 already have a libweston6 prefix path, which
is problematic when building locally as the compositor already uses
'libweston-6' as include directive.
This only applies to situations where libweston-6 is not installed in
system's path.
Bug-AGL: SPEC-3150
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib545e727b455fd872da15447e0cd54fea999d294
|
|
Even though this is a bit too much it helps catch errors/type errors
much sooner when building with yocto, as all of debug/verbose messages
are suppressed normally.
Bug-AGL: SPEC-3150
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id7c48cb0e8b48f0f7ac6e9f4636b84c789c2e5e2
|
|
Notifies systemd that agl-compositor has been started. Re-uses most of
the weston bits.
Bug-AGL: SPEC-3119
Change-Id: I1a0b41093b2ce68dd4a64475af18d27338712c3d
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
|
|
- adds a new request for agl-shell, 'activate_app', which allows to
specify which application should switch to. With it, client shell
commands which application to switch to.
- ties the layout (panel and background initizatlon) bits into its own
specific file
Bug-AGL: SPEC-3117
Change-Id: I1b3d89ff77c0e0e439666227ef3319b2107406c0
Signed-off-by: Daniel Stone <daniels@collabora.com>
|
|
Signed-off-by: Daniel Stone <daniels@collabora.com>
Change-Id: I7705fa82dab29a27e4913cd548a2f5c3247dc5ad
|