Automatically restart wrt_launchpad_daemon after install package
authorJihoon Chung <jihoon.chung@samsaung.com>
Thu, 3 Oct 2013 02:42:40 +0000 (11:42 +0900)
committerHoseon LEE <hoseon46.lee@samsung.com>
Mon, 14 Oct 2013 11:34:21 +0000 (20:34 +0900)
  * wrt_launchpad_daemon maintains three services:
    1. wrt_launchpad_daemon@app.service
    2. wrt_launchpad_daemon_1.socket
    3. wrt_launchpad_daemon_2.socket

[Issue#]   N/A
[Problem]  Fail to restart wrt_launchpad_daemon after install a new package,
           even though "wrt.spec" has restart command.
               - systemctl restart wrt_launchpad_daemon@app.service
[Cause]    Below preconditions are missed before restarting services.
           - "stop service" with dependency service
             (wrt_launchpad_daemon_1.socket wrt_launchpad_daemon_2.socket)
           - "daemon-reload" after installing a new service config file
           - "if" condition used wrong value.
               %post
               install ($1 == 1)
               upgrade ($1 == 2)
               uninstall (N/A) --> Only available %postun
[Solution] Fixed missed preconditions
       - "stop service" with dependency service
         (wrt_launchpad_daemon_1.socket wrt_launchpad_daemon_2.socket)
        : Add command to stop all services during running "%pre".
          Moreover, restart should do when wrt_launchpad_daemon is existed case.
          To verify condition, add condition to check "upgrade package" case.
          This change also applies to "%preun"
       - "daemon-reload" after install new service config file
        : The command for "daemon-reload" is existed in the "post". Keep current state.
          However next command is "restart service".
          As all services are stopped during running "%pre",
          it changes to "start" service only for daemon.(wrt_launchpad_daemon@app.service)
          Also add condition to run only "upgrade package" case.

[SCMRequest] Tizen RSA only

[Remarks] rpm reference http://fedoraproject.org/wiki/Packaging:ScriptletSnippets

Change-Id: I1559e6e94772e308e75cd41823998f5bec847892

Conflicts:
packaging/wrt.spec

packaging/wrt.spec

index c688dad..2edf643 100644 (file)
@@ -148,10 +148,6 @@ cp LICENSE.APLv2 %{buildroot}/usr/share/license/%{name}
 cat LICENSE.Flora >> %{buildroot}/usr/share/license/%{name}
 %make_install
 
-## wrt-launchpad-daemon #######################################################
-
-#systemd
-
 %if %{with multi_user}
 mkdir -p %{buildroot}%{_unitdir_user}/tizen-middleware.target.wants/
 install -m 0644 %SOURCE102 %{buildroot}%{_unitdir_user}/wrt_launchpad_daemon.service
@@ -164,23 +160,23 @@ ln -s %{_unitdir}/wrt_launchpad_daemon_1.socket %{buildroot}%{_unitdir}/sockets.
 ln -s %{_unitdir}/wrt_launchpad_daemon_2.socket %{buildroot}%{_unitdir}/sockets.target.wants/wrt_launchpad_daemon_2.socket
 %endif
 
-%preun
-if [ $1 == 0 ]; then
+%pre
+if [ $1 -eq 2 ] ; then
 %if %{with multi_user}
-       systemctl --user stop wrt_launchpad_daemon.service
+    systemctl --user stop wrt_launchpad_daemon@app.service wrt_launchpad_daemon_1.socket wrt_launchpad_daemon_2.socket
 %else
-       systemctl stop wrt_launchpad_daemon@app.service
+    systemctl stop wrt_launchpad_daemon@app.service wrt_launchpad_daemon_1.socket wrt_launchpad_daemon_2.socket
 %endif
-
 fi
 
-
-
-
-###############################################################################
-
-
-
+%preun
+if [ $1 -eq 0 ] ; then
+%if %{with multi_user}
+    systemctl --user stop wrt_launchpad_daemon@app.service wrt_launchpad_daemon_1.socket wrt_launchpad_daemon_2.socket
+%else
+    systemctl stop wrt_launchpad_daemon@app.service wrt_launchpad_daemon_1.socket wrt_launchpad_daemon_2.socket
+%endif
+fi
 
 %clean
 rm -rf %{buildroot}
@@ -189,28 +185,18 @@ rm -rf %{buildroot}
 /sbin/ldconfig
 chmod +s /usr/bin/wrt-launcher
 
-## wrt-launchpad-daemon #######################################################
-#systemd
 /sbin/ldconfig
 systemctl daemon-reload
-if [ $1 == 1 ]; then
+if [ $1 -eq 2 ] ; then
 %if %{with multi_user}
-    systemctl --user restart wrt_launchpad_daemon.service
+    systemctl --user start wrt_launchpad_daemon@app.service
 %else
-    systemctl restart wrt_launchpad_daemon@app.service
+    systemctl start wrt_launchpad_daemon@app.service
 %endif
-
-
 fi
-###############################################################################
-
-echo "[WRT] wrt postinst done ..."
 
-## wrt-launchpad-daemon #######################################################
-#systemd
 %postun -p /sbin/ldconfig
 systemctl daemon-reload
-###############################################################################
 
 %files
 %manifest %{name}.manifest