af-main: Refactor of user session management 27/13727/2
authorJosé Bollo <jose.bollo@iot.bzh>
Wed, 28 Feb 2018 19:22:25 +0000 (20:22 +0100)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 6 Apr 2018 11:54:14 +0000 (11:54 +0000)
This changes how user session are started and handled
within systemd. This evolution add a tiny program to
start and handle user sessions: afm-user-session.

This is the first step of a serie because, actually,
due to platform restrictions, the common users if started
this way will not be able to run correctly (issues with
wayland/weston and with handling of CGROUP2 with Smack LSM)

Also fixes memory leaks and improves build process.

Bug-AGL: SPEC-545
Bug-AGL: SPEC-1016

Change-Id: Icaf7c575633fc663a3df0ffee683b22cc087bb16
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
meta-agl/recipes-config/agl-login-manager/agl-login-manager_0.1.bb
meta-agl/recipes-config/agl-login-manager/files/user-config.path [deleted file]
meta-agl/recipes-config/agl-login-manager/files/user-config.service [deleted file]
meta-app-framework/recipes-core/af-main/af-main_1.0.bb
meta-app-framework/recipes-core/af-main/af-main_1.0.inc

index 22f52c4..cd6dc67 100644 (file)
@@ -5,28 +5,12 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
 
 inherit agl-graphical
 
-SRC_URI += " \
-    file://user-config.service \
-    file://user-config.path \
-"
-
 LOGIN_USER ??="1001 1002"
 
 RDEPENDS_${PN} += "af-main"
 
 do_install_append() {
 
-    install -d ${D}${systemd_user_unitdir}/default.target.wants
-    install -m 0644 ${WORKDIR}/user-config.service ${D}${systemd_user_unitdir}
-    install -m 0644 ${WORKDIR}/user-config.path ${D}${systemd_user_unitdir}
-
-    sed -e 's,@DISPLAY_XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g' \
-        -i ${D}${systemd_user_unitdir}/user-config.service
-    sed -e 's,@DISPLAY_XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g' \
-        -i ${D}${systemd_user_unitdir}/user-config.path
-
-    ln -s ../user-config.path ${D}${systemd_user_unitdir}/default.target.wants/user-config.path
-
     install -d ${D}${systemd_system_unitdir}/multi-user.target.wants/
 
     for AGL_USER in ${LOGIN_USER};do
@@ -34,4 +18,4 @@ do_install_append() {
     done
 }
 
-FILES_${PN} += "${systemd_user_unitdir} ${systemd_system_unitdir}"
+FILES_${PN} += "${systemd_system_unitdir}"
diff --git a/meta-agl/recipes-config/agl-login-manager/files/user-config.path b/meta-agl/recipes-config/agl-login-manager/files/user-config.path
deleted file mode 100644 (file)
index 07f61f6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=AGL user config unit path
-
-[Path]
-PathExists=@DISPLAY_XDG_RUNTIME_DIR@/wayland-0
-
-[Install]
-WantedBy=default.target
diff --git a/meta-agl/recipes-config/agl-login-manager/files/user-config.service b/meta-agl/recipes-config/agl-login-manager/files/user-config.service
deleted file mode 100644 (file)
index a66ba53..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=AGL user config
-
-[Service]
-ExecStart=/bin/ln -sf @DISPLAY_XDG_RUNTIME_DIR@/wayland-0 %t/
-RemainAfterExit=yes
-
-[Install]
-WantedBy=default.target
index e160486..68c8786 100644 (file)
@@ -66,9 +66,11 @@ do_install_append_class-target() {
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
         install -d -m 0755 ${D}${systemd_user_unitdir}/default.target.wants
         ln -s ../afm-user-daemon.service ${D}${systemd_user_unitdir}/default.target.wants/afm-user-daemon.service
-        install -d -m 0755 ${D}${systemd_system_unitdir}/default.target.wants
+        ln -s ../afm-user-session.service ${D}${systemd_user_unitdir}/default.target.wants/afm-user-session.service
+        install -d -m 0755 ${D}${systemd_system_unitdir}/multi-user.target.wants
         install -d -m 0755 ${D}${systemd_system_unitdir}/sockets.target.wants
-        ln -sf ../afm-system-daemon.service ${D}${systemd_system_unitdir}/default.target.wants/afm-system-daemon.service
+        ln -sf ../afm-system-setup.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-system-setup.service
+        ln -sf ../afm-system-daemon.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-system-daemon.service
         ln -sf ../afm-system-daemon.socket ${D}${systemd_system_unitdir}/sockets.target.wants/afm-system-daemon.socket
     fi
     echo "QT_WAYLAND_SHELL_INTEGRATION=ivi-shell" > ${D}${afm_confdir}/unit.env.d/qt-for-ivi-shell
index 13736ae..77963bd 100644 (file)
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/app-framework-main;protocol=https;branch=${AGL_BRANCH}"
 
-SRCREV = "1bec325ee85192eba57673750b9e4a77a1a970c8"
+SRCREV = "a752e8b3033fdeb6a52349fcc7fbd618907ab474"
 PV = "${AGL_BRANCH}+git${SRCPV}"
 
 S = "${WORKDIR}/git"