diff options
3 files changed, 64 insertions, 0 deletions
diff --git a/meta-app-framework/recipes-config/agl-session/agl-session_0.1.bb b/meta-app-framework/recipes-config/agl-session/agl-session_0.1.bb new file mode 100644 index 000000000..abde287ac --- /dev/null +++ b/meta-app-framework/recipes-config/agl-session/agl-session_0.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "AGL user session" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +SRC_URI = "\ + file://agl-session@.service \ + file://agl-session.target \ +" + +inherit systemd allarch useradd + +USERADD_PACKAGES = "${PN}" +USERADDEXTENSION = "useradd-staticids" +GROUPADD_PARAM:${PN} = "\ + -g 1001 agl-driver ; \ +" +USERADD_PARAM:${PN} = "\ + -g 1001 -u 1001 -o -d /home/agl-driver -m -K PASS_MAX_DAYS=-1 agl-driver ; \ +" + +SYSTEMD_PACKAGES = "${PN}" +# Instantiate session for the 'agl-driver' user, so we don't have to hardcode +# the user name/ID in the service file itself +SYSTEMD_SERVICE:${PN} = "agl-session@agl-driver.service" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +do_install() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/agl-session@.service ${D}${systemd_system_unitdir} + + install -d ${D}${systemd_user_unitdir} + install -m 0644 ${WORKDIR}/agl-session.target ${D}${systemd_user_unitdir} +} + +FILES:${PN} += "${systemd_system_unitdir} ${systemd_user_unitdir}" diff --git a/meta-app-framework/recipes-config/agl-session/files/agl-session.target b/meta-app-framework/recipes-config/agl-session/files/agl-session.target new file mode 100644 index 000000000..84d9daa5b --- /dev/null +++ b/meta-app-framework/recipes-config/agl-session/files/agl-session.target @@ -0,0 +1,5 @@ +[Unit] +Description=AGL user session + +BindsTo=graphical-session.target +Before=graphical-session.target diff --git a/meta-app-framework/recipes-config/agl-session/files/agl-session@.service b/meta-app-framework/recipes-config/agl-session/files/agl-session@.service new file mode 100644 index 000000000..61afa4141 --- /dev/null +++ b/meta-app-framework/recipes-config/agl-session/files/agl-session@.service @@ -0,0 +1,24 @@ +[Unit] +Description=AGL user session +After=systemd-user-sessions.service +Wants=dbus.socket +After=dbus.socket +After=session-c1.scope +Before=multi-user.target + +[Service] +Environment=XDG_SESSION_TYPE=wayland +ExecStart=/bin/systemctl --wait --user start agl-session.target +TimeoutStartSec=30 +# This is a template service, instantiate for desired user's name or uid +User=%i +PAMName=login +WorkingDirectory=~ +StandardInput=tty-fail +StandardOutput=journal +StandardError=journal +Restart=always +RestartSec=3s + +[Install] +WantedBy=multi-user.target |