tizen: Add additional unit for "unified" user session 64/204564/1 accepted/tizen/unified/20190502.112856 submit/tizen/20190502.022402
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Tue, 23 Apr 2019 09:59:58 +0000 (11:59 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Tue, 23 Apr 2019 10:08:44 +0000 (12:08 +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: I34ec6af3e2736348747a3d702451d540354c9831

packaging/csr-framework.spec
systemd/CMakeLists.txt
systemd/csr-popup@.service.in [new file with mode: 0644]
systemd/csr-popup@.socket.in [new file with mode: 0644]

index 334333e..73ea6e4 100644 (file)
@@ -181,6 +181,7 @@ make %{?jobs:-j%jobs}
 %install_service sockets.target.wants %{service_name}-wp.socket
 %install_service sockets.target.wants %{service_name}-admin.socket
 %install_service ../user/sockets.target.wants %{service_name}-popup.socket
+%install_service ../system/user-sockets@.target.wants %{service_name}-popup@.socket
 
 mkdir -p %{buildroot}%{rw_db_dir}
 mkdir -p %{buildroot}%{ro_db_dir}
@@ -268,6 +269,9 @@ touch %{engine_rw_working_dir}/csret_wp_risky_urls
 %{popup_unitdir}/%{service_name}-popup.socket
 %{popup_unitdir}/sockets.target.wants/%{service_name}-popup.socket
 %{popup_unitdir}/%{service_name}-popup.service
+%{_unitdir}/%{service_name}-popup@.socket
+%{_unitdir}/user-sockets@.target.wants/%{service_name}-popup@.socket
+%{_unitdir}/%{service_name}-popup@.service
 %{ro_res_dir}/default-icon.png
 
 %dir %{ro_data_dir}/%{service_name}
index 01d8621..e4abaa3 100644 (file)
@@ -20,12 +20,17 @@ CONFIGURE_FILE(${SERVICE_NAME}-admin.socket.in ${SERVICE_NAME}-admin.socket @ONL
 CONFIGURE_FILE(${SERVICE_NAME}-popup.service.in ${SERVICE_NAME}-popup.service @ONLY)
 CONFIGURE_FILE(${SERVICE_NAME}-popup.socket.in ${SERVICE_NAME}-popup.socket @ONLY)
 
+CONFIGURE_FILE(${SERVICE_NAME}-popup@.service.in ${SERVICE_NAME}-popup@.service @ONLY)
+CONFIGURE_FILE(${SERVICE_NAME}-popup@.socket.in ${SERVICE_NAME}-popup@.socket @ONLY)
+
 INSTALL(
        FILES
                ${SERVICE_NAME}.service
                ${SERVICE_NAME}-cs.socket
                ${SERVICE_NAME}-wp.socket
                ${SERVICE_NAME}-admin.socket
+               ${SERVICE_NAME}-popup@.service
+               ${SERVICE_NAME}-popup@.socket
        DESTINATION ${SYSTEMD_UNIT_DIR}
 )
 
diff --git a/systemd/csr-popup@.service.in b/systemd/csr-popup@.service.in
new file mode 100644 (file)
index 0000000..899c41c
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+PartOf=userlogin@%i.target
+Description=CSR popup service for 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=simple
+EnvironmentFile=@POPUP_SERVICE_ENV_FILE_PATH@
+ExecStart=@BIN_DIR@/@SERVICE_NAME@-popup
+Sockets=@SERVICE_NAME@-popup@%i.socket
diff --git a/systemd/csr-popup@.socket.in b/systemd/csr-popup@.socket.in
new file mode 100644 (file)
index 0000000..aeba2fc
--- /dev/null
@@ -0,0 +1,16 @@
+[Unit]
+PartOf=userlogin@%i.target
+DefaultDependencies=no
+After=systemd-logind.service
+Description= Csr popup socket
+Wants=@SERVICE_NAME@-popup@%i.service
+Before=@SERVICE_NAME@-popup@%i.service
+
+[Socket]
+SocketUser=%i
+ListenStream=/tmp/.@SERVICE_NAME@-popup.socket
+Service=@SERVICE_NAME@-popup@%i.service
+SocketMode=0777
+
+[Install]
+WantedBy=user-sockets@.target