Commit 87b73f3f5d consolidated all connectcore-demo-example recipes into a
single recipe with multiple packages. Even though we choose which of these
packages to install depending on the image type, all packages (along with their
dependencies) get built regardless of which package ends up getting installed.
This means that the browsers (webkit/chromium) will get built as long as their
respective layer is in the bblayers, regardless of the image type.
For example:
* wpewebkit will get built for all platforms with webkit support,
regardless of the image (qt, flutter, core-image-base...)
* chromium-ozone-wayland will get built for the ccimx95-dvk, even for qt
and flutter images
Since we already include the main webkit and chromium packages in their
respective image's packagegroup, simply remove the dependencies from the
connectcore-demo-example recipe to avoid build overhead and unexpected errors.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Replace the standalone connectcore-demo-example-webkit recipe with
a bbappend extending the main demo recipe. This is in preparation for
adding support for chromium-based connectcore demo.
While on it, merge the .inc file into the main recipe as there is only a
consumer of that inc file. Also minor cosmetic fixes to make the recipe
more Yoct-ish.
https://onedigi.atlassian.net/browse/DEL-9838
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Out of the three patches we currently apply to v2.44.4, two are no longer
needed for v2.46.7:
* 0001-Build-fix-when-LAYER_BASED_SVG_ENGINE-is-off.patch is already
included in v2.46.X releases
* 0001-DMABufVideoSinkGStreamer-disable-sink-unconditionall.patch is no
longer needed, since the GL sink is chosen by default in v2.46.7
Only port 0001-UIProcess-WebProcessPool-always-swap-process-when-us.patch to
avoid performance issues on platforms with memory restrictions.
Keep the v2.44.4 patches in case customers want to use said version, and
clearly separate the patchsets for both versions.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The patch we applied for the ccimx8x to enable VPU usage when playing
videos under WebKit is also necessary for the ccimx8mm.
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Even though we launch said demo with WebKit's page cache disabled, WebKit still
caches most of the demo's contents for two reasons:
* The demo is browsed using a non-HTTP(S) protocol (file://)
* The demo is contained within the same domain (same-site browsing)
This can lead to unexpected behavior on platforms with small RAM size. Add
a workaround to force WebKit to create a new web process everytime we open
a page on the demo, deleting the previous process and freeing its memory.
An alternative solution would be to alter our demo to make sure a page's
resources are correctly freed when exiting said page, but this provides a
general solution that ensures memory cleanup in all cases, albeit with slightly
longer loading times.
https://onedigi.atlassian.net/browse/DEL-9498
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2.46.5 has an issue where the ConnectCore demo doesn't register mouse clicks
in its main window, making it unusable. Until we find the cause of this issue,
downgrade to the nearest available release 2.44.4, where mouse clicks are
working fine.
Backport a patch from 2.46.X to allow builds with the lbse PACKAGECONFIG
disabled and apply a custom patch to make sure the correct gstreamer sink is
used for the ccimx8x.
https://onedigi.atlassian.net/browse/DEL-9446https://onedigi.atlassian.net/browse/DEL-9498
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The default ML packagegroup provided by the x-linux-ai layer isn't very
flexible when it comes to including a subset of the packagegroups it provides:
even if you include just one of them, the others will get built anyway, pulling
in several dependencies that aren't even used for the final image's contents.
Also, a lot of the runtime dependencies are duplicated in several of the
packages in the dependency chain, making it confusing to manage dependencies
efficiently.
Create a new packagegroup specifically tailored for our ccmp25 webkit images,
using packagegroup-x-linux-ai as reference, removing any duplicated
dependencies and applying the same changes as the ones we apply in the
reference's .bbappend. At the moment, this packagegroup and the old one are
equivalent, but we can now modify ours while leaving the old one intact in case
anyone wants to use it.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
By default, we don't enable wpewebkit's qtwpe config, so the qtbase-native
dependency pulled in automatically via the qt6-cmake bbclass isn't necessary.
Make sure the dependency only gets pulled in when needed.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
At the moment, we provide four versions of the connectcore demo package:
* webkit + multimedia: we include this one in webkit images
* webkit (no multimedia): used in cases where the platform supports webkit,
but video/webgl performance isn't optimal
* regular: only contains the demo server and basic assets, we include it in
non-webkit images
* regular + multimedia: contains the regular package plus video/webgl web
content
This last version doesn't make a lot of sense because video/webgl content is
meant to showcase the target's VPU/GPU capabilities, and that can only be done
when running the demo on the target via webkit. Besides, even though we don't
include this version of the package in our default non-webkit images, the
runtime dependencies in the .inc file make bitbake generate the video-examples
and webglsamples packages during the image builds, even if they don't end up
in the final image. This is true even for platforms that don't support webkit,
such as the ccimx6ul, ccimx91 and ccimx93.
Initially, I tried making the -multimedia package exclusive to the webkit
recipe, but this causes its contents to be bundled with the base (regular)
package. To avoid this, define the -multimedia package in the .inc file, and
move its dependency with video-examples and webglsamples to the webkit recipe.
This way, the regular + multimedia version of the package still exists, but
it no longer causes bitbake to generate video/webgl packages when not needed.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Even though we're already limiting this number of threads to 16, the wpewebkit
compilation process often crashes, even on powerful development PCs with 32
logical cores and 32 GiB of RAM. Reducing the number of threads to 8 avoids
this, at the expense of a slightly longer compilation time.
https://onedigi.atlassian.net/browse/DEL-9411
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The main culprit is "accessibility", which adds a dependency with at-spi2-atk.
This service fails to launch if glib-2.0's gschemas.compiled file is missing,
which is the case in our default images. In turn, this failure causes webkit
to stall for 30 seconds before launching. Remove this PACKAGECONFIG to avoid
this issue.
While at it, remove other PACKAGECONFIGs:
* "lbse" and "service-worker" are not configurable anymore and are now
hardcoded features. Removing these PACKAGECONFIGs has no effect on the
build, but their inclusion gives the false impression that they're
configurable, so remove them. "webcrypto" is also not configurable
anymore, but its PACKAGECONFIG pulls in necessary dependencies, so leave
it enabled for now.
* "openjpeg" is not only not configurable, but it's no longer supported.
This PACKAGECONFIG pulls in an openjpeg dependency, making bitbake build
the package even though it never gets included in the final image. Remove
the config to prevent bitbake from building the openjpeg package at all.
* "speech-synthesis" pulls in a dependency with flite, a 15 MiB speech
synthesis tool. We aren't using this feature in our demos, so remove it
from our default configuration to save some space.
https://onedigi.atlassian.net/browse/DEL-9404
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The value of this variable is always the same within a platform, so it doesn't
make sense to have different variables for it in each recipe that requires it.
While at it, it seems like all currently supported platforms in DEY 5.0 use the
same value of "wayland-1", presumably because they all use similar versions of
wayland/weston. Set this as the default value for all platforms for now. As we
support more platforms, we can adjust this value if needed, but if it ends up
being the same for all platforms, we can just hardcode it.
https://onedigi.atlassian.net/browse/DEL-9404
Co-authored-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Similar to what happens in cog with the drm PACKAGECONFIG, this creates a
dependency with libgbm, a library which isn't available on these platforms.
https://onedigi.atlassian.net/browse/DEL-9011
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The display for the cc93 is 'wayland-1'.
Use backslashes before the curly braces to avoid potential expansion by
bitbake variables.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
This fix systemd error on boot:
[ 6.974370] systemd[1]: /lib/systemd/system/connectcore-demo-example.service:3: Failed to add dependency on connectcore-demo-server, ignoring: Invalid argument
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
Packages bluez5-init, cloudconnector, and connectcore-demo-example-webkit
provide a launcher script that is used regardless of the init system being
systemd or sysvinit. Those launcher scripts use the '/etc/init.d/functions'
file, which is provided by the 'initscripts-functions' runtime package,
so add that runtime dependence.
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Move 'video-examples' and 'webglsamples' recipes outside dynamic-layers/webkit
so platforms without 'webkit' support (such as ConnectCore 6UL) are able to
include and build successfully the complete 'connectcore-demo-example'
Related to 0b9b73afc8
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
Generated webkit rootfs image for the ConnectCore MP15 is too big to fit in a
dual boot system.
This commit redefines 'dey-webkit' packagegroup not to include connectcore
demo multimedia feature in ccmp1 platforms.
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
This commit separates the original 'connectcore-demo-example' package in 3
packages:
1. 'server' package. It contains the 'demoserver.py' script and its
corresponding systemd service and init script.
This script is required for the local demo and to be used with the
Bluetooth application (during the get started process)
2. 'example' package. It contains the html and required resources (images,
javascript, etc.) to use the demo locally, except for the multimedia
resources.
This package depends (in runtime) on the 'server' package.
3. 'multimedia' package. It contains the multimedia html and required
resources (images, javascript, videos, etc.) to use the multimedia demo
features locally.
This package depends (in runtime) on the 'example' package and also on
'video-examples' and 'webglsamples' packages.
This split allows to select the required demo packages per platform and image
type.
By default, the 'multimedia' package is the one included in the webkit images,
but the 'example' package is the one included in the rest of images.
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
This commit is similar to those required to launch crank applications on top of
weston in ConnectCore MP 15 platform, it must wait for the socket
'/run/user/0/wayland-1' after weston is initialized.
See commits 7de8270beda64236cdd1c46857906315a37dc4fe and
1ec5cc172c.
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
Do not build 'drm' platform for ccmp1 platforms. The code for 'drm' does not
properly build out of the box in cog version 0.14.1 and some patches are
required.
Since 'drm' platform is not being used, remove it for ccmp1 instead of fixing
the build process.
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
There is an environment option "COG_PLATFORM_WL_VIEW_FULLSCREEN" for
that purpose, so do not patch the code.
Set that variable to true if you want "cog" to be started in
fullscreen mode.
https://onedigi.atlassian.net/browse/DEL-8356
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Set the options to false, so user can enable it and see the effect and how
it loads the performance.
Just starting with those options ON leads to a loaded system and the first
impression is too bad.
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Change the condition to start after the weston service.
While on it, add a "requires" option given that weston is mandatory to have
the "cog" tool running.
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Building the wpewebkit recipe with more than 16 threads throws an unexpected
error "ninja: build stopped: subcommand failed.", so this commit limits it
to a safe value.
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
The Webkit version of the ConnectCore demo implements some new functionality:
- The COG browser is automatically started when the device boots loading the demo in the
primary display.
- A new Multimedia section is available to reproduce some demo videos and WebGL examples
in the device's browser.
Signed-off-by: David Escalona <david.escalona@digi.com>
The ConnectCore Demo will be installed by default in all the platforms, so this recipe
is no longer required.
Signed-off-by: David Escalona <david.escalona@digi.com>
The video examples and WebGL samples will be part of the new ConnectCore Demo, so move these
recipes to a more appropriate folder. While on it, remove dependencies with 'digi-webkit-examples'
recipe as it will be obsoleted.
Signed-off-by: David Escalona <david.escalona@digi.com>
Now that the "--platform" parameter is optional, we don't need to hardcode the
platform anymore, so remove the first patch.
In this version, the FDO platform has been renamed to WL, and since the default
PACKAGECONFIG is meant to work with older cog versions, we need to manually
append the "wl" PACKAGECONFIG to build the wayland platform.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This PACKAGECONFIG existed in gatesgarth, but it's included by default in
hardknott and it pulls in libgbm as a dependency. This package isn't available
for i.MX6 platforms, causing the build to fail immediately. Remove this from
the ccimx6 PACKAGECONFIG and leave it how it was on gatesgarth.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
We initially added newer versions of the recipes related to WPE Webkit in order
to incorporate performance improvements, but the hardknott branch of
meta-webkit includes even newer versions, so we can remove our recipes.
Reflect this change in our distro config file.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
By default, we only support the latest versions of the webkit packages anyway,
so use a wildcard so we don't have to update the recipes every time a new
version is available.
https://onedigi.atlassian.net/browse/DEL-7578
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Igalia has included performance improvements for i.MX platforms in the latest
versions of different packages related to webkit. Even though the recipes for
these versions are not yet available in meta-webkit, we can add our own to
meta-digi to take advantage of these improvements.
Update the cog patches so they apply cleanly over v0.9.90.
https://onedigi.atlassian.net/browse/DEL-7578
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Update version from 2.28.1 to 2.32.0, remove patch that is already included in
the source tarball and stop removing the qtwpe PACKAGECONFIG, since it's no
longer being included by default.
https://onedigi.atlassian.net/browse/DEL-7545
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Update the version from 0.7.1 to 0.8.0 and remove two patches that are already
being applied in meta-webkit.
https://onedigi.atlassian.net/browse/DEL-7545
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The 'distro_features_check' class has had its functionality expanded, as
a result the class has now been renamed to 'features_check'
https://jira.digi.com/browse/DEL-7508
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
The landing page for the WebKit examples has gone through a visual overhaul to
improve the overall user experience, so adapt its recipe accordingly. Since the
page now contains resources that are relatively large (such as images and
extensive stylesheets), remove its elements from the recipe directory and
obtain them from Digi's FTP server instead.
https://jira.digi.com/browse/DEL-7365
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The Qt WPE plugin has an implicit dependency with libgbm, which is only
available on i.MX8 platforms. Also, it pulls in several Qt dependencies,
increasing the total rootfs image size by about 50MiB. Remove said plugin to
completely separate Qt and WebKit functionality.
https://jira.digi.com/browse/DEL-7339
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>