summaryrefslogtreecommitdiffstats
path: root/meson.build
AgeCommit message (Collapse)AuthorFilesLines
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
2020-03-04meson.build: Increase version of the compositorMarius Vlad1-2/+2
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
2020-03-04meson.build: Build X11 backend optionallyMarius Vlad1-1/+19
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
2020-03-04meson.build: Increase wayland-protocol version dependencyMarius Vlad1-1/+1
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
2020-03-04meson.build: Upgrade build and headers to libweston7Marius Vlad1-2/+2
Bug-AGL: SPEC-3180 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ifa74b658307ee40d789f90882d210ea2d65c2898
2020-02-14meson.build: Allow to install the private extensionMarius Vlad1-0/+23
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
2020-02-10meson.build: Allow to build/install locallyMarius Vlad1-0/+13
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
2020-02-10meson.build: Enable Wextra and transform warning messages into errorsMarius Vlad1-0/+2
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
2020-01-30ivi-compositor: Add systemd notify messageMarius Vlad1-0/+14
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>
2020-01-30src/: Add basic support for app switchingScott Anderson1-0/+1
- 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>
2019-11-25Import source, backport to libweston 6.0icefish_8.99.5icefish_8.99.4icefish_8.99.3icefish_8.99.2icefish/8.99.5icefish/8.99.4icefish/8.99.3icefish/8.99.28.99.58.99.48.99.38.99.2Daniel Stone1-0/+108
Signed-off-by: Daniel Stone <daniels@collabora.com> Change-Id: I7705fa82dab29a27e4913cd548a2f5c3247dc5ad