Preparation of debug & release package 76/135876/3 accepted/tizen/unified/20170629.090140 submit/tizen/20170629.013438
authorKunhoon Baik <knhoon.baik@samsung.com>
Tue, 27 Jun 2017 07:07:40 +0000 (16:07 +0900)
committerKunhoon Baik <knhoon.baik@samsung.com>
Tue, 27 Jun 2017 07:21:38 +0000 (16:21 +0900)
Some vendor would like to have different crash management policy for debug and release image.
Thus, Tizen will provide crash-manager debug and release package.
This patch is the preparation for the package separation.

In case of crash-manager debug, following CFLAGS will be enabled.

export CFLAGS+=" -DTIZEN_ENGINEER_MODE"
export CFLAGS+=" -DTIZEN_ENABLE_COREDUMP"

In the future, export CFLAGS+=" -DTIZEN_DEBUG_ENABLE" may be added.

Basically, default Tizen image will include crash management policy for debug mode.

cf) .debugmode file will be used for just crash-popup control for 3.0 compatibility.

Change-Id: I892d1f0d5de65da0abb3e002fa235989f43def56

data/tizen-debug-off.service.in
data/tizen-debug-on.service.in
packaging/crash-worker.spec
src/crash-manager/99-crash-manager-debug.conf.in [new file with mode: 0644]
src/crash-manager/99-crash-manager.conf.in
src/crash-manager/CMakeLists.txt
src/crash-manager/crash-manager.c
src/log_dump/CMakeLists.txt
src/log_dump/org.tizen.system.crash.service.m4

index 6d5ee4d2cfff8b9df5a68c989ca79dfb159a5a35..c589bbb5624d8e48e28be988070eb4364ba706f5 100644 (file)
@@ -9,6 +9,7 @@ SmackProcessLabel=System
 Type=oneshot
 RemainAfterExit=yes
 ExecStart=/bin/rm -f @DEBUGMODE_PATH@
+ExecStart=/sbin/sysctl -p /usr/lib/sysctl.d/99-crash-manager.conf
 
 [Install]
 WantedBy=sysinit.target
index da91aacf8e0ef2ef8c5943a508d7f4986696b6cd..e72ca2a2325b10f51d95fe3e36ed5756ba657a7a 100644 (file)
@@ -9,6 +9,7 @@ SmackProcessLabel=System
 Type=oneshot
 RemainAfterExit=yes
 ExecStart=/bin/touch -f @DEBUGMODE_PATH@
+ExecStart=/sbin/sysctl -p /usr/lib/sysctl.d/99-crash-manager.conf
 
 [Install]
 WantedBy=sysinit.target
index a140193d81cb0a4954fb4530a6e03379efb04a72..13a0224be81160bf909f0e3ba76f368152cec02e 100644 (file)
@@ -85,7 +85,8 @@ This package contains installable tests in Bash.
 cp %{SOURCE1001} .
 
 export CFLAGS+=" -Werror"
-export CFLAGS+=" -DTIZEN_DEBUG_MODE"
+export CFLAGS+=" -DTIZEN_ENGINEER_MODE"
+export CFLAGS+=" -DTIZEN_ENABLE_COREDUMP"
 
 %ifarch %{arm} aarch64
        %define ARCH arm
diff --git a/src/crash-manager/99-crash-manager-debug.conf.in b/src/crash-manager/99-crash-manager-debug.conf.in
new file mode 100644 (file)
index 0000000..3fa5692
--- /dev/null
@@ -0,0 +1,4 @@
+# Tizen crash-manager
+kernel.core_pattern=|/usr/bin/crash-manager %p %u %g %s %t %i
+kernel.core_pipe_limit=10
+fs.suid_dumpable=1
index 3fa5692c5027dbc9f72eb42505ecfdd29ea9da54..596171789086c97d5b8dfb473a9ae7e495111b06 100644 (file)
@@ -1,4 +1,3 @@
 # Tizen crash-manager
 kernel.core_pattern=|/usr/bin/crash-manager %p %u %g %s %t %i
 kernel.core_pipe_limit=10
-fs.suid_dumpable=1
index 357fcaabe8f619e0167407089bbd011b09f0cd1b..a474f3385b4bcd5c57ff6a1882ed75c0a898cd35 100644 (file)
@@ -25,6 +25,10 @@ ENDFOREACH(flag)
 
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE")
 
+IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_ENABLE_COREDUMP")
+        OPTION(USE_COREDUMP_CONF "Use COREDUMP CONF" ON)
+ENDIF()
+
 CONFIGURE_FILE(crash-manager.h.in crash-manager.h @ONLY)
 ADD_EXECUTABLE(${PROJECT_NAME} ${CRASH_MANAGER_SRCS})
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${crash-manager_pkgs_LDFLAGS} -pie)
@@ -33,9 +37,15 @@ INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin
                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
                GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 
-CONFIGURE_FILE(99-${PROJECT_NAME}.conf.in 99-${PROJECT_NAME}.conf @ONLY)
 CONFIGURE_FILE(500.${PROJECT_NAME}-upgrade.sh.in 500.${PROJECT_NAME}-upgrade.sh @ONLY)
 
+IF(USE_COREDUMP_CONF)
+       CONFIGURE_FILE(99-${PROJECT_NAME}-debug.conf.in 99-${PROJECT_NAME}.conf @ONLY)
+ELSE()
+       CONFIGURE_FILE(99-${PROJECT_NAME}.conf.in 99-${PROJECT_NAME}.conf @ONLY)
+ENDIF(USE_COREDUMP_CONF)
+
+
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/${PROJECT_NAME}/crash-manager.conf
                DESTINATION ${TZ_SYS_ETC}
                PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
index 3602596bae70035a5ddf1ecd49018a4bc6482031..1d91d3a5d8078466b178ce4dc5413435afbc5349 100644 (file)
@@ -165,7 +165,7 @@ static void get_config(void)
        value = iniparser_getboolean(ini, key, -1);
        if (value < 0) {
                _D("Invalid value for AllowZip. Use default value [ %s ]",
-                               ALLOW_ZIP ? "true" : "false" );
+                               ALLOW_ZIP ? "true" : "false");
        } else {
                _D("AllowZip [ %s ]", value ? "true" : "false");
                allow_zip = value;
@@ -380,6 +380,7 @@ static int get_sysassert_cs(void)
 }
 #endif
 
+#ifdef TIZEN_ENABLE_COREDUMP
 static void launch_crash_popup(void)
 {
        GDBusConnection *conn;
@@ -430,6 +431,7 @@ exit:
        if (parameters)
                g_variant_unref(parameters);
 }
+#endif
 
 static int dump_system_state(void)
 {
@@ -446,24 +448,23 @@ static int dump_system_state(void)
 
        return system_command_parallel(command);
 }
-
-static void execute_crash_modules(int argc, char *argv[], int debug)
+static void execute_crash_modules(int argc, char *argv[])
 {
        int ret;
        char command[PATH_MAX];
 
+#ifdef TIZEN_ENABLE_COREDUMP
        /* Execute crash-pipe */
-       if (debug) {
-               ret = snprintf(command, sizeof(command),
-                               "%s --save-core %s",
-                               CRASH_PIPE_PATH,
-                               crash_info.core_path);
-               if (ret < 0) {
-                       _E("Failed to snprintf for crash-pipe command");
-                       return;
-               }
-               system_command(command);
+       ret = snprintf(command, sizeof(command),
+                       "%s --save-core %s",
+                       CRASH_PIPE_PATH,
+                       crash_info.core_path);
+       if (ret < 0) {
+               _E("Failed to snprintf for crash-pipe command");
+               return;
        }
+       system_command(command);
+#endif
 
 #ifdef TIZEN_FEATURE_PTRACE_CALLSTACK
 
@@ -551,7 +552,7 @@ static int scan_dump(struct file_info **dump_list, size_t *usage)
        int i, scan_num, dump_num = 0;
        int fd;
 
-       if ((fd = open(CRASH_PATH, O_DIRECTORY)) < 0 ) {
+       if ((fd = open(CRASH_PATH, O_DIRECTORY)) < 0) {
                _E("Failed to open %s", CRASH_PATH);
                return -1;
        }
@@ -781,7 +782,9 @@ int main(int argc, char *argv[])
 {
        /* Execute dump_systemstate in parallel */
        static int dump_state_pid;
+#ifdef TIZEN_ENABLE_COREDUMP
        int debug_mode = access(DEBUGMODE_PATH, F_OK) == 0;
+#endif
 
        prctl(PR_SET_DUMPABLE, 0);
 
@@ -805,7 +808,7 @@ int main(int argc, char *argv[])
        dump_state_pid = dump_system_state();
 
        /* Exec crash modules */
-       execute_crash_modules(argc, argv, debug_mode);
+       execute_crash_modules(argc, argv);
 
        /* Wait dump_system_state */
        wait_system_command(dump_state_pid);
@@ -815,10 +818,11 @@ int main(int argc, char *argv[])
                compress();
        else
                move_dump_dir();
-
-       /* launch crash-popup only if core file was saved ("debug mode")*/
+#ifdef TIZEN_ENABLE_COREDUMP
+       /* launch crash-popup only if the .debugmode file is exist*/
        if (debug_mode)
                launch_crash_popup();
+#endif
 
        return 0;
 }
index e205994d7fda616edfadb657d0fac372b31352e0..46af7ef4c77f5012f46ac38565aeb8e034e730e2 100644 (file)
@@ -24,8 +24,8 @@ ENDFOREACH(flag)
 
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE")
 
-IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_DEBUG_MODE")
-       SET(M4_DEFINES ${M4_DEFINES} -DUSE_DEBUG_MODE)
+IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_ENGINEER_MODE")
+       SET(M4_DEFINES ${M4_DEFINES} -DUSE_ENGINEER_MODE)
 ENDIF()
 
 CONFIGURE_FILE(log_dump.h.in log_dump.h @ONLY)
index 58ea6068b50bf714719944c51f4ec128dff074ef..b1d199ff8aa0c4f56c841edcfe0dde7353105235 100644 (file)
@@ -1,7 +1,7 @@
 [D-BUS Service]
 Name=org.tizen.system.crash
 Exec=/usr/bin/log_dump --dbus
-m4_ifdef(`USE_DEBUG_MODE',
+m4_ifdef(`USE_ENGINEER_MODE',
 User=root
 Group=root,
 User=system_fw