diff options
author | Jose Dapena Paz <jdapena@igalia.com> | 2022-01-21 19:18:44 +0100 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2022-02-01 21:51:01 +0000 |
commit | c0c3c0f73d420aa91f884b62b12442bc876c889d (patch) | |
tree | 6ee21e52abd7ddbb61a99b8ac5039470cfd1738d /recipes-wam/wam | |
parent | ffc37508aa41fadf11dfabd34f7a8d4aa16e06b7 (diff) |
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 <jdapena@igalia.com>
Diffstat (limited to 'recipes-wam/wam')
-rw-r--r-- | recipes-wam/wam/files/WebAppMgr.service (renamed from recipes-wam/wam/files/WebAppMgr@.service) | 18 | ||||
-rw-r--r-- | recipes-wam/wam/files/trunc-webapp-roles.patch | 56 | ||||
-rwxr-xr-x | recipes-wam/wam/files/wam-user-setup.sh | 25 | ||||
-rw-r--r-- | recipes-wam/wam/files/wam-user-setup@.service | 10 | ||||
-rw-r--r-- | recipes-wam/wam/wam_git.bb | 26 |
5 files changed, 14 insertions, 121 deletions
diff --git a/recipes-wam/wam/files/WebAppMgr@.service b/recipes-wam/wam/files/WebAppMgr.service index beffd114c..5cb536d9a 100644 --- a/recipes-wam/wam/files/WebAppMgr@.service +++ b/recipes-wam/wam/files/WebAppMgr.service @@ -12,26 +12,18 @@ [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 +After=homescreen.service launcher.service agl-compositor.service +Requires=agl-compositor.service +Before=agl-session.target [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 +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=default.target +WantedBy=agl-session.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?= <jsmoeller@linuxfoundation.org> -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?= <jaragunde@igalia.com> - -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<int>(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" |