tizen: Add additional unit for "unified" user session 39/204139/1
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 19 Apr 2019 12:02:18 +0000 (14:02 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 19 Apr 2019 12:02:45 +0000 (14:02 +0200)
The unified user session is about moving user session units, managed by
systemd --user, to main systemd, where it's managed as part of newly
created user@.target.

user@.target will contain same units as previously available in user/,
with same UID and environment setup.  systemd instance is used for unit
to be able to specify UID (inherited from user@.target).

The rationale behind this work is following:

* VD requirement to remove user session support
* boot time optimization requirements, due to:

   + 'systemd --user' taking 1s its own startup that could be used for
     unit startup
   + ability to better rearrange units if these managed by one systemd
     instance

Unit installed by this commit will not be used till user login mechanism
will be changed in systemd package (via changing pam_systemd to start
user@.target, rather than user@.service).

Change-Id: Ia6dc7254b4e9088a044055c5f17bb2b3cae66237

packaging/pkgmgr-installer-signal-agent@.service [new file with mode: 0644]
packaging/pkgmgr-installer-signal-agent@.socket [new file with mode: 0644]
packaging/pkgmgr.spec

diff --git a/packaging/pkgmgr-installer-signal-agent@.service b/packaging/pkgmgr-installer-signal-agent@.service
new file mode 100644 (file)
index 0000000..fa17664
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+PartOf=userlogin@%i.target
+Description=Package Manager Installer Signal Agent on User Session
+
+[Service]
+User=%i
+Environment=DBUS_SESSION_BUS_ADDRESS=kernel:path=/sys/fs/kdbus/%i-user/bus;unix:path=/run/user/%i/bus
+Environment=XDG_RUNTIME_DIR=/run/user/%i
+SmackProcessLabel=User
+Type=oneshot
+ExecStart=/usr/bin/pkgmgr-installer-signal-agent
diff --git a/packaging/pkgmgr-installer-signal-agent@.socket b/packaging/pkgmgr-installer-signal-agent@.socket
new file mode 100644 (file)
index 0000000..7c185e3
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+PartOf=userlogin@%i.target
+DefaultDependencies=no
+After=systemd-logind.service
+[Socket]
+SocketUser=%i
+ListenStream=/run/pkgmgr/agent/%i
+DirectoryMode=0777
+ExecStartPost=/usr/bin/chmod 0777 /run/pkgmgr/agent/%i
+
+[Install]
+WantedBy=user-sockets@.target
index 33ef349..aae300e 100644 (file)
@@ -14,6 +14,8 @@ Source1006: %{name}-types-devel.manifest
 Source1007: %{name}.conf
 Source1008: %{name}-installer-signal-agent.service
 Source1009: %{name}-installer-signal-agent.socket
+Source1010: %{name}-installer-signal-agent@.service
+Source1011: %{name}-installer-signal-agent@.socket
 Requires(post): /usr/sbin/useradd
 Requires(post): capi-system-info
 
@@ -107,6 +109,11 @@ install -m 0644 %{SOURCE1008} %{buildroot}%{_unitdir_user}/pkgmgr-installer-sign
 install -m 0644 %{SOURCE1009} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.socket
 ln -sf ../pkgmgr-installer-signal-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
 
+mkdir -p %{buildroot}%{_unitdir}/user-sockets@.target.wants
+install -m 0644 %{SOURCE1010} %{buildroot}%{_unitdir}/pkgmgr-installer-signal-agent@.service
+install -m 0644 %{SOURCE1011} %{buildroot}%{_unitdir}/pkgmgr-installer-signal-agent@.socket
+ln -sf ../pkgmgr-installer-signal-agent@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/pkgmgr-installer-signal-agent@.socket
+
 mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backend
 mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backendlib
 mkdir -p %{buildroot}%{_sysconfdir}/opt/upgrade
@@ -189,6 +196,9 @@ rm -rf %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
 %{_unitdir_user}/pkgmgr-installer-signal-agent.service
 %{_unitdir_user}/pkgmgr-installer-signal-agent.socket
 %{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
+%{_unitdir}/pkgmgr-installer-signal-agent@.service
+%{_unitdir}/pkgmgr-installer-signal-agent@.socket
+%{_unitdir}/user-sockets@.target.wants/pkgmgr-installer-signal-agent@.socket
 
 %files installer-devel
 %manifest %{name}-installer-devel.manifest