summaryrefslogtreecommitdiffstats
path: root/meson.build
AgeCommit message (Collapse)AuthorFilesLines
2024-04-20clients/screenshot: Add support for weston output captureMarius Vlad1-9/+9
libweston now provides a protocol which we can use for doing screenshots, not needing to provide one ourselves. This imports a simple client used in Weston but it has some changes to match our current args. Bug-AGL: SPEC-5095 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I00c9e976975447c74668fbfe1045b9177c623064
2024-04-09compositor: Add support for building XwaylandMarius Vlad1-0/+2
This updates with the Weston's front-end. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id421bdd04fc6943e991cbf51e9478450411721ef
2024-03-28compositor/build: Remove HEADLESS backendMarius Vlad1-7/+7
Headless backend was introduced to test out the compositor but never materialized. Besides removing headless loading of the backend, also do a bit of clean-up and remove vnc and pipewire strings as we currently have no such backend capability at this moment. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I87fdc0aa6c41bdcc8b1f53880860df7139ca7ae8
2024-03-11meson.build: update for weston 13Denys Dmytriyenko1-1/+1
Bug-AGL: SPEC-5061 Change-Id: If56c7121b48ab5f826534e3dc538052f4bdef1ac Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
2024-03-11meson.build, src: update for weston 12Marius Vlad1-2/+5
Update dependencies for libweston-12 in meson.build, as well as adjust sources due to libweston-desktop/libweston-desktop.h moving to libweston/desktop.h This adds support libweston 12 which includes the following changes: - use MODULEDIR, for both weston and libweston when loading - use backend, renderer when starting up and pass those up Bug-AGL: SPEC-4578 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I269e877ee3ae8cf8f1447bda05e11422244a416e
2024-03-11meson.build, src: update for weston 11Marius Vlad1-2/+2
Bump Weston library dependencies to work with Weston 11.0.0. The following changes are needed to port the compositor to the latest changes from libweston 11. Specifically we now use weston_surface_unref() instead of weston_surface_destroy(). The weston_head parameter is now needed when creating an output in weston_compositor_create_output(). We now use weston_buffer_create_solid_rgba() instead of weston_surface_set_color() to create our black curtain. A further upstream updates has been added to include some of the shell-utils wrapper but we'll get those in the next release of libweston. Finally, in order to attach heads and enable the outputs, we need to start from 1, rather than 0, and we now need lazy output placement for multiple outputs, following basically what weston is doing. Bug-AGL: SPEC-4578 Bug-AGL: SPEC-4617 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie4aa7bc09b99d85b6bda49437c5f4789012244e1
2024-03-11meson.build: Fix wayland-scanner detectionScott Murray1-1/+1
Update wayland-scanner dependency to mark it as native, as detection fails with newer meson without it. This also matches what is done in Weston's meson.build. Bug-AGL: SPEC-4578 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2024-02-23meson.build: Do another version bumpMarius Vlad1-1/+1
To include a quick fix regarding building the compositor with rdp backend support. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I2611af2b867285b5529dbcdeceed4bfd2869ec9b
2024-02-23meson.build: Bump version to 0.22.3Marius Vlad1-1/+1
We've added split type of functionality with support for loading the RDP backend, such that this warrants an version update as well. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I28e35f53bb1d9a9d3deed204596bd8ef090cb579
2024-02-23compositor: Add the ability to load rdp-backend.soMarius Vlad1-1/+9
Similar to Weston this loads the backend-rdp shared library. Bug-AGL: SPEC-5077 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ib4e1d408fbb7e1eb0a09135c85a3275d424f7015
2023-11-14meson.build: Bump version to 0.0.22Marius Vlad1-1/+1
We haven't add an official release since the beginning of the year, when we introduced the gRPC API. So do another one, as we've changed a bit the say the gRPC starts. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Idc2feace89a0cd77d1788e629fff9b5f2f443fce
2023-06-21compositor: Add XWayland basic supportMarius Vlad1-0/+7
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
2023-05-31policy-deny: Remove SMACK supportMarius Vlad1-6/+0
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
2023-05-31compositor: Remove Waltham supportMarius Vlad1-26/+0
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
2023-03-15meson.build: Add an explicit weston dependencyMarius Vlad1-0/+1
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
2023-03-15meson.build: Remove any prefix assumptionsMarius Vlad1-15/+0
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
2023-01-29meson: Deprecate waltham and inform users of thatMarius Vlad1-1/+3
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
2023-01-29meson: Bump to version 0.0.21Marius Vlad1-2/+2
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
2022-12-13grpc-proxy: Init gRPCsandbox/mvlad/grpc-async-cbMarius Vlad1-0/+4
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
2022-09-23shell: Rewrite client_exec as client_launchMarius Vlad1-0/+1
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
2022-05-03meson.build: Bump up meson versionMarius Vlad1-3/+2
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
2022-03-29Weston 10.0 compatibility changesScott Murray1-2/+2
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>
2022-03-29Weston 9.0 compatibility changesScott Murray1-2/+2
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
2022-01-28meson.build: Don't set the dependency type for wayland-scannermarlin_12.92.0marlin/12.92.012.92.0Marius Vlad1-1/+1
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
2021-12-10meson.build: Bump compositor versionMarius Vlad1-4/+3
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
2021-09-28meson.build: Add a waltham-transmitter pkg-config pc filemarlin_12.90.1marlin/12.90.112.90.1Marius Vlad1-1/+1
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
2021-09-28meson.build: Conditionally build with headless supportMarius Vlad1-0/+9
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
2021-09-28meson.build: Clarify out-of-tree build errorMarius Vlad1-5/+9
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
2021-06-24meson.build: Install run-time shared library to a specific pathMarius Vlad1-0/+3
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
2021-04-20main: Split of main() from wet_main()marlin_12.90.0marlin/12.90.0lamprey_11.92.0lamprey_11.91.0lamprey/11.92.0lamprey/11.91.012.90.011.92.011.91.0sandbox/mvlad/pre-ciMarius Vlad1-4/+20
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
2021-04-20meson.build: Do an release update before libweston9 integrationMarius Vlad1-2/+2
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
2021-01-12Added rba policy implementationkoi_10.92.0koi/10.92.010.92.0Anusha Gugale1-1/+7
- 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
2021-01-07meson.build: Fix building with cross SDKMarius Vlad1-2/+7
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
2020-11-19build/: Allow to build the compositor w/o walthamMarius Vlad1-2/+3
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
2020-11-05main: Add support loading waltham transmitter plug-inMarius Vlad1-1/+24
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
2020-09-30input: Add basic seat handlingMarius Vlad1-0/+1
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
2020-09-30client/screenshooter: Client for taking screenshotsMarius Vlad1-0/+4
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
2020-09-30screenshooter: Add agl-screenshooter protocolMarius Vlad1-0/+5
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
2020-06-26policy: Add a deny-all policy as an exampleMarius Vlad1-1/+10
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
2020-06-26policy-default: Use libsmack to check client labelMarius Vlad1-0/+6
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
2020-06-15main: Add the ability to load the remote pluginMarius Vlad1-0/+21
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
2020-05-12meson.build: Add a meson variable to track libweston versionMarius Vlad1-3/+4
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
2020-05-04meson.build: Increase agl-compositor version for libweston8 upgradeMarius Vlad1-2/+2
Bug-AGL: SPEC-3352 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I03f38948de5676d1c73325045fa1badee01765e2
2020-05-04meson.build: Increase to libweston8 dependencyMarius Vlad1-2/+2
Trivial increase dependency. Bug-AGL: SPEC-3352 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: If78393eb961eb4f5ac8d605903b8adb354463f05
2020-03-11meson.build: Increase the build version of agl-compositorMarius Vlad1-2/+2
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
2020-03-11policy-default: Install a default policy engineMarius Vlad1-0/+1
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
2020-03-11policy: Init policy framework APIMarius Vlad1-0/+1
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
2020-03-06meson.build: Do another agl-compositor version bumpMarius Vlad1-2/+2
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
2020-03-06meson.build: Install agl-shell-desktop extensionMarius Vlad1-1/+2
Bug-AGL: SPEC-3252 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id7f5dedca9173ce32585fd555f1047d77508847c
2020-03-06protocol: Add agl-shell-desktop protocolMarius Vlad1-0/+3
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