Sync with the tizen 2.4 95/42295/1 accepted/tizen/mobile/20150625.112849 submit/tizen_mobile/20150625.094438
authorSung-jae Park <nicesj.park@samsung.com>
Thu, 25 Jun 2015 09:41:17 +0000 (18:41 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Thu, 25 Jun 2015 09:41:17 +0000 (18:41 +0900)
SDK Viewer monitoring code is added.

Change-Id: Ib69828a6cd5a519fa6debfb275695b6e594cc722

CMakeLists.txt
data/CMakeLists.txt
data/data-provider-master.service
packaging/data-provider-master.manifest
packaging/data-provider-master.spec
src/server.c
src/slave_life.c

index fe7614c..07043d3 100644 (file)
@@ -23,6 +23,7 @@ pkg_check_modules(pkg REQUIRED
        pkgmgr-info
        libsystemd-daemon
        libtbm
+       capi-appfw-app-manager
 )
 
 IF (LIVEBOX)
@@ -165,6 +166,11 @@ IF (X11_SUPPORT)
        )
 ENDIF (X11_SUPPORT)
 
+STRING(REPLACE "-L-l" "-l" pkg_fixed_LDFLAGS ${pkg_LDFLAGS})
+STRING(REPLACE "-l" " -l" pkg_LDFLAGS ${pkg_fixed_LDFLAGS})
+STRING(REPLACE "-L" " -L" pkg_fixed_LDFLAGS ${pkg_LDFLAGS})
+STRING(REGEX REPLACE "^ " "" pkg_LDFLAGS ${pkg_fixed_LDFLAGS})
+
 #ADD_DEFINITIONS("-D_APPLY_SCRIPT_ASYNC_UPDATE")
 #ADD_DEFINITIONS("-DFLOG")
 ADD_DEFINITIONS(${pkg_CFLAGS})
@@ -174,9 +180,6 @@ ADD_DEFINITIONS(${pkg_extra_LDFLAGS})
 ADD_DEFINITIONS(${pkg_widget_CFLAGS})
 ADD_DEFINITIONS(${pkg_widget_LDFLAGS})
 
-STRING(REPLACE "-L-l" "-l" pkg_fixed_LDFLAGS ${pkg_LDFLAGS})
-STRING(REPLACE "-l" " -l" pkg_LDFLAGS ${pkg_fixed_LDFLAGS})
-
 ADD_EXECUTABLE(${PROJECT_NAME} ${BUILD_SOURCE})
 
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkg_LDFLAGS} ${pkg_extra_LDFLAGS} ${pkg_widget_LDFLAGS} "-ldl -lrt -pie")
index 5925052..8950819 100644 (file)
@@ -1,5 +1,5 @@
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.service DESTINATION ${LIB_INSTALL_DIR}/systemd/system/ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.path DESTINATION ${LIB_INSTALL_DIR}/systemd/system/ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.service DESTINATION /usr/lib/systemd/system/ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.path DESTINATION /usr/lib/systemd/system/ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
 
 IF (LIVEBOX)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/dump_widget.sh DESTINATION /opt/etc/dump.d/module.d/ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
index 45e6589..4c710c7 100644 (file)
@@ -21,6 +21,10 @@ After=xorg.target
 [Service]
 User=system
 Group=system
+Environment=ECORE_EVAS_ENGINE=wayland_egl
+Environment=ECORE_IMF_INPUT_PANEL_ENABLED=1
+Environment=ECORE_IMF_MODULE=isf
+Environment=XDG_RUNTIME_DIR=/tmp
 Environment=BUFMGR_LOCK_TYPE="once"
 Environment=BUFMGR_MAP_CACHE="true"
 Type=notify
index 5b14a70..e5dbca7 100644 (file)
@@ -6,7 +6,6 @@
                        <label name="data-provider-master::log" />
                        <label name="data-provider-master::db" />
                        <label name="data-provider-master::data" />
-                       <label name="data-provider-master::share" />
                        <label name="data-provider-master::shortcut" />
                        <label name="data-provider-master::shortcut.shortcut" />
                        <label name="data-provider-master::shortcut.widget" />
                <filesystem path="/usr/share/data-provider-master/480x800/conf.ini" label="data-provider-master::data" />
 
                <!-- Shared data folder -->
-               <filesystem path="/opt/usr/share/live_magazine" label="data-provider-master::share" type="transmutable" />
-               <filesystem path="/opt/usr/share/live_magazine/log" label="data-provider-master::share" type="transmutable" />
-               <filesystem path="/opt/usr/share/live_magazine/reader" label="data-provider-master::share" type="transmutable" />
-               <filesystem path="/opt/usr/share/live_magazine/always" label="data-provider-master::share" type="transmutable" />
+               <filesystem path="/opt/usr/share/live_magazine" label="*" type="transmutable" />
+               <filesystem path="/opt/usr/share/live_magazine/log" label="*" type="transmutable" />
+               <filesystem path="/opt/usr/share/live_magazine/reader" label="*" type="transmutable" />
+               <filesystem path="/opt/usr/share/live_magazine/always" label="*" type="transmutable" />
 
                <!-- Database -->
                <filesystem path="/opt/dbspace/.widget.db" label="data-provider-master::db" />
index 5f50662..608e5ab 100644 (file)
@@ -18,6 +18,7 @@ BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(gio-2.0)
 BuildRequires: pkgconfig(libsmack)
 BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
 
 %if %{with wayland}
 BuildRequires: pkgconfig(ecore-wayland)
@@ -108,8 +109,9 @@ CFLAGS="${CFLAGS} -Wall -Winline -Werror" LDFLAGS="${LDFLAGS}" make %{?jobs:-j%j
 rm -rf %{buildroot}
 %make_install
 mkdir -p %{buildroot}/%{_datarootdir}/license
-mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
-ln -sf ../%{name}.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/%{name}.service
+mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants
+ln -sf ../%{name}.service %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/%{name}.service
+ln -sf ../%{name}.path %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/%{name}.path
 mkdir -p %{buildroot}/opt/usr/share/live_magazine
 mkdir -p %{buildroot}/opt/usr/share/live_magazine/log
 mkdir -p %{buildroot}/opt/usr/share/live_magazine/reader
@@ -184,9 +186,10 @@ echo "Successfully installed. Please start a daemon again manually"
 %manifest %{name}.manifest
 %defattr(-,system,system,-)
 %caps(cap_chown,cap_dac_override,cap_dac_read_search,cap_sys_admin,cap_sys_nice,cap_mac_override,cap_mac_admin+ep) %{_bindir}/%{name}
-%{_libdir}/systemd/system/multi-user.target.wants/%{name}.service
-%{_libdir}/systemd/system/%{name}.service
-%{_libdir}/systemd/system/%{name}.path
+%{_prefix}/lib/systemd/system/multi-user.target.wants/%{name}.service
+%{_prefix}/lib/systemd/system/multi-user.target.wants/%{name}.path
+%{_prefix}/lib/systemd/system/%{name}.service
+%{_prefix}/lib/systemd/system/%{name}.path
 %{_datarootdir}/license/*
 %if 0%{?tizen_build_binary_release_type_eng}
 /opt/usr/devel/usr/bin/*
index 6722a98..23f81c9 100644 (file)
@@ -6722,15 +6722,15 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa
                }
        } else {
                if (slave_pid(slave) != pid) {
-                       if (slave_pid(slave) > 0) {
-                               CRITICAL_LOG("Slave(%s) is already assigned to %d\n", slave_name(slave), slave_pid(slave));
+                       if (slave_pid(slave) > 0 && !slave_extra_bundle_data(slave)) {
+                               ErrPrint("Slave(%s) is already assigned to %d\n", slave_name(slave), slave_pid(slave));
                                if (pid > 0) {
                                        ret = aul_terminate_pid_async(pid);
-                                       CRITICAL_LOG("Terminate %d (ret: %d)\n", pid, ret);
+                                       DbgPrint("Terminate %d (ret: %d)\n", pid, ret);
                                }
                                goto out;
                        }
-                       CRITICAL_LOG("PID of slave(%s) is updated (%d -> %d)\n", slave_name(slave), slave_pid(slave), pid);
+                       DbgPrint("PID of slave(%s) is updated (%d -> %d) (launched by SDK maybe(%s))\n", slave_name(slave), slave_pid(slave), pid, slave_extra_bundle_data(slave));
                        slave_set_pid(slave, pid);
                }
 
index 202b2d1..b6ec4e7 100644 (file)
@@ -30,6 +30,7 @@
 #include <aul.h> /* aul_launch_app */
 #include <dlog.h>
 #include <bundle.h>
+#include <app_manager.h>
 
 #include <packet.h>
 #include <widget_errno.h>
@@ -57,6 +58,7 @@
 #define BUNDLE_SLAVE_SVC_OP_TYPE "__APP_SVC_OP_TYPE__"
 #define APP_CONTROL_OPERATION_MAIN "http://tizen.org/appcontrol/operation/main"
 #define LOW_PRIORITY   10
+#define SDK_SLAVE_ACTIVATE_TIME 5.0f
 
 #define aul_terminate_pid_async(a) aul_terminate_pid(a)
 
@@ -599,6 +601,25 @@ static Eina_Bool activate_timer_cb(void *data)
        return ECORE_CALLBACK_CANCEL;
 }
 
+static Eina_Bool sdk_activate_timer_cb(void *data)
+{
+       struct slave_node *slave = data;
+       bool running = false;
+       int ret;
+
+       ret = app_manager_is_running(slave_pkgname(slave), &running);
+       if (ret != APP_MANAGER_ERROR_NONE) {
+               ErrPrint("Failed to get app context: %s (%d)\n", slave_pkgname(slave), ret);
+       }
+
+       if (running == true) {
+               DbgPrint("Maybe still in debug mode: %s\n", slave_pkgname(slave));
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       return activate_timer_cb(slave);
+}
+
 static inline void invoke_slave_fault_handler(struct slave_node *slave)
 {
        slave->fault_count++;
@@ -831,7 +852,12 @@ HAPI int slave_activate(struct slave_node *slave)
                        break;
                }
 
-               slave->activate_timer = ecore_timer_add(WIDGET_CONF_SLAVE_ACTIVATE_TIME, activate_timer_cb, slave);
+               if (!slave->extra_bundle_data) {
+                       slave->activate_timer = ecore_timer_add(WIDGET_CONF_SLAVE_ACTIVATE_TIME, activate_timer_cb, slave);
+               } else {
+                       DbgPrint("SDK Viewer launches this. activate monitor timer (%lf)\n", SDK_SLAVE_ACTIVATE_TIME);
+                       slave->activate_timer = ecore_timer_add(SDK_SLAVE_ACTIVATE_TIME, sdk_activate_timer_cb, slave);
+               }
                if (!slave->activate_timer) {
                        ErrPrint("Failed to register an activate timer\n");
                }