tizen: Add additional unit for "unified" user session 61/204561/1 accepted/tizen/unified/20190503.110436 submit/tizen/20190503.060044
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Wed, 24 Apr 2019 09:47:16 +0000 (11:47 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Wed, 24 Apr 2019 09:56:13 +0000 (11:56 +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: I560196bb043913376cf1e01c46476c6da8ab4488

packaging/email-service.spec
packaging/email-service@.service [new file with mode: 0644]
packaging/email-service@.socket [new file with mode: 0644]

index 1e2039bd8f986c68342b9ad4e21337e6c6d34c75..1947f0ea66fd67a501975737a003977815ff59f3 100755 (executable)
@@ -9,6 +9,8 @@ Source1:    email-service.socket
 Source2:    email-service.manifest
 Source3:    email-service_init_db.sh
 Source4:    email-service.service
+Source5:    email-service@.socket
+Source6:    email-service@.service
 
 Requires: connman
 Requires: gmime
@@ -106,10 +108,19 @@ mkdir -p %{buildroot}%{_unitdir_user}/default.target.wants
 install -m 0644 %{SOURCE4} %{buildroot}%{_unitdir_user}/email-service.service
 ln -s ../email-service.service %{buildroot}%{_unitdir_user}/default.target.wants/email-service.service
 
+mkdir -p %{buildroot}%{_unitdir}
+mkdir -p %{buildroot}%{_unitdir}/user-default@.target.wants
+install -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/email-service@.service
+ln -s ../email-service@.service %{buildroot}%{_unitdir}/user-default@.target.wants/email-service@.service
+
 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
 install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir_user}/email-service.socket
 ln -s ../email-service.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/email-service.socket
 
+mkdir -p %{buildroot}%{_unitdir}/user-sockets@.target.wants
+install -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/email-service@.socket
+ln -s ../email-service@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/email-service@.socket
+
 install -m 0775 %{SOURCE3} %{buildroot}%{_bindir}/
 
 %post -p /sbin/ldconfig
@@ -146,6 +157,10 @@ systemctl daemon-reload
 %{_unitdir_user}/default.target.wants/email-service.service
 %{_unitdir_user}/email-service.socket
 %{_unitdir_user}/sockets.target.wants/email-service.socket
+%{_unitdir}/email-service@.service
+%{_unitdir}/user-default@.target.wants/email-service@.service
+%{_unitdir}/email-service@.socket
+%{_unitdir}/user-sockets@.target.wants/email-service@.socket
 %{_datarootdir}/dbus-1/services/email-service.service
 %license LICENSE
 %license LICENSE.BSD
diff --git a/packaging/email-service@.service b/packaging/email-service@.service
new file mode 100644 (file)
index 0000000..1bae050
--- /dev/null
@@ -0,0 +1,17 @@
+[Unit]
+PartOf=userlogin@%i.target
+Description=Start the Email service
+
+[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
+Capabilities=cap_chown+eip
+SecureBits=keep-caps
+ExecStart=/usr/bin/email-service
+Nice=5
+OOMScoreAdjust=100
+MemoryLimit=30M
+EnvironmentFile=-/run/tizen-system-env
+
diff --git a/packaging/email-service@.socket b/packaging/email-service@.socket
new file mode 100644 (file)
index 0000000..445496b
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+PartOf=userlogin@%i.target
+DefaultDependencies=no
+After=systemd-logind.service
+Description=Email Service socket
+
+[Socket]
+SocketUser=%i
+ListenStream=/run/user/%i/.emailfw_socket
+Service=email-service@%i.service
+
+[Install]
+WantedBy=user-sockets@.target