diff options
-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 | 7 |
3 files changed, 42 insertions, 0 deletions
diff --git a/recipes-wam/wam/files/wam-user-setup.sh b/recipes-wam/wam/files/wam-user-setup.sh new file mode 100755 index 000000000..515ea82ec --- /dev/null +++ b/recipes-wam/wam/files/wam-user-setup.sh @@ -0,0 +1,25 @@ +#!/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 new file mode 100644 index 000000000..f4814787d --- /dev/null +++ b/recipes-wam/wam/files/wam-user-setup@.service @@ -0,0 +1,10 @@ +[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 a09473ab0..cf2d5fad7 100644 --- a/recipes-wam/wam/wam_git.bb +++ b/recipes-wam/wam/wam_git.bb @@ -28,6 +28,8 @@ SRC_URI = "\ git://github.com/igalia/${BPN}.git;branch=@43.agl.jellyfish;protocol=https \ file://WebAppMgr@.service \ file://WebAppMgr.env \ + file://wam-user-setup.sh \ + file://wam-user-setup@.service \ file://trunc-webapp-roles.patch \ " S = "${WORKDIR}/git" @@ -43,6 +45,11 @@ do_install_append() { 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/ } FILES_${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so ${systemd_system_unitdir}" |