|
Jiri Moskovcak |
00e81b |
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
|
|
Jiri Moskovcak |
00e81b |
---
|
|
Jiri Moskovcak |
00e81b |
src/cli/cli.c | 31 ++++++++++-
|
|
Jiri Moskovcak |
00e81b |
src/cli/report.cpp | 135 ++++++++++++++++++++++++++++++++++++++++-------
|
|
Jiri Moskovcak |
00e81b |
src/cli/report.h | 4 +-
|
|
Jiri Moskovcak |
00e81b |
src/plugins/Makefile.am | 4 +-
|
|
Jiri Moskovcak |
00e81b |
4 files changed, 148 insertions(+), 26 deletions(-)
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
diff --git a/src/cli/cli.c b/src/cli/cli.c
|
|
Jiri Moskovcak |
00e81b |
index 0c895a7..4e0042f 100644
|
|
Jiri Moskovcak |
00e81b |
--- a/src/cli/cli.c
|
|
Jiri Moskovcak |
00e81b |
+++ b/src/cli/cli.c
|
|
Jiri Moskovcak |
00e81b |
@@ -360,6 +360,9 @@ int main(int argc, char** argv)
|
|
Jiri Moskovcak |
00e81b |
print_usage_and_die(argv[0]);
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
+ /* Get settings */
|
|
Jiri Moskovcak |
00e81b |
+ load_event_config_data();
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
/* Do the selected operation. */
|
|
Jiri Moskovcak |
00e81b |
int exitcode = 0;
|
|
Jiri Moskovcak |
00e81b |
switch (op)
|
|
Jiri Moskovcak |
00e81b |
@@ -409,15 +412,37 @@ int main(int argc, char** argv)
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
case OPT_INFO:
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
- if (run_analyze_event(dump_dir_name) != 0)
|
|
Jiri Moskovcak |
00e81b |
- return 1;
|
|
Jiri Moskovcak |
00e81b |
-
|
|
Jiri Moskovcak |
00e81b |
/* Load crash_data from (possibly updated by analyze) dump dir */
|
|
Jiri Moskovcak |
00e81b |
struct dump_dir *dd = dd_opendir(dump_dir_name, /*flags:*/ 0);
|
|
Jiri Moskovcak |
00e81b |
if (!dd)
|
|
Jiri Moskovcak |
00e81b |
return -1;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ char *analyze_events_as_lines = list_possible_events(dd, NULL, "analyze");
|
|
Jiri Moskovcak |
00e81b |
+ dd_close(dd);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ if (analyze_events_as_lines && *analyze_events_as_lines)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ GList *list_analyze_events = str_to_glist(analyze_events_as_lines, '\n');
|
|
Jiri Moskovcak |
00e81b |
+ free(analyze_events_as_lines);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ char *event = select_event_option(list_analyze_events);
|
|
Jiri Moskovcak |
00e81b |
+ list_free_with_free(list_analyze_events);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ int analyzer_result = run_analyze_event(dump_dir_name, event);
|
|
Jiri Moskovcak |
00e81b |
+ free(event);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ if (analyzer_result != 0)
|
|
Jiri Moskovcak |
00e81b |
+ return 1;
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ /* Load crash_data from (possibly updated by analyze) dump dir */
|
|
Jiri Moskovcak |
00e81b |
+ dd = dd_opendir(dump_dir_name, /*flags:*/ 0);
|
|
Jiri Moskovcak |
00e81b |
+ if (!dd)
|
|
Jiri Moskovcak |
00e81b |
+ return -1;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
crash_data_t *crash_data = create_crash_data_from_dump_dir(dd);
|
|
Jiri Moskovcak |
00e81b |
dd_close(dd);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
add_to_crash_data_ext(crash_data, CD_DUMPDIR, dump_dir_name,
|
|
Jiri Moskovcak |
00e81b |
CD_FLAG_TXT + CD_FLAG_ISNOTEDITABLE);
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
diff --git a/src/cli/report.cpp b/src/cli/report.cpp
|
|
Jiri Moskovcak |
00e81b |
index da37bea..7181fe3 100644
|
|
Jiri Moskovcak |
00e81b |
--- a/src/cli/report.cpp
|
|
Jiri Moskovcak |
00e81b |
+++ b/src/cli/report.cpp
|
|
Jiri Moskovcak |
00e81b |
@@ -15,9 +15,9 @@
|
|
Jiri Moskovcak |
00e81b |
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
Jiri Moskovcak |
00e81b |
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
Jiri Moskovcak |
00e81b |
*/
|
|
Jiri Moskovcak |
00e81b |
-#include "report.h"
|
|
Jiri Moskovcak |
00e81b |
-#include "run-command.h"
|
|
Jiri Moskovcak |
00e81b |
#include "abrtlib.h"
|
|
Jiri Moskovcak |
00e81b |
+#include "run-command.h"
|
|
Jiri Moskovcak |
00e81b |
+#include "report.h"
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
/* Field separator for the crash report file that is edited by user. */
|
|
Jiri Moskovcak |
00e81b |
#define FIELD_SEP "%----"
|
|
Jiri Moskovcak |
00e81b |
@@ -553,7 +553,8 @@ static int run_events(const char *dump_dir_name,
|
|
Jiri Moskovcak |
00e81b |
int r = run_event_on_dir_name(run_state, dump_dir_name, event.c_str());
|
|
Jiri Moskovcak |
00e81b |
if (r == 0 && run_state->children_count == 0)
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
- l_state.last_line = xasprintf("Error: no processing is specified for event '%s'", event.c_str());
|
|
Jiri Moskovcak |
00e81b |
+ l_state.last_line = xasprintf("Error: no processing is specified for event '%s'",
|
|
Jiri Moskovcak |
00e81b |
+ event.c_str());
|
|
Jiri Moskovcak |
00e81b |
r = -1;
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
if (r == 0)
|
|
Jiri Moskovcak |
00e81b |
@@ -585,31 +586,128 @@ static char *do_log(char *log_line, void *param)
|
|
Jiri Moskovcak |
00e81b |
log("%s", log_line);
|
|
Jiri Moskovcak |
00e81b |
return log_line;
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
-int run_analyze_event(const char *dump_dir_name)
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+int run_analyze_event(const char *dump_dir_name, const char *analyzer)
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
VERB2 log("run_analyze_event('%s')", dump_dir_name);
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
struct run_event_state *run_state = new_run_event_state();
|
|
Jiri Moskovcak |
00e81b |
run_state->logging_callback = do_log;
|
|
Jiri Moskovcak |
00e81b |
- int res = run_event_on_dir_name(run_state, dump_dir_name, "analyze_LocalGDB");
|
|
Jiri Moskovcak |
00e81b |
+ int res = run_event_on_dir_name(run_state, dump_dir_name, analyzer);
|
|
Jiri Moskovcak |
00e81b |
free_run_event_state(run_state);
|
|
Jiri Moskovcak |
00e81b |
return res;
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
+/* show even description? */
|
|
Jiri Moskovcak |
00e81b |
+char *select_event_option(GList *list_options)
|
|
Jiri Moskovcak |
00e81b |
+{
|
|
Jiri Moskovcak |
00e81b |
+ if (!list_options)
|
|
Jiri Moskovcak |
00e81b |
+ return NULL;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ unsigned count = g_list_length(list_options) - 1;
|
|
Jiri Moskovcak |
00e81b |
+ if (!count)
|
|
Jiri Moskovcak |
00e81b |
+ return NULL;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ int pos = -1;
|
|
Jiri Moskovcak |
00e81b |
+ fprintf(stdout, _("Select how you would like to analyze the problem:\n"));
|
|
Jiri Moskovcak |
00e81b |
+ for (GList *li = list_options; li; li = li->next)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ char *opt = (char*)li->data;
|
|
Jiri Moskovcak |
00e81b |
+ event_config_t *config = get_event_config(opt);
|
|
Jiri Moskovcak |
00e81b |
+ if (config)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ ++pos;
|
|
Jiri Moskovcak |
00e81b |
+ printf(" %i) %s\n", pos, config->screen_name);
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ unsigned picked;
|
|
Jiri Moskovcak |
00e81b |
+ unsigned ii;
|
|
Jiri Moskovcak |
00e81b |
+ for (ii = 0; ii < 3; ++ii)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ fprintf(stdout, _("Choose option [0 - %u]: "), count);
|
|
Jiri Moskovcak |
00e81b |
+ fflush(NULL);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ char answer[16];
|
|
Jiri Moskovcak |
00e81b |
+ if (!fgets(answer, sizeof(answer), stdin))
|
|
Jiri Moskovcak |
00e81b |
+ continue;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ answer[strlen(answer) - 1] = '\0';
|
|
Jiri Moskovcak |
00e81b |
+ if (!*answer)
|
|
Jiri Moskovcak |
00e81b |
+ continue;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ picked = xatou(answer);
|
|
Jiri Moskovcak |
00e81b |
+ if (picked > count)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ fprintf(stdout, _("You have chosen number out of range"));
|
|
Jiri Moskovcak |
00e81b |
+ continue;
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ break;
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ if (ii == 3)
|
|
Jiri Moskovcak |
00e81b |
+ error_msg_and_die(_("Invalid input, program exiting..."));
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ GList *choosen = g_list_nth(list_options, picked);
|
|
Jiri Moskovcak |
00e81b |
+ return xstrdup((char*)choosen->data);
|
|
Jiri Moskovcak |
00e81b |
+}
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+GList *str_to_glist(char *str, int delim)
|
|
Jiri Moskovcak |
00e81b |
+{
|
|
Jiri Moskovcak |
00e81b |
+ GList *list = NULL;
|
|
Jiri Moskovcak |
00e81b |
+ while (*str)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ char *end = strchrnul(str, delim);
|
|
Jiri Moskovcak |
00e81b |
+ char *tmp = xstrndup(str, end - str);
|
|
Jiri Moskovcak |
00e81b |
+ if (*tmp)
|
|
Jiri Moskovcak |
00e81b |
+ list = g_list_append(list, tmp);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ str = end;
|
|
Jiri Moskovcak |
00e81b |
+ if (!*str)
|
|
Jiri Moskovcak |
00e81b |
+ break;
|
|
Jiri Moskovcak |
00e81b |
+ str++;
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ if (!list && !g_list_length(list))
|
|
Jiri Moskovcak |
00e81b |
+ return NULL;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ return list;
|
|
Jiri Moskovcak |
00e81b |
+}
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
/* Report the crash */
|
|
Jiri Moskovcak |
00e81b |
int report(const char *dump_dir_name, int flags)
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
- if (run_analyze_event(dump_dir_name) != 0)
|
|
Jiri Moskovcak |
00e81b |
- return 1;
|
|
Jiri Moskovcak |
00e81b |
-
|
|
Jiri Moskovcak |
00e81b |
/* Load crash_data from (possibly updated by analyze) dump dir */
|
|
Jiri Moskovcak |
00e81b |
struct dump_dir *dd = dd_opendir(dump_dir_name, /*flags:*/ 0);
|
|
Jiri Moskovcak |
00e81b |
if (!dd)
|
|
Jiri Moskovcak |
00e81b |
return -1;
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
+ char *analyze_events_as_lines = list_possible_events(dd, NULL, "analyze");
|
|
Jiri Moskovcak |
00e81b |
+ dd_close(dd);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ if (analyze_events_as_lines && *analyze_events_as_lines)
|
|
Jiri Moskovcak |
00e81b |
+ {
|
|
Jiri Moskovcak |
00e81b |
+ GList *list_analyze_events = str_to_glist(analyze_events_as_lines, '\n');
|
|
Jiri Moskovcak |
00e81b |
+ free(analyze_events_as_lines);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ char *event = select_event_option(list_analyze_events);
|
|
Jiri Moskovcak |
00e81b |
+ list_free_with_free(list_analyze_events);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ int analyzer_result = run_analyze_event(dump_dir_name, event);
|
|
Jiri Moskovcak |
00e81b |
+ free(event);
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ if (analyzer_result != 0)
|
|
Jiri Moskovcak |
00e81b |
+ return 1;
|
|
Jiri Moskovcak |
00e81b |
+ }
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ /* Load crash_data from (possibly updated by analyze) dump dir */
|
|
Jiri Moskovcak |
00e81b |
+ dd = dd_opendir(dump_dir_name, /*flags:*/ 0);
|
|
Jiri Moskovcak |
00e81b |
+ if (!dd)
|
|
Jiri Moskovcak |
00e81b |
+ return -1;
|
|
Jiri Moskovcak |
00e81b |
+
|
|
Jiri Moskovcak |
00e81b |
+ char *report_events_as_lines = list_possible_events(dd, NULL, "report");
|
|
Jiri Moskovcak |
00e81b |
crash_data_t *crash_data = create_crash_data_from_dump_dir(dd);
|
|
Jiri Moskovcak |
00e81b |
- char *events_as_lines = list_possible_events(dd, NULL, "");
|
|
Jiri Moskovcak |
00e81b |
dd_close(dd);
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
if (!(flags & CLI_REPORT_BATCH))
|
|
Jiri Moskovcak |
00e81b |
@@ -620,7 +718,7 @@ int report(const char *dump_dir_name, int flags)
|
|
Jiri Moskovcak |
00e81b |
if (result != 0)
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
free_crash_data(crash_data);
|
|
Jiri Moskovcak |
00e81b |
- free(events_as_lines);
|
|
Jiri Moskovcak |
00e81b |
+ free(report_events_as_lines);
|
|
Jiri Moskovcak |
00e81b |
return 1;
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
/* Save comment, backtrace */
|
|
Jiri Moskovcak |
00e81b |
@@ -639,26 +737,24 @@ int report(const char *dump_dir_name, int flags)
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
/* Get possible reporters associated with this particular crash */
|
|
Jiri Moskovcak |
00e81b |
+ /* TODO: npajkovs: remove this annoying c++ vector_string_t */
|
|
Jiri Moskovcak |
00e81b |
vector_string_t report_events;
|
|
Jiri Moskovcak |
00e81b |
- if (events_as_lines)
|
|
Jiri Moskovcak |
00e81b |
+ if (report_events_as_lines && *report_events_as_lines)
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
- char *events = events_as_lines;
|
|
Jiri Moskovcak |
00e81b |
+ char *events = report_events_as_lines;
|
|
Jiri Moskovcak |
00e81b |
while (*events)
|
|
Jiri Moskovcak |
00e81b |
{
|
|
Jiri Moskovcak |
00e81b |
char *end = strchrnul(events, '\n');
|
|
Jiri Moskovcak |
00e81b |
- if (strncmp(events, "report", 6) == 0
|
|
Jiri Moskovcak |
00e81b |
- && (events[6] == '\0' || events[6] == '_')
|
|
Jiri Moskovcak |
00e81b |
- ) {
|
|
Jiri Moskovcak |
00e81b |
- char *tmp = xstrndup(events, end - events);
|
|
Jiri Moskovcak |
00e81b |
- report_events.push_back(tmp);
|
|
Jiri Moskovcak |
00e81b |
- free(tmp);
|
|
Jiri Moskovcak |
00e81b |
- }
|
|
Jiri Moskovcak |
00e81b |
+ char *tmp = xstrndup(events, end - events);
|
|
Jiri Moskovcak |
00e81b |
+ report_events.push_back(tmp);
|
|
Jiri Moskovcak |
00e81b |
+ free(tmp);
|
|
Jiri Moskovcak |
00e81b |
events = end;
|
|
Jiri Moskovcak |
00e81b |
if (!*events)
|
|
Jiri Moskovcak |
00e81b |
break;
|
|
Jiri Moskovcak |
00e81b |
events++;
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
+ free(report_events_as_lines);
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
/* Get settings */
|
|
Jiri Moskovcak |
00e81b |
load_event_config_data();
|
|
Jiri Moskovcak |
00e81b |
@@ -723,6 +819,5 @@ int report(const char *dump_dir_name, int flags)
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
printf(_("Crash reported via %d report events (%d errors)\n"), plugins, errors);
|
|
Jiri Moskovcak |
00e81b |
free_crash_data(crash_data);
|
|
Jiri Moskovcak |
00e81b |
- free(events_as_lines);
|
|
Jiri Moskovcak |
00e81b |
return errors;
|
|
Jiri Moskovcak |
00e81b |
}
|
|
Jiri Moskovcak |
00e81b |
diff --git a/src/cli/report.h b/src/cli/report.h
|
|
Jiri Moskovcak |
00e81b |
index 58b8c25..a393784 100644
|
|
Jiri Moskovcak |
00e81b |
--- a/src/cli/report.h
|
|
Jiri Moskovcak |
00e81b |
+++ b/src/cli/report.h
|
|
Jiri Moskovcak |
00e81b |
@@ -22,7 +22,9 @@
|
|
Jiri Moskovcak |
00e81b |
extern "C" {
|
|
Jiri Moskovcak |
00e81b |
#endif
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
-int run_analyze_event(const char *dump_dir_name);
|
|
Jiri Moskovcak |
00e81b |
+int run_analyze_event(const char *dump_dir_name, const char *analyzer);
|
|
Jiri Moskovcak |
00e81b |
+char *select_event_option(GList *list_options);
|
|
Jiri Moskovcak |
00e81b |
+GList *str_to_glist(char *str, int delim);
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
/* Report the crash */
|
|
Jiri Moskovcak |
00e81b |
enum {
|
|
Jiri Moskovcak |
00e81b |
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
|
Jiri Moskovcak |
00e81b |
index 5344cdb..7468188 100644
|
|
Jiri Moskovcak |
00e81b |
--- a/src/plugins/Makefile.am
|
|
Jiri Moskovcak |
00e81b |
+++ b/src/plugins/Makefile.am
|
|
Jiri Moskovcak |
00e81b |
@@ -65,8 +65,8 @@ $(DESTDIR)/$(DEBUG_INFO_DIR):
|
|
Jiri Moskovcak |
00e81b |
$(mkdir_p) '$@'
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
install-data-hook: $(DESTDIR)/$(DEBUG_INFO_DIR)
|
|
Jiri Moskovcak |
00e81b |
- $(LN_S) analyze_RetraceServer.xml $(DESTDIR)$(eventsdir)/reanalyze_RetraceServer.xml
|
|
Jiri Moskovcak |
00e81b |
- $(LN_S) analyze_LocalGDB.xml $(DESTDIR)$(eventsdir)/reanalyze_LocalGDB.xml
|
|
Jiri Moskovcak |
00e81b |
+ $(LN_S) -f analyze_RetraceServer.xml $(DESTDIR)$(eventsdir)/reanalyze_RetraceServer.xml
|
|
Jiri Moskovcak |
00e81b |
+ $(LN_S) -f analyze_LocalGDB.xml $(DESTDIR)$(eventsdir)/reanalyze_LocalGDB.xml
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
abrt_dump_oops_SOURCES = \
|
|
Jiri Moskovcak |
00e81b |
abrt-dump-oops.c
|
|
Jiri Moskovcak |
00e81b |
--
|
|
Jiri Moskovcak |
00e81b |
1.7.1
|
|
Jiri Moskovcak |
00e81b |
|
|
Jiri Moskovcak |
00e81b |
_______________________________________________
|
|
Jiri Moskovcak |
00e81b |
Crash-catcher mailing list
|
|
Jiri Moskovcak |
00e81b |
Crash-catcher@lists.fedorahosted.org
|
|
Jiri Moskovcak |
00e81b |
https://fedorahosted.org/mailman/listinfo/crash-catcher
|