Fix synchronisation of user setup 44/21644/1
authorJosé Bollo <jose.bollo@iot.bzh>
Thu, 6 Jun 2019 10:11:14 +0000 (12:11 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 14 Jun 2019 09:17:53 +0000 (11:17 +0200)
The user setup takes care of populating correctly the
directory /run/user/UID with needed items BEFORE
user services start.

Bug-AGL: SPEC-1015

Change-Id: I6f942d73bf241d593c960dbf3bc6a038f1746fe0
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
conf/system/CMakeLists.txt
conf/system/afm-user-setup.sh.in
conf/system/afm-user-setup@.service.in
conf/system/user-runtime-dir@.service.wants/afm-user-setup@.service [new symlink]

index a49d37f..3cabd0c 100644 (file)
@@ -50,6 +50,12 @@ if(NOT USE_SDK)
                DESTINATION
                        ${UNITDIR_SYSTEM}
        )
+       install(
+               DIRECTORY
+                       ${CMAKE_CURRENT_SOURCE_DIR}/user-runtime-dir@.service.wants
+               DESTINATION
+                       ${UNITDIR_SYSTEM}
+       )
        install(
                PROGRAMS
                        ${CMAKE_CURRENT_BINARY_DIR}/afm-user-setup.sh
index 24795ae..076676f 100644 (file)
@@ -3,18 +3,28 @@
 uid=$1
 udir=/run/user/$uid
 
-dodir() {
+dodir_star() {
        if ! test -e $1; then
                mkdir -m 700 $1
                chown $uid:$uid $1
-               chsmack -a '*' $1
        fi
+       chsmack -a '*' $1
 }
 
-dodir $udir
-dodir $udir/apis
-dodir $udir/apis/ws
-dodir $udir/apis/link
+dodir_star $udir
+dodir_star $udir/apis
+dodir_star $udir/apis/ws
+dodir_star $udir/apis/link
+
+dodir_usrshr() {
+       if ! test -e $1; then
+               mkdir -m 700 $1
+               chown $uid:$uid $1
+       fi
+       chsmack -a User::App-Shared -t $1
+}
+
+dodir_usrshr $udir/usrshr
 
 doln() {
        if ! test -e $2; then
index 86c0422..c1e4f1e 100644 (file)
@@ -1,6 +1,7 @@
 [Unit]
 Description=Initiate afm-user-setup %i
-After=user@%i.service
+After=user-runtime-dir@%i.service
+Before=user@%i.service
 [Service]
 Type=oneshot
 StartLimitInterval=0
diff --git a/conf/system/user-runtime-dir@.service.wants/afm-user-setup@.service b/conf/system/user-runtime-dir@.service.wants/afm-user-setup@.service
new file mode 120000 (symlink)
index 0000000..07fe155
--- /dev/null
@@ -0,0 +1 @@
+../afm-user-setup@.service
\ No newline at end of file