summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenta <murakami.kenta002@jp.panasonic.com>2024-10-03 11:06:31 +0900
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-10-24 08:24:43 +0000
commit58da6681f4cd53670cb10d63f37ffaae3e6346c4 (patch)
treedffa1b8fb66970e5e91fa778dce4f2282f9c63df
parent73428f0afc17a934c6d785e692557ee6fa41bdb4 (diff)
Unified HMI: Add wayland-ivi-extension support
The distributed display framework needs Wayland IVI Extension to control the layout of application. So, it is necessary to add wayland-ivi-extension until the support to gRPC in agl-compositor is completed. Additionally, add uhmi-ivi-wm to apply ivi-layer and ivi-surface layout to screen using ilm API of ivi-extension based on ULA protocol. known issue: There is an issue where touch input is not working with the wayland-ivi-extension, but this is unrelated to UHMI and occurs with the wayland-ivi-extension alone in libweston v13. Bug-AGL: SPEC-5254 Change-Id: I08c917b36904ed6e9d37369d1f6343bd2454013f Signed-off-by: Kenta <murakami.kenta002@jp.panasonic.com>
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service17
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb44
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch62
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb26
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb3
5 files changed, 152 insertions, 0 deletions
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service
new file mode 100644
index 00000000..aad36411
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=uhmi ivi window manager
+After=weston.service
+
+[Service]
+Environment="XDG_RUNTIME_DIR=/run/user/1001"
+Environment="WAYLAND_DISPLAY=wayland-0"
+EnvironmentFile=-/etc/default/uhmi-ivi-wm
+
+Type=simple
+ExecStart=/usr/bin/uhmi-ivi-wm
+KillSignal=SIGKILL
+Restart=always
+RestartSec=1s
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb
new file mode 100644
index 00000000..daa5fff4
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "Panasonic UHMI ivi-window-manager"
+DEPENDS = " weston wayland-ivi-extension jansson"
+
+RDEPENDS:${PN} = " jansson"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e789951aab02a3028d2e58b90fc933ba"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+PN="uhmi-ivi-wm"
+
+SRCREV = "ae86a2803f7a56bbc24d13756a2de78d58da854e"
+BRANCH ?= "main"
+SRC_URI = " \
+ git://github.com/unified-hmi/uhmi-ivi-wm.git;protocol=https;branch=${BRANCH} \
+"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+
+inherit systemd
+SRC_URI += " file://uhmi-ivi-wm.service"
+REQUIRED_DISTRO_FEATURES = "systemd"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "uhmi-ivi-wm.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+FILES:${PN} += " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/${SYSTEMD_SERVICE}', '', d)} \
+ "
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/*.service ${D}/${systemd_system_unitdir}
+ fi
+}
+
+
+FILES:${PN} += " /usr/bin/uhmi-ivi-wm"
+FILES:${PN} += " /usr/share/*"
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch
new file mode 100644
index 00000000..008d0f4b
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch
@@ -0,0 +1,62 @@
+From e7984b2a8a7508cdbc3f269f4e0789edcfe8b30a Mon Sep 17 00:00:00 2001
+From: James Thomas <james.thomas@codethink.co.uk>
+Date: Thu, 22 Feb 2024 12:26:58 +0000
+Subject: [PATCH] Update libweston to version 13
+
+Upstream-Status: Submitted [https://github.com/COVESA/wayland-ivi-extension/pull/185]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ CMakeLists.txt | 2 +-
+ weston-ivi-shell/src/ivi-controller.c | 10 +++++-----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d6428c2..5917875 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,7 +28,7 @@ include(GNUInstallDirs)
+ SET(IVI_EXTENSION_VERSION 2.3.2)
+ SET(ILM_API_VERSION 2.3.2)
+
+-SET(LIBWESTON_VER 12)
++SET(LIBWESTON_VER 13)
+
+ SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter" )
+ SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter" )
+diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
+index 4701aec..94ca83e 100644
+--- a/weston-ivi-shell/src/ivi-controller.c
++++ b/weston-ivi-shell/src/ivi-controller.c
+@@ -881,15 +881,15 @@ set_bkgnd_surface_prop(struct ivishell *shell)
+ wl_list_for_each(output, &compositor->output_list, link) {
+ if (!count)
+ {
+- x = output->x;
+- y = output->y;
++ x = output->pos.c.x;
++ y = output->pos.c.y;
+ count++;
+ }
+- dest_width = output->x + output->width;
++ dest_width = output->pos.c.x + output->width;
+ if (output->height > dest_height)
+ dest_height = output->height;
+ weston_log("set_bkgnd_surface_prop: o_name:%s x:%d y:%d o_width:%d o_height:%d\n",
+- output->name, output->x, output->y, output->width, output->height);
++ output->name, output->pos.c.x, output->pos.c.y, output->width, output->height);
+ }
+
+ w_surface = view->surface;
+@@ -2197,7 +2197,7 @@ launch_client_process(void *data)
+ setenv(IVI_CLIENT_ENABLE_CURSOR_ENV_NAME, option, 0x1);
+ }
+
+- shell->client = weston_client_start(shell->compositor,
++ shell->client = wet_client_start(shell->compositor,
+ shell->ivi_client_name);
+
+ shell->client_destroy_listener.notify = ivi_shell_client_destroy;
+--
+2.44.0
+
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb
new file mode 100644
index 00000000..f7b25917
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Wayland IVI Extension"
+DESCRIPTION = "GENIVI Layer Management API based on Wayland IVI Extension"
+HOMEPAGE = "https://github.com/COVESA/wayland-ivi-extension"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1f1a56bb2dadf5f2be8eb342acf4ed79"
+
+DEPENDS = "weston virtual/libgles2 pixman wayland-native"
+
+PV = "2.3.2+git${SRCPV}"
+
+SRC_URI = " \
+ git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \
+ file://0001-Update-libweston-to-version-13.patch \
+"
+SRCREV = "60d616ad3abd925956207b9b6ff981afa004e792"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE := "-DWITH_ILM_INPUT=1"
+EXTRA_OECMAKE += "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+FILES:${PN} += "${datadir}/wayland-protocols/stable/ivi-application/ivi-application.xml"
+FILES:${PN} += "${libdir}/weston/*"
+FILES:${PN}-dbg += "${libdir}/weston/.debug/*"
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb b/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb
index 527184dc..291a5bf2 100644
--- a/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb
@@ -6,4 +6,7 @@ inherit packagegroup
RDEPENDS:${PN} += " \
ucl-tools \
ula-tools \
+ uhmi-ivi-wm \
+ weston \
+ wayland-ivi-extension \
"