From: Mateusz Moscicki Date: Fri, 19 Apr 2019 12:02:18 +0000 (+0200) Subject: tizen: Add additional unit for "unified" user session X-Git-Tag: submit/tizen/20190502.044046~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c5df79346091d78b1866d047a378f35ddec6f287;p=platform%2Fcore%2Fappfw%2Fslp-pkgmgr.git tizen: Add additional unit for "unified" user session 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 --- diff --git a/packaging/pkgmgr-installer-signal-agent@.service b/packaging/pkgmgr-installer-signal-agent@.service new file mode 100644 index 0000000..fa17664 --- /dev/null +++ b/packaging/pkgmgr-installer-signal-agent@.service @@ -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 index 0000000..7c185e3 --- /dev/null +++ b/packaging/pkgmgr-installer-signal-agent@.socket @@ -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 diff --git a/packaging/pkgmgr.spec b/packaging/pkgmgr.spec index 33ef349..aae300e 100644 --- a/packaging/pkgmgr.spec +++ b/packaging/pkgmgr.spec @@ -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