SDK Viewer monitoring code is added.
Change-Id: Ib69828a6cd5a519fa6debfb275695b6e594cc722
pkgmgr-info
libsystemd-daemon
libtbm
+ capi-appfw-app-manager
)
IF (LIVEBOX)
)
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})
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")
-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)
[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
<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" />
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(libsmack)
BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
%if %{with wayland}
BuildRequires: pkgconfig(ecore-wayland)
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
%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/*
}
} 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);
}
#include <aul.h> /* aul_launch_app */
#include <dlog.h>
#include <bundle.h>
+#include <app_manager.h>
#include <packet.h>
#include <widget_errno.h>
#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)
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++;
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");
}