Add app_rw directory creation for each user
[platform/upstream/meta-generic.git] / scripts / generic-base.post
1 #!/bin/sh
2 echo "#################### generic-base.post ####################"
3
4 # setup systemd default target for user session
5 cat <<'EOF' >>/lib/systemd/user/default.target
6 [Unit]
7 Description=User session default target
8 EOF
9 mkdir -p /lib/systemd/user/default.target.wants
10
11 # start dbus session
12 ln -s ../dbus.service /lib/systemd/user/default.target.wants/
13
14 # Run prelink to speed up dynamic binary/library loading
15 /usr/sbin/prelink --all
16
17 ln -sf /proc/self/mounts /etc/mtab
18
19 # sdx: fix smack labels on /var/log
20 chsmack -a '*' /var/log
21
22 # workaround for bug PTREL-763
23 patch -b -p1 -d/ <<'EOF'
24 --- bad/etc/pam.d/systemd-user 2014-03-20 10:01:36.657843073 +0100
25 +++ good/etc/pam.d/systemd-user 2014-03-20 10:06:51.586121696 +0100
26 @@ -4,5 +4,6 @@
27  
28  account include system-auth
29  session include system-auth
30 +session required pam_systemd.so
31  auth required pam_deny.so
32  password required pam_deny.so
33 EOF
34
35 # create appfw dirs inside homes
36 function generic_base_user_exists() {
37         user=$1
38         getent passwd | grep -q ^${user}:
39 }
40
41 function generic_base_user_home() {
42         user=$1
43         getent passwd | grep ^${user}: | cut -f6 -d':'
44 }
45
46 function generic_base_fix_user_homedir() {
47         user=$1
48         generic_base_user_exists $user || return 1
49
50         homedir=$(generic_base_user_home $user)
51         mkdir -p $homedir/app_rw
52         for appdir in desktop manifest dbspace; do
53                 mkdir -p $homedir/.applications/$appdir
54         done
55         find $homedir -type d -exec chsmack -a User {} \;
56         chown -R $user:users $homedir
57         return 0
58 }