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>
This recipe installs some videos that can be used to test the WebKit's hardware
acceleration during video decoding. Modify the landing page to be able to
access these videos.
https://jira.digi.com/browse/DEL-7314https://jira.digi.com/browse/DEL-7339
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This recipe installs the main page of the WebKit examples, from which all other
examples can be accessed. For now, only include the WebGL examples.
Since the landing page recipe needs to know which WebGL demos are being
installed and the webserver path where everything is installed, move some of
the variables used in the webglsamples recipe into an *.inc file to be able to
re-use said variables in different recipes.
Use the Digi embedded documentation CSS file for now, so the landing page looks
more on-brand.
https://jira.digi.com/browse/DEL-7314https://jira.digi.com/browse/DEL-7339
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This recipe installs a subset of the samples available at
https://webglsamples.org/ onto the target's web server, to be able to run said
examples locally without needing internet access. Make sure not to install any
source files to avoid making the package too large.
https://jira.digi.com/browse/DEL-7314https://jira.digi.com/browse/DEL-7339
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Add two patches to improve user experience, such as making the browser
fullscreen and removing the otherwise necessary --platform parameter.
Also, make www.digi.com the default URI to avoid having to explicitly pass a
URI when launching cog.
https://jira.digi.com/browse/DEL-7311https://jira.digi.com/browse/DEL-7339
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>