summaryrefslogtreecommitdiffstats
path: root/recipes-wam/wam
diff options
context:
space:
mode:
authorJose Dapena Paz <jdapena@igalia.com>2022-01-21 19:18:44 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2022-02-01 21:51:01 +0000
commitc0c3c0f73d420aa91f884b62b12442bc876c889d (patch)
tree6ee21e52abd7ddbb61a99b8ac5039470cfd1738d /recipes-wam/wam
parentffc37508aa41fadf11dfabd34f7a8d4aa16e06b7 (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.patch56
-rwxr-xr-xrecipes-wam/wam/files/wam-user-setup.sh25
-rw-r--r--recipes-wam/wam/files/wam-user-setup@.service10
-rw-r--r--recipes-wam/wam/wam_git.bb26
5 files changed, 14 insertions, 121 deletions
diff --git a/recipes-wam/wam/files/WebAppMgr@.service b/recipes-wam/wam/files/WebAppMgr.service
index beffd114..5cb536d9 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 829abe07..00000000
--- 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 515ea82e..00000000
--- 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 f4814787..00000000
--- 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 a7bfde7e..18ace85e 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"