From c0c3c0f73d420aa91f884b62b12442bc876c889d Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Fri, 21 Jan 2022 19:18:44 +0100 Subject: chromium*, wam: fix systemd launching from systemd Instead of providing a SMACK aware system service for WAM per session instance, provide a systemd user service depending on the new services in Marlin. Update the chromium84 and wam heads to include the required changes. We also remove the patches applied from recipe, so they belong to the chromium tree now. chromium84: 3d6fd5dd0b..4a320225eb 4a320225eb [op][agl][wayland] Take into account wayland output transform 13d93f6dae [op][agl][wayland] Do not bind agl_shell by default. ca47b4fd0a [skia][build] fix skia no_sanitize build issues for gcc 3b7541e3cf GCC: supress invalid-offsetof warning 6cd04072fb Add a delay to agl ready event wam: 935be6b..8607609 8607609 [op][agl][wayland] UiSize should be system resolution. fcfeb67 [op][agl] Allow to run web applications in new application framework. Bug-AGL: SPEC-4223 Change-Id: Ie0bc3dd6878920a0ba1bfac4f32814a23e4d41e7 Signed-off-by: Jose Dapena Paz --- recipes-wam/wam/files/WebAppMgr.service | 29 +++++++++++++ recipes-wam/wam/files/WebAppMgr@.service | 37 ----------------- recipes-wam/wam/files/trunc-webapp-roles.patch | 56 -------------------------- recipes-wam/wam/files/wam-user-setup.sh | 25 ------------ recipes-wam/wam/files/wam-user-setup@.service | 10 ----- recipes-wam/wam/wam_git.bb | 26 +++++------- 6 files changed, 38 insertions(+), 145 deletions(-) create mode 100644 recipes-wam/wam/files/WebAppMgr.service delete mode 100644 recipes-wam/wam/files/WebAppMgr@.service delete mode 100644 recipes-wam/wam/files/trunc-webapp-roles.patch delete mode 100755 recipes-wam/wam/files/wam-user-setup.sh delete mode 100644 recipes-wam/wam/files/wam-user-setup@.service (limited to 'recipes-wam/wam') diff --git a/recipes-wam/wam/files/WebAppMgr.service b/recipes-wam/wam/files/WebAppMgr.service new file mode 100644 index 000000000..5cb536d9a --- /dev/null +++ b/recipes-wam/wam/files/WebAppMgr.service @@ -0,0 +1,29 @@ +# @@@LICENSE +# +# Copyright (c) 2017-2018 LG Electronics, Inc. +# +# Confidential computer software. Valid license from LG required for +# possession, use or copying. Consistent with FAR 12.211 and 12.212, +# Commercial Computer Software, Computer Software Documentation, and +# Technical Data for Commercial Items are licensed to the U.S. Government +# under vendor's standard commercial license. +# +# LICENSE@@@ + +[Unit] +Description="WebAppMgr is responsible for running web apps and manage their lifecycle" +After=homescreen.service launcher.service agl-compositor.service +Requires=agl-compositor.service +Before=agl-session.target + +[Service] +Type=simple +UMask=0077 +OOMScoreAdjust=-1000 +EnvironmentFile=-/etc/default/WebAppMgr.env +ExecStart=/usr/bin/WebAppMgr --enable-features=UseOzonePlatform --ozone-platform=wayland --no-sandbox --use-viz-fmp-with-timeout=0 --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%u/wamdata" --webos-wam +Restart=on-failure +RestartSec=50 + +[Install] +WantedBy=agl-session.target diff --git a/recipes-wam/wam/files/WebAppMgr@.service b/recipes-wam/wam/files/WebAppMgr@.service deleted file mode 100644 index beffd114c..000000000 --- a/recipes-wam/wam/files/WebAppMgr@.service +++ /dev/null @@ -1,37 +0,0 @@ -# @@@LICENSE -# -# Copyright (c) 2017-2018 LG Electronics, Inc. -# -# Confidential computer software. Valid license from LG required for -# possession, use or copying. Consistent with FAR 12.211 and 12.212, -# Commercial Computer Software, Computer Software Documentation, and -# Technical Data for Commercial Items are licensed to the U.S. Government -# under vendor's standard commercial license. -# -# LICENSE@@@ - -[Unit] -Description="WebAppMgr is responsible for running web apps and manage their lifecycle" -After=afm-service-homescreen-service--0.1--main@%i.service weston@display.service -Wants=afm-service-homescreen-service--0.1--main@%i.service -BindsTo=weston@display.service - -[Service] -Type=simple -User=%i -Slice=user-%i.slice -SmackProcessLabel=System -SupplementaryGroups=audio display -UMask=0077 -CapabilityBoundingSet= -OOMScoreAdjust=-1000 -EnvironmentFile=-/etc/default/WebAppMgr.env -Environment=XDG_RUNTIME_DIR=/run/user/%i -Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus -Environment=WAM_DATA_PATH="/home/%i/wamdata" -ExecStart=/usr/bin/WebAppMgr --enable-features=UseOzonePlatform --ozone-platform=wayland --no-sandbox --use-viz-fmp-with-timeout=0 --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%i/wamdata" --webos-wam -Restart=on-failure -RestartSec=50 - -[Install] -WantedBy=default.target diff --git a/recipes-wam/wam/files/trunc-webapp-roles.patch b/recipes-wam/wam/files/trunc-webapp-roles.patch deleted file mode 100644 index 829abe07f..000000000 --- a/recipes-wam/wam/files/trunc-webapp-roles.patch +++ /dev/null @@ -1,56 +0,0 @@ -From f31e93261f34abaa3dcdc4959963f5b5a8983002 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= -Date: Thu, 25 Jun 2020 19:47:24 +0200 -Subject: [PATCH] Set webapp roles that are max 12 characters long. - -From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= - -This is a workaround for SPEC-3127. To prevent repeated roles as much -as possible, I'm using the appid as a basis instead of "Webapp-" + -host + port, which has many chances to be redundant in the first 12 -chars. - -Bug-AGL: SPEC-3127 - ---- - src/agl/WebRuntimeAGL.cpp | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) - -diff --git a/src/agl/WebRuntimeAGL.cpp b/src/agl/WebRuntimeAGL.cpp -index aed928b..efd2ee4 100644 ---- a/src/agl/WebRuntimeAGL.cpp -+++ b/src/agl/WebRuntimeAGL.cpp -@@ -274,7 +274,6 @@ int WebAppLauncherRuntime::run(int argc, const char** argv) { - - m_id = getAppId(args); - m_url = getAppUrl(args); -- m_role = "WebApp"; - - setup_signals(); - -@@ -326,15 +325,9 @@ bool WebAppLauncherRuntime::init() { - if (n != std::string::npos) { - std::string sport = authority.substr(n+1); - m_host = authority.substr(0, n); -- m_role.push_back('-'); -- m_role.append(m_host); -- m_role.push_back('-'); -- m_role.append(sport); - m_port = stringTo(sport); - } else { - m_host = authority; -- m_role.push_back('-'); -- m_role.append(m_host); - } - } - -@@ -375,6 +368,9 @@ bool WebAppLauncherRuntime::init() { - m_role = "homescreen"; - else if (m_id.rfind("webapps-homescreen", 0) == 0) - m_role = "homescreen"; -+ else { -+ m_role = m_id.substr(0,12); -+ } - - LOG_DEBUG("id=[%s], name=[%s], role=[%s], url=[%s], host=[%s], port=%d, token=[%s], width=[%s], height[%s], surface_type[%d], panel_type[%d]", - m_id.c_str(), m_name.c_str(), m_role.c_str(), m_url.c_str(), diff --git a/recipes-wam/wam/files/wam-user-setup.sh b/recipes-wam/wam/files/wam-user-setup.sh deleted file mode 100755 index 515ea82ec..000000000 --- a/recipes-wam/wam/files/wam-user-setup.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -uid="$1" -bdir=/run/user -udir="$bdir/$uid" -hdir="/home/$uid" - -dodir() { - local x smackset="$1" - shift - for x; do - test -e "$x" || mkdir -m 700 "$x" - chmod 700 "$x" - chown "$uid:$uid" "$x" - chsmack $smackset "$x" - done -} - -dodir '-t -a User::Home' "$hdir/wamdata" - -# Initialize lockfile, without this apps will be blocked by SMACK -touch "$udir/wamsocket.lock" -chmod 660 "$udir/wamsocket.lock" -chown "$uid:$uid" "$udir/wamsocket.lock" -chsmack -a User::App-Shared "$udir/wamsocket.lock" diff --git a/recipes-wam/wam/files/wam-user-setup@.service b/recipes-wam/wam/files/wam-user-setup@.service deleted file mode 100644 index f4814787d..000000000 --- a/recipes-wam/wam/files/wam-user-setup@.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Set up WAM for user %i -Requires=afm-user-setup@i.service -After=user-runtime-dir@%i.service afm-user-setup@i.service -Before=user@%i.service - -[Service] -Type=oneshot -StartLimitInterval=0 -ExecStart=-/usr/libexec/wam/wam-user-setup.sh %i diff --git a/recipes-wam/wam/wam_git.bb b/recipes-wam/wam/wam_git.bb index a7bfde7e0..18ace85ee 100644 --- a/recipes-wam/wam/wam_git.bb +++ b/recipes-wam/wam/wam_git.bb @@ -26,33 +26,25 @@ SECURITY_STACK_PROTECTOR = "" SRC_URI = "\ git://github.com/igalia/${BPN}.git;branch=marlin;protocol=https \ - file://WebAppMgr@.service \ + file://WebAppMgr.service \ file://WebAppMgr.env \ - file://wam-user-setup.sh \ - file://wam-user-setup@.service \ - file://trunc-webapp-roles.patch \ " S = "${WORKDIR}/git" -SRCREV = "916ad4cc233eaec1f1b12f21c548a31f2b090104" +SRCREV = "478bc7b00d2704d74814c4685c60d62afca50872" do_install:append() { - install -d ${D}${sysconfdir}/wam + install -v -d ${D}${sysconfdir}/wam install -v -m 644 ${S}/files/launch/security_policy.conf ${D}${sysconfdir}/wam/security_policy.conf - install -d ${D}${systemd_system_unitdir} - install -v -m 644 ${WORKDIR}/WebAppMgr@.service ${D}${systemd_system_unitdir}/WebAppMgr@.service - install -d ${D}${sysconfdir}/default/ + install -v -d ${D}${systemd_user_unitdir} + install -v -m 644 ${WORKDIR}/WebAppMgr.service ${D}${systemd_user_unitdir}/WebAppMgr.service + install -v -d ${D}${sysconfdir}/default/ install -v -m 644 ${WORKDIR}/WebAppMgr.env ${D}${sysconfdir}/default/WebAppMgr.env ln -snf WebAppMgr ${D}${bindir}/web-runtime - install -d ${D}${systemd_system_unitdir}/afm-user-session@.target.wants - ln -sf ../WebAppMgr@.service ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/ - install -d ${D}${libexecdir}/wam/ - install -v -m 755 ${WORKDIR}/wam-user-setup.sh ${D}${libexecdir}/wam/wam-user-setup.sh - install -v -m 644 ${WORKDIR}/wam-user-setup@.service ${D}${systemd_system_unitdir}/wam-user-setup@.service - install -d ${D}${systemd_system_unitdir}/user-runtime-dir@.service.wants/ - ln -sf ../wam-user-setup@.service ${D}${systemd_system_unitdir}/user-runtime-dir@.service.wants/ + install -v -d ${D}${systemd_user_unitdir}/agl-session.target.wants + ln -sf ../WebAppMgr.service ${D}${systemd_user_unitdir}/agl-session.target.wants/ } -FILES:${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so ${systemd_system_unitdir}" +FILES:${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so ${systemd_user_unitdir}" CXXFLAGS:append:agl-devel = " -DAGL_DEVEL" -- cgit 1.2.3-korg