Compare commits
17 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62f98d6aac | ||
|
|
95e1e93295 | ||
|
|
3989c835a1 | ||
|
|
ff93696553 | ||
|
|
d596add397 | ||
|
|
af7973f3e9 | ||
|
|
60adb8e27a | ||
|
|
fc77ae9a35 | ||
|
|
36fd7e2734 | ||
|
|
c8398286fa | ||
|
|
57686f5cee | ||
|
|
2407785f44 | ||
|
|
30183d6308 | ||
|
|
f3e5f01db5 | ||
|
|
0e4b4cd798 | ||
|
|
60c9139c8f | ||
|
|
22fc4da4ae |
65 changed files with 96024 additions and 160498 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -38,3 +38,8 @@ abrt-1.1.13.tar.gz
|
|||
/abrt-2.2.1.tar.gz
|
||||
/abrt-2.2.2.tar.gz
|
||||
/abrt-2.3.0.tar.gz
|
||||
/abrt-2.4.0.tar.gz
|
||||
/abrt-2.5.0.tar.gz
|
||||
/abrt-2.5.1.tar.gz
|
||||
/abrt-2.6.0.tar.gz
|
||||
/abrt-2.6.1.tar.gz
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
114
0001-cli-enable-authetication-for-all-commands.patch
Normal file
114
0001-cli-enable-authetication-for-all-commands.patch
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
From 5c21d1e390603fdc56dba33cdc69672b3b75beff Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 8 Jul 2015 14:16:39 +0200
|
||||
Subject: [PATCH] cli: enable authetication for all commands
|
||||
|
||||
I forgot to test the info, rm and status commands when I was working on
|
||||
commit cb770e507f247476651b84ebbef63a5cd4c41d11 and later on I found out
|
||||
that these commands must be updated to work with the system problems.
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/list.c | 2 +-
|
||||
src/cli/rm.c | 41 ++++++++++++++++++++++++++++-------------
|
||||
src/cli/status.c | 3 ++-
|
||||
3 files changed, 31 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
||||
index 31d1835..8bfb3cc 100644
|
||||
--- a/src/cli/list.c
|
||||
+++ b/src/cli/list.c
|
||||
@@ -35,7 +35,7 @@ static problem_data_t *load_problem_data(const char *problem_id)
|
||||
char *name2 = NULL;
|
||||
|
||||
/* First, check if there is a problem with the passed id */
|
||||
- GList *problems = get_problems_over_dbus(/*don't authorize*/false);
|
||||
+ GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
||||
GList *item = g_list_find_custom(problems, problem_id, (GCompareFunc)strcmp);
|
||||
|
||||
/* (git requires at least 5 char hash prefix, we do the same) */
|
||||
diff --git a/src/cli/rm.c b/src/cli/rm.c
|
||||
index fe458ff..37d50e2 100644
|
||||
--- a/src/cli/rm.c
|
||||
+++ b/src/cli/rm.c
|
||||
@@ -19,12 +19,39 @@
|
||||
|
||||
#include "libabrt.h"
|
||||
#include "builtin-cmd.h"
|
||||
+#include "abrt-cli-core.h"
|
||||
|
||||
/* TODO npajkovs:
|
||||
* add -n, --dry-run
|
||||
* add -q, --quite
|
||||
*/
|
||||
|
||||
+static int remove_using_dbus(const char **dirs_strv)
|
||||
+{
|
||||
+ GList *dirs = NULL;
|
||||
+ while (*dirs_strv)
|
||||
+ dirs = g_list_prepend(dirs, (void *)*dirs_strv++);
|
||||
+ const int ret = delete_problem_dirs_over_dbus(dirs);
|
||||
+ g_list_free(dirs);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int remove_using_abrtd_or_fs(const char **dirs_strv)
|
||||
+{
|
||||
+ int errs = 0;
|
||||
+ while (*dirs_strv)
|
||||
+ {
|
||||
+ int status;
|
||||
+ const char *rm_dir = *dirs_strv++;
|
||||
+ status = delete_dump_dir_possibly_using_abrtd(rm_dir);
|
||||
+ if (!status)
|
||||
+ log("rm '%s'", rm_dir);
|
||||
+ else
|
||||
+ errs++;
|
||||
+ }
|
||||
+ return errs;
|
||||
+}
|
||||
+
|
||||
int cmd_remove(int argc, const char **argv)
|
||||
{
|
||||
const char *program_usage_string = _(
|
||||
@@ -42,17 +69,5 @@ int cmd_remove(int argc, const char **argv)
|
||||
if (!argv[0])
|
||||
show_usage_and_die(program_usage_string, program_options);
|
||||
|
||||
- int errs = 0;
|
||||
- while (*argv)
|
||||
- {
|
||||
- int status;
|
||||
- const char *rm_dir = *argv++;
|
||||
- status = delete_dump_dir_possibly_using_abrtd(rm_dir);
|
||||
- if (!status)
|
||||
- log("rm '%s'", rm_dir);
|
||||
- else
|
||||
- errs++;
|
||||
- }
|
||||
-
|
||||
- return errs;
|
||||
+ return (g_cli_authenticate ? remove_using_dbus : remove_using_abrtd_or_fs)(argv);
|
||||
}
|
||||
diff --git a/src/cli/status.c b/src/cli/status.c
|
||||
index a65ba05..0635289 100644
|
||||
--- a/src/cli/status.c
|
||||
+++ b/src/cli/status.c
|
||||
@@ -20,12 +20,13 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include "problem_api.h"
|
||||
+#include "abrt-cli-core.h"
|
||||
|
||||
static unsigned int count_problem_dirs(unsigned long since)
|
||||
{
|
||||
unsigned count = 0;
|
||||
|
||||
- GList *problems = get_problems_over_dbus(/*don't authorize*/false);
|
||||
+ GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
||||
for (GList *iter = problems; iter != NULL; iter = g_list_next(iter))
|
||||
{
|
||||
const char *problem_id = (const char *)iter->data;
|
||||
--
|
||||
2.4.3
|
||||
|
||||
32
0002-cli-remove-useless-code-from-print_crash.patch
Normal file
32
0002-cli-remove-useless-code-from-print_crash.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
From de12e078fc167fd1a818b101c1a21fcedf32a1a5 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 8 Jul 2015 17:03:55 +0200
|
||||
Subject: [PATCH] cli: remove useless code from print_crash()
|
||||
|
||||
Revealed by coverity.
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/list.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
||||
index 8bfb3cc..e8ec37b 100644
|
||||
--- a/src/cli/list.c
|
||||
+++ b/src/cli/list.c
|
||||
@@ -63,11 +63,10 @@ static void print_crash(problem_data_t *problem_data, int detailed, int text_siz
|
||||
char *desc;
|
||||
if (detailed)
|
||||
{
|
||||
- int show_multiline = (detailed ? MAKEDESC_SHOW_MULTILINE : 0);
|
||||
desc = make_description(problem_data,
|
||||
/*names_to_skip:*/ NULL,
|
||||
/*max_text_size:*/ text_size,
|
||||
- MAKEDESC_SHOW_FILES | show_multiline);
|
||||
+ MAKEDESC_SHOW_FILES | MAKEDESC_SHOW_MULTILINE);
|
||||
}
|
||||
else
|
||||
{
|
||||
--
|
||||
2.4.3
|
||||
|
||||
216
0003-cli-use-internal-command-impl-in-the-command-process.patch
Normal file
216
0003-cli-use-internal-command-impl-in-the-command-process.patch
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
From cd698516de709ee3d8480fd7990a8082dffddb45 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 8 Jul 2015 17:04:41 +0200
|
||||
Subject: [PATCH] cli: use internal command impl in the command process
|
||||
|
||||
It did not seem to be a good idea to add wrappers for the internal
|
||||
commands, because the wrappers would be one line functions. Now, we need
|
||||
to do more sophisticated processing (authenticate, chown), so adding the
|
||||
wrappers is the best choice to provide the same functionality in the
|
||||
command process.
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/builtin-cmd.h | 3 +++
|
||||
src/cli/list.c | 8 ++++++-
|
||||
src/cli/process.c | 16 ++++---------
|
||||
src/cli/report.c | 65 +++++++++++++++++++++++++++------------------------
|
||||
src/cli/rm.c | 7 +++++-
|
||||
5 files changed, 56 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git a/src/cli/builtin-cmd.h b/src/cli/builtin-cmd.h
|
||||
index bc80479..c6cd691 100644
|
||||
--- a/src/cli/builtin-cmd.h
|
||||
+++ b/src/cli/builtin-cmd.h
|
||||
@@ -22,8 +22,11 @@
|
||||
|
||||
extern int cmd_list(int argc, const char **argv);
|
||||
extern int cmd_remove(int argc, const char **argv);
|
||||
+extern int _cmd_remove(const char **dirs_strv);
|
||||
extern int cmd_report(int argc, const char **argv);
|
||||
+extern int _cmd_report(const char **dirs_strv, int remove);
|
||||
extern int cmd_info(int argc, const char **argv);
|
||||
+extern int _cmd_info(problem_data_t *problem_data, int detailed, int text_size);
|
||||
extern int cmd_status(int argc, const char **argv);
|
||||
extern int cmd_process(int argc, const char **argv);
|
||||
|
||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
||||
index e8ec37b..68dda47 100644
|
||||
--- a/src/cli/list.c
|
||||
+++ b/src/cli/list.c
|
||||
@@ -168,6 +168,12 @@ int cmd_list(int argc, const char **argv)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+int _cmd_info(problem_data_t *problem_data, int detailed, int text_size)
|
||||
+{
|
||||
+ print_crash(problem_data, detailed, text_size);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int cmd_info(int argc, const char **argv)
|
||||
{
|
||||
const char *program_usage_string = _(
|
||||
@@ -205,7 +211,7 @@ int cmd_info(int argc, const char **argv)
|
||||
continue;
|
||||
}
|
||||
|
||||
- print_crash(problem, opt_detailed, text_size);
|
||||
+ _cmd_info(problem, opt_detailed, text_size);
|
||||
problem_data_free(problem);
|
||||
if (*argv)
|
||||
printf("\n");
|
||||
diff --git a/src/cli/process.c b/src/cli/process.c
|
||||
index 39462f9..401ef60 100644
|
||||
--- a/src/cli/process.c
|
||||
+++ b/src/cli/process.c
|
||||
@@ -68,28 +68,22 @@ static int process_one_crash(problem_data_t *problem_data)
|
||||
if(strcmp(action, "rm") == 0 || strcmp(action, "remove") == 0 )
|
||||
{
|
||||
log(_("Deleting '%s'"), dir_name);
|
||||
- delete_dump_dir_possibly_using_abrtd(dir_name);
|
||||
+ const char *dirs_strv[] = {dir_name, NULL};
|
||||
+ _cmd_remove(dirs_strv);
|
||||
|
||||
ret_val = ACT_REMOVE;
|
||||
}
|
||||
else if (not_reportable == NULL && (strcmp(action, "e") == 0 || strcmp(action, "report") == 0))
|
||||
{
|
||||
log(_("Reporting '%s'"), dir_name);
|
||||
- report_problem_in_dir(dir_name,
|
||||
- LIBREPORT_WAIT
|
||||
- | LIBREPORT_RUN_CLI);
|
||||
+ const char *dirs_strv[] = {dir_name, NULL};
|
||||
+ _cmd_report(dirs_strv, /*do not delete*/0);
|
||||
|
||||
ret_val = ACT_REPORT;
|
||||
}
|
||||
else if (strcmp(action, "i") == 0 || strcmp(action, "info") == 0)
|
||||
{
|
||||
- char *desc = make_description(problem_data,
|
||||
- /*names_to_skip:*/ NULL,
|
||||
- /*max_text_size:*/ CD_TEXT_ATT_SIZE_BZ,
|
||||
- MAKEDESC_SHOW_FILES | MAKEDESC_SHOW_MULTILINE);
|
||||
-
|
||||
- fputs(desc, stdout);
|
||||
- free(desc);
|
||||
+ _cmd_info(problem_data, /*detailed*/1, CD_TEXT_ATT_SIZE_BZ);
|
||||
|
||||
ret_val = ACT_INFO;
|
||||
}
|
||||
diff --git a/src/cli/report.c b/src/cli/report.c
|
||||
index 194f7c9..19b4c51 100644
|
||||
--- a/src/cli/report.c
|
||||
+++ b/src/cli/report.c
|
||||
@@ -22,38 +22,12 @@
|
||||
#include "abrt-cli-core.h"
|
||||
#include "builtin-cmd.h"
|
||||
|
||||
-int cmd_report(int argc, const char **argv)
|
||||
+int _cmd_report(const char **dirs_strv, int remove)
|
||||
{
|
||||
- const char *program_usage_string = _(
|
||||
- "& report [options] DIR..."
|
||||
- );
|
||||
-
|
||||
- enum {
|
||||
- OPT_v = 1 << 0,
|
||||
- OPT_d = 1 << 1,
|
||||
- };
|
||||
-
|
||||
- struct options program_options[] = {
|
||||
- OPT__VERBOSE(&g_verbose),
|
||||
- OPT_BOOL('d', "delete", NULL, _("Remove PROBLEM_DIR after reporting")),
|
||||
- OPT_END()
|
||||
- };
|
||||
-
|
||||
- unsigned opts = parse_opts(argc, (char **)argv, program_options, program_usage_string);
|
||||
- argv += optind;
|
||||
-
|
||||
- if (!argv[0])
|
||||
- show_usage_and_die(program_usage_string, program_options);
|
||||
-
|
||||
- export_abrt_envvars(/*prog_prefix:*/ 0);
|
||||
-
|
||||
- load_abrt_conf();
|
||||
- free_abrt_conf_data();
|
||||
-
|
||||
int ret = 0;
|
||||
- while (*argv)
|
||||
+ while (*dirs_strv)
|
||||
{
|
||||
- const char *dir_name = *argv++;
|
||||
+ const char *dir_name = *dirs_strv++;
|
||||
char *const real_problem_id = hash2dirname_if_necessary(dir_name);
|
||||
if (real_problem_id == NULL)
|
||||
{
|
||||
@@ -75,7 +49,7 @@ int cmd_report(int argc, const char **argv)
|
||||
| LIBREPORT_RUN_CLI);
|
||||
|
||||
/* the problem was successfully reported and option is -d */
|
||||
- if((opts & OPT_d) && (status == 0 || status == EXIT_STOP_EVENT_RUN))
|
||||
+ if(remove && (status == 0 || status == EXIT_STOP_EVENT_RUN))
|
||||
{
|
||||
log(_("Deleting '%s'"), real_problem_id);
|
||||
delete_dump_dir_possibly_using_abrtd(real_problem_id);
|
||||
@@ -89,3 +63,34 @@ int cmd_report(int argc, const char **argv)
|
||||
|
||||
return ret;
|
||||
}
|
||||
+
|
||||
+int cmd_report(int argc, const char **argv)
|
||||
+{
|
||||
+ const char *program_usage_string = _(
|
||||
+ "& report [options] DIR..."
|
||||
+ );
|
||||
+
|
||||
+ enum {
|
||||
+ OPT_v = 1 << 0,
|
||||
+ OPT_d = 1 << 1,
|
||||
+ };
|
||||
+
|
||||
+ struct options program_options[] = {
|
||||
+ OPT__VERBOSE(&g_verbose),
|
||||
+ OPT_BOOL('d', "delete", NULL, _("Remove PROBLEM_DIR after reporting")),
|
||||
+ OPT_END()
|
||||
+ };
|
||||
+
|
||||
+ unsigned opts = parse_opts(argc, (char **)argv, program_options, program_usage_string);
|
||||
+ argv += optind;
|
||||
+
|
||||
+ if (!argv[0])
|
||||
+ show_usage_and_die(program_usage_string, program_options);
|
||||
+
|
||||
+ export_abrt_envvars(/*prog_prefix:*/ 0);
|
||||
+
|
||||
+ load_abrt_conf();
|
||||
+ free_abrt_conf_data();
|
||||
+
|
||||
+ return _cmd_report(argv, opts & OPT_d);
|
||||
+}
|
||||
diff --git a/src/cli/rm.c b/src/cli/rm.c
|
||||
index 37d50e2..95ae097 100644
|
||||
--- a/src/cli/rm.c
|
||||
+++ b/src/cli/rm.c
|
||||
@@ -52,6 +52,11 @@ static int remove_using_abrtd_or_fs(const char **dirs_strv)
|
||||
return errs;
|
||||
}
|
||||
|
||||
+int _cmd_remove(const char **dirs_strv)
|
||||
+{
|
||||
+ return (g_cli_authenticate ? remove_using_dbus : remove_using_abrtd_or_fs)(dirs_strv);
|
||||
+}
|
||||
+
|
||||
int cmd_remove(int argc, const char **argv)
|
||||
{
|
||||
const char *program_usage_string = _(
|
||||
@@ -69,5 +74,5 @@ int cmd_remove(int argc, const char **argv)
|
||||
if (!argv[0])
|
||||
show_usage_and_die(program_usage_string, program_options);
|
||||
|
||||
- return (g_cli_authenticate ? remove_using_dbus : remove_using_abrtd_or_fs)(argv);
|
||||
+ return _cmd_remove(argv);
|
||||
}
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
From 23c6702959b763f6abbc3c853676c6aeedd6d3fe Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Mon, 13 Jul 2015 11:25:17 +0200
|
||||
Subject: [PATCH] a-dump-oops: allow update the problem, if more then one oops
|
||||
found
|
||||
|
||||
In case that found more than one oops process the first one.
|
||||
Without this patch the script exits with error in this case because expects
|
||||
only one oops.
|
||||
|
||||
Related to rhbz#1170534
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-dump-oops.c | 16 +++++++++++-----
|
||||
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-dump-oops.c b/src/plugins/abrt-dump-oops.c
|
||||
index 58650cb..a348923 100644
|
||||
--- a/src/plugins/abrt-dump-oops.c
|
||||
+++ b/src/plugins/abrt-dump-oops.c
|
||||
@@ -172,6 +172,17 @@ int main(int argc, char **argv)
|
||||
log("Updating problem directory");
|
||||
switch (g_list_length(oops_list))
|
||||
{
|
||||
+ case 0:
|
||||
+ {
|
||||
+ error_msg(_("Can't update the problem: no oops found"));
|
||||
+ errors = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ default:
|
||||
+ {
|
||||
+ log_notice(_("More oopses found: process only the first one"));
|
||||
+ }
|
||||
+ /* falls trought */
|
||||
case 1:
|
||||
{
|
||||
struct dump_dir *dd = dd_opendir(problem_dir, /*open for writing*/0);
|
||||
@@ -181,11 +192,6 @@ int main(int argc, char **argv)
|
||||
dd_close(dd);
|
||||
}
|
||||
}
|
||||
- break;
|
||||
- default:
|
||||
- error_msg(_("Can't update the problem: more than one oops found"));
|
||||
- errors = 1;
|
||||
- break;
|
||||
}
|
||||
}
|
||||
else
|
||||
--
|
||||
2.4.3
|
||||
|
||||
117
0005-abrtd-de-prioritize-post-create-event-scripts.patch
Normal file
117
0005-abrtd-de-prioritize-post-create-event-scripts.patch
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
From 883d35109b55928d4c36d3cd6ee262d7cdc5bd4d Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 15 Jul 2015 10:20:59 +0200
|
||||
Subject: [PATCH] abrtd: de-prioritize post-create event scripts
|
||||
|
||||
The crash processing should not make the computer unusable. It sometimes
|
||||
happens that the captured data causes abrt scripts to take an inadequate
|
||||
amount of resources and the computer becomes less responsive.
|
||||
|
||||
This patch increases the nice value of post-create processes by 10 (I took
|
||||
10 because it is the default value of command 'nice'), so those
|
||||
processes will be scheduled after the more valuable processes.
|
||||
|
||||
Related: rhbz#1236422
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
doc/abrtd.txt | 7 +++++++
|
||||
src/daemon/abrt-handle-event.c | 19 ++++++++++++++++++-
|
||||
src/daemon/abrt-server.c | 14 ++++++++------
|
||||
3 files changed, 33 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/doc/abrtd.txt b/doc/abrtd.txt
|
||||
index b129d3e..32d044b 100644
|
||||
--- a/doc/abrtd.txt
|
||||
+++ b/doc/abrtd.txt
|
||||
@@ -36,6 +36,13 @@ OPTIONS
|
||||
-p::
|
||||
Add program names to log.
|
||||
|
||||
+ENVIRONMENT
|
||||
+-----------
|
||||
+ABRT_EVENT_NICE::
|
||||
+ 'abrtd' runs its post-mortem processing with the nice value incremented by 10
|
||||
+ in order to not take too much resources and keep the computer responsive. If
|
||||
+ you want to adjust the increment value, use the ABRT_EVENT_NICE environment
|
||||
+ variable.
|
||||
|
||||
CAVEATS
|
||||
-------
|
||||
diff --git a/src/daemon/abrt-handle-event.c b/src/daemon/abrt-handle-event.c
|
||||
index 4a21aa4..fda21bd 100644
|
||||
--- a/src/daemon/abrt-handle-event.c
|
||||
+++ b/src/daemon/abrt-handle-event.c
|
||||
@@ -403,16 +403,18 @@ int main(int argc, char **argv)
|
||||
abrt_init(argv);
|
||||
|
||||
const char *program_usage_string = _(
|
||||
- "& [-v -i] -e|--event EVENT DIR..."
|
||||
+ "& [-v -i -n INCREMENT] -e|--event EVENT DIR..."
|
||||
);
|
||||
|
||||
char *event_name = NULL;
|
||||
int interactive = 0; /* must be _int_, OPT_BOOL expects that! */
|
||||
+ int nice_incr = 0;
|
||||
|
||||
struct options program_options[] = {
|
||||
OPT__VERBOSE(&g_verbose),
|
||||
OPT_STRING('e', "event" , &event_name, "EVENT", _("Run EVENT on DIR")),
|
||||
OPT_BOOL('i', "interactive" , &interactive, _("Communicate directly to the user")),
|
||||
+ OPT_INTEGER('n', "nice" , &nice_incr, _("Increment the nice value by INCREMENT")),
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
@@ -423,6 +425,21 @@ int main(int argc, char **argv)
|
||||
|
||||
load_abrt_conf();
|
||||
|
||||
+ const char *const opt_env_nice = getenv("ABRT_EVENT_NICE");
|
||||
+ if (opt_env_nice != NULL && opt_env_nice[0] != '\0')
|
||||
+ {
|
||||
+ log_debug("Using ABRT_EVENT_NICE=%s to increment the nice value", opt_env_nice);
|
||||
+ nice_incr = xatoi(opt_env_nice);
|
||||
+ }
|
||||
+
|
||||
+ if (nice_incr != 0)
|
||||
+ {
|
||||
+ log_debug("Incrementing the nice value by %d", nice_incr);
|
||||
+ const int ret = nice(nice_incr);
|
||||
+ if (ret == -1)
|
||||
+ perror_msg_and_die("Failed to increment the nice value");
|
||||
+ }
|
||||
+
|
||||
bool post_create = (strcmp(event_name, "post-create") == 0);
|
||||
char *dump_dir_name = NULL;
|
||||
while (*argv)
|
||||
diff --git a/src/daemon/abrt-server.c b/src/daemon/abrt-server.c
|
||||
index d7556e2..9f177e9 100644
|
||||
--- a/src/daemon/abrt-server.c
|
||||
+++ b/src/daemon/abrt-server.c
|
||||
@@ -126,15 +126,17 @@ static int delete_path(const char *dump_dir_name)
|
||||
|
||||
static pid_t spawn_event_handler_child(const char *dump_dir_name, const char *event_name, int *fdp)
|
||||
{
|
||||
- char *args[7];
|
||||
+ char *args[9];
|
||||
args[0] = (char *) LIBEXEC_DIR"/abrt-handle-event";
|
||||
/* Do not forward ASK_* messages to parent*/
|
||||
args[1] = (char *) "-i";
|
||||
- args[2] = (char *) "-e";
|
||||
- args[3] = (char *) event_name;
|
||||
- args[4] = (char *) "--";
|
||||
- args[5] = (char *) dump_dir_name;
|
||||
- args[6] = NULL;
|
||||
+ args[2] = (char *) "--nice";
|
||||
+ args[3] = (char *) "10";
|
||||
+ args[4] = (char *) "-e";
|
||||
+ args[5] = (char *) event_name;
|
||||
+ args[6] = (char *) "--";
|
||||
+ args[7] = (char *) dump_dir_name;
|
||||
+ args[8] = NULL;
|
||||
|
||||
int pipeout[2];
|
||||
int flags = EXECFLG_INPUT_NUL | EXECFLG_OUTPUT | EXECFLG_QUIET | EXECFLG_ERR2OUT;
|
||||
--
|
||||
2.4.3
|
||||
|
||||
473
0006-abrt-Fixup-component-of-select-kernel-backtraces.patch
Normal file
473
0006-abrt-Fixup-component-of-select-kernel-backtraces.patch
Normal file
|
|
@ -0,0 +1,473 @@
|
|||
From 9d9e0b94573e668bc242a68f4007e67c3eef4ddf Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@fedoraproject.org>
|
||||
Date: Wed, 27 May 2015 16:27:32 -0700
|
||||
Subject: [PATCH] abrt: Fixup component of select kernel backtraces
|
||||
|
||||
The kernel is a big project and certain parts of it
|
||||
may need to be tracked under different components.
|
||||
Fixup results related to those parts and assign a
|
||||
different component.
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
|
||||
|
||||
- ported to Python 3
|
||||
- removed a left over
|
||||
- extended a log message
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
.gitignore | 1 +
|
||||
abrt.spec.in | 1 +
|
||||
configure.ac | 1 +
|
||||
examples/oops-32bit-graphics.right | 73 +++++++++++++++++
|
||||
examples/oops-32bit-graphics.test | 71 +++++++++++++++++
|
||||
examples/oops-noveau.right | 39 +++++++++
|
||||
examples/oops-noveau.test | 38 +++++++++
|
||||
src/plugins/Makefile.am | 3 +
|
||||
.../abrt-action-check-oops-for-alt-component.in | 93 ++++++++++++++++++++++
|
||||
src/plugins/koops_event.conf | 3 +
|
||||
src/plugins/vmcore_event.conf | 1 +
|
||||
11 files changed, 324 insertions(+)
|
||||
create mode 100644 examples/oops-32bit-graphics.right
|
||||
create mode 100644 examples/oops-32bit-graphics.test
|
||||
create mode 100644 examples/oops-noveau.right
|
||||
create mode 100644 examples/oops-noveau.test
|
||||
create mode 100644 src/plugins/abrt-action-check-oops-for-alt-component.in
|
||||
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index 66410cb..f5a93e4 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -30,6 +30,7 @@ src/plugins/abrt-action-analyze-python
|
||||
src/plugins/abrt-action-analyze-vmcore
|
||||
src/plugins/abrt-action-analyze-xorg
|
||||
src/plugins/abrt-action-check-oops-for-hw-error
|
||||
+src/plugins/abrt-action-check-oops-for-alt-component
|
||||
src/plugins/abrt-action-generate-backtrace
|
||||
src/plugins/abrt-action-install-debuginfo-to-abrt-cache
|
||||
src/plugins/abrt-action-perform-ccpp-analysis
|
||||
diff --git a/abrt.spec.in b/abrt.spec.in
|
||||
index 08eb93f..c73eaf6 100644
|
||||
--- a/abrt.spec.in
|
||||
+++ b/abrt.spec.in
|
||||
@@ -975,6 +975,7 @@ killall abrt-dbus >/dev/null 2>&1 || :
|
||||
%endif
|
||||
%{_sbindir}/abrt-harvest-vmcore
|
||||
%{_bindir}/abrt-action-analyze-vmcore
|
||||
+%{_bindir}/abrt-action-check-oops-for-alt-component
|
||||
%{_bindir}/abrt-action-check-oops-for-hw-error
|
||||
%{_mandir}/man1/abrt-harvest-vmcore.1*
|
||||
%{_mandir}/man5/abrt-vmcore.conf.5*
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2958807..b372e12 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -429,6 +429,7 @@ AC_CONFIG_FILES([
|
||||
src/plugins/abrt-action-install-debuginfo
|
||||
src/plugins/abrt-action-analyze-vmcore
|
||||
src/plugins/abrt-action-check-oops-for-hw-error
|
||||
+ src/plugins/abrt-action-check-oops-for-alt-component
|
||||
src/python-problem/Makefile
|
||||
src/python-problem/doc/Makefile
|
||||
src/python-problem/tests/Makefile
|
||||
diff --git a/examples/oops-32bit-graphics.right b/examples/oops-32bit-graphics.right
|
||||
new file mode 100644
|
||||
index 0000000..9891d02
|
||||
--- /dev/null
|
||||
+++ b/examples/oops-32bit-graphics.right
|
||||
@@ -0,0 +1,73 @@
|
||||
+abrt-dump-oops: Found oopses: 2
|
||||
+abrt-dump-oops: Kernel is tainted 'GD'
|
||||
+
|
||||
+Version: 4.0.3-201.fc21.i686+PAE
|
||||
+BUG: unable to handle kernel NULL pointer dereference at 00000008
|
||||
+IP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon]
|
||||
+*pdpt = 0000000033260001 *pde = 0000000000000000
|
||||
+Oops: 0000 [#1] SMP
|
||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
||||
+CPU: 0 PID: 222 Comm: plymouthd Not tainted 4.0.3-201.fc21.i686+PAE #1
|
||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
||||
+task: f325f640 ti: f33b8000 task.ti: f33b8000
|
||||
+EIP: 0060:[<f83f9f24>] EFLAGS: 00010246 CPU: 0
|
||||
+EIP is at radeon_audio_detect+0x54/0x140 [radeon]
|
||||
+EAX: f6884240 EBX: f339dc00 ECX: 00000000 EDX: 00000000
|
||||
+ESI: f3364320 EDI: f681c000 EBP: f33b9d14 ESP: f33b9d04
|
||||
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
|
||||
+CR0: 80050033 CR2: 00000008 CR3: 33209000 CR4: 000007f0
|
||||
+Stack:
|
||||
+ f6884240 f339dc00 00000001 f7374800 f33b9d48 f833bb78 00000001 f33be600
|
||||
+ 4ac04888 00000000 f33be600 f33b9d68 00000001 f681c000 f339dc30 f339dc00
|
||||
+ 00000001 f33b9d94 f809287b f3259580 f775d500 f325f640 f33b9fec f33e0540
|
||||
+Call Trace:
|
||||
+ [<f833bb78>] radeon_dvi_detect+0x2d8/0x4b0 [radeon]
|
||||
+ [<f809287b>] drm_helper_probe_single_connector_modes_merge_bits+0x27b/0x4a0 [drm_kms_helper]
|
||||
+ [<c0a8abc0>] ? mutex_lock+0x10/0x30
|
||||
+ [<f8092ab7>] drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
|
||||
+ [<f80c5f2d>] drm_mode_getconnector+0x28d/0x320 [drm]
|
||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
||||
+ [<f80b81a5>] drm_ioctl+0x1f5/0x560 [drm]
|
||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
||||
+ [<c05064a7>] ? do_seccomp+0x2d7/0x6e0
|
||||
+ [<c07043a6>] ? _copy_to_user+0x26/0x30
|
||||
+ [<c0823931>] ? __pm_runtime_resume+0x51/0x70
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<f831503e>] radeon_drm_ioctl+0x3e/0x70 [radeon]
|
||||
+ [<f8315000>] ? 0xf8315000
|
||||
+ [<c05b69b2>] do_vfs_ioctl+0x322/0x540
|
||||
+ [<c0690c42>] ? inode_has_perm.isra.32+0x32/0x50
|
||||
+ [<c0690da7>] ? file_has_perm+0x97/0xa0
|
||||
+ [<c06919cb>] ? selinux_file_ioctl+0x4b/0xe0
|
||||
+ [<c05b6c30>] SyS_ioctl+0x60/0x90
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+Code: 44 8b 93 0c 02 00 00 8b 02 8b b2 20 01 00 00 8b 78 18 8b 86 e4 00 00 00 85 c0 74 29 83 7d f0 01 74 35 8b 50 10 8b 8f 70 1c 00 00 <8b> 59 08 85 db 74 0c 89 f8 31 c9 ff d3 8b 86 e4 00 00 00 c7 40
|
||||
+EIP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon] SS:ESP 0068:f33b9d04
|
||||
+CR2: 0000000000000008
|
||||
+
|
||||
+Version: 4.0.3-201.fc21.i686+PAE
|
||||
+WARNING: CPU: 1 PID: 263 at lib/list_debug.c:62 __list_del_entry+0xf4/0x100()
|
||||
+list_del corruption. next->prev should be f3215564, but was (null)
|
||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
||||
+CPU: 1 PID: 263 Comm: plymouth Tainted: G D 4.0.3-201.fc21.i686+PAE #1
|
||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
||||
+ c0d3c9c7 b9171629 00000000 f3337eb4 c0a878b6 f3337ef8 f3337ee8 c0466c1b
|
||||
+ c0c929c4 f3337f18 00000107 c0c91c9f 0000003e c0712794 0000003e c0712794
|
||||
+ 00000000 00000001 f32150a0 f3337f04 c0466c8e 00000009 f3337ef8 c0c929c4
|
||||
+Call Trace:
|
||||
+ [<c0a878b6>] dump_stack+0x41/0x52
|
||||
+ [<c0466c1b>] warn_slowpath_common+0x8b/0xc0
|
||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
||||
+ [<c0466c8e>] warn_slowpath_fmt+0x3e/0x60
|
||||
+ [<c0712794>] __list_del_entry+0xf4/0x100
|
||||
+ [<c04e8a63>] cgroup_exit+0x33/0x100
|
||||
+ [<c0469208>] do_exit+0x2b8/0x950
|
||||
+ [<c0457a72>] ? __do_page_fault+0x252/0x4a0
|
||||
+ [<c0469917>] do_group_exit+0x37/0xa0
|
||||
+ [<c0469996>] SyS_exit_group+0x16/0x20
|
||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
||||
diff --git a/examples/oops-32bit-graphics.test b/examples/oops-32bit-graphics.test
|
||||
new file mode 100644
|
||||
index 0000000..da3d716
|
||||
--- /dev/null
|
||||
+++ b/examples/oops-32bit-graphics.test
|
||||
@@ -0,0 +1,71 @@
|
||||
+BUG: unable to handle kernel NULL pointer dereference at 00000008
|
||||
+IP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon]
|
||||
+*pdpt = 0000000033260001 *pde = 0000000000000000
|
||||
+Oops: 0000 [#1] SMP
|
||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
||||
+CPU: 0 PID: 222 Comm: plymouthd Not tainted 4.0.3-201.fc21.i686+PAE #1
|
||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
||||
+task: f325f640 ti: f33b8000 task.ti: f33b8000
|
||||
+EIP: 0060:[<f83f9f24>] EFLAGS: 00010246 CPU: 0
|
||||
+EIP is at radeon_audio_detect+0x54/0x140 [radeon]
|
||||
+EAX: f6884240 EBX: f339dc00 ECX: 00000000 EDX: 00000000
|
||||
+ESI: f3364320 EDI: f681c000 EBP: f33b9d14 ESP: f33b9d04
|
||||
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
|
||||
+CR0: 80050033 CR2: 00000008 CR3: 33209000 CR4: 000007f0
|
||||
+Stack:
|
||||
+ f6884240 f339dc00 00000001 f7374800 f33b9d48 f833bb78 00000001 f33be600
|
||||
+ 4ac04888 00000000 f33be600 f33b9d68 00000001 f681c000 f339dc30 f339dc00
|
||||
+ 00000001 f33b9d94 f809287b f3259580 f775d500 f325f640 f33b9fec f33e0540
|
||||
+Call Trace:
|
||||
+ [<f833bb78>] radeon_dvi_detect+0x2d8/0x4b0 [radeon]
|
||||
+ [<f809287b>] drm_helper_probe_single_connector_modes_merge_bits+0x27b/0x4a0 [drm_kms_helper]
|
||||
+ [<c0a8abc0>] ? mutex_lock+0x10/0x30
|
||||
+ [<f8092ab7>] drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
|
||||
+ [<f80c5f2d>] drm_mode_getconnector+0x28d/0x320 [drm]
|
||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
||||
+ [<f80b81a5>] drm_ioctl+0x1f5/0x560 [drm]
|
||||
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
|
||||
+ [<c05064a7>] ? do_seccomp+0x2d7/0x6e0
|
||||
+ [<c07043a6>] ? _copy_to_user+0x26/0x30
|
||||
+ [<c0823931>] ? __pm_runtime_resume+0x51/0x70
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<f831503e>] radeon_drm_ioctl+0x3e/0x70 [radeon]
|
||||
+ [<f8315000>] ? 0xf8315000
|
||||
+ [<c05b69b2>] do_vfs_ioctl+0x322/0x540
|
||||
+ [<c0690c42>] ? inode_has_perm.isra.32+0x32/0x50
|
||||
+ [<c0690da7>] ? file_has_perm+0x97/0xa0
|
||||
+ [<c06919cb>] ? selinux_file_ioctl+0x4b/0xe0
|
||||
+ [<c05b6c30>] SyS_ioctl+0x60/0x90
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
|
||||
+Code: 44 8b 93 0c 02 00 00 8b 02 8b b2 20 01 00 00 8b 78 18 8b 86 e4 00 00 00 85 c0 74 29 83 7d f0 01 74 35 8b 50 10 8b 8f 70 1c 00 00 <8b> 59 08 85 db 74 0c 89 f8 31 c9 ff d3 8b 86 e4 00 00 00 c7 40
|
||||
+EIP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon] SS:ESP 0068:f33b9d04
|
||||
+CR2: 0000000000000008
|
||||
+---[ end trace c37768228d821e9f ]---
|
||||
+------------[ cut here ]------------
|
||||
+WARNING: CPU: 1 PID: 263 at lib/list_debug.c:62 __list_del_entry+0xf4/0x100()
|
||||
+list_del corruption. next->prev should be f3215564, but was (null)
|
||||
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
|
||||
+CPU: 1 PID: 263 Comm: plymouth Tainted: G D 4.0.3-201.fc21.i686+PAE #1
|
||||
+Hardware name: Dell Inc. Dimension 4700 /0M3918, BIOS A10 01/04/2006
|
||||
+ c0d3c9c7 b9171629 00000000 f3337eb4 c0a878b6 f3337ef8 f3337ee8 c0466c1b
|
||||
+ c0c929c4 f3337f18 00000107 c0c91c9f 0000003e c0712794 0000003e c0712794
|
||||
+ 00000000 00000001 f32150a0 f3337f04 c0466c8e 00000009 f3337ef8 c0c929c4
|
||||
+Call Trace:
|
||||
+ [<c0a878b6>] dump_stack+0x41/0x52
|
||||
+ [<c0466c1b>] warn_slowpath_common+0x8b/0xc0
|
||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
||||
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
|
||||
+ [<c0466c8e>] warn_slowpath_fmt+0x3e/0x60
|
||||
+ [<c0712794>] __list_del_entry+0xf4/0x100
|
||||
+ [<c04e8a63>] cgroup_exit+0x33/0x100
|
||||
+ [<c0469208>] do_exit+0x2b8/0x950
|
||||
+ [<c0457a72>] ? __do_page_fault+0x252/0x4a0
|
||||
+ [<c0469917>] do_group_exit+0x37/0xa0
|
||||
+ [<c0469996>] SyS_exit_group+0x16/0x20
|
||||
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
|
||||
+---[ end trace c37768228d821ea0 ]---
|
||||
+
|
||||
diff --git a/examples/oops-noveau.right b/examples/oops-noveau.right
|
||||
new file mode 100644
|
||||
index 0000000..d6c87a2
|
||||
--- /dev/null
|
||||
+++ b/examples/oops-noveau.right
|
||||
@@ -0,0 +1,39 @@
|
||||
+abrt-dump-oops: Found oopses: 1
|
||||
+
|
||||
+Version: 3.19.5-200.fc21.x86_64
|
||||
+WARNING: CPU: 0 PID: 16684 at arch/x86/mm/ioremap.c:197 __ioremap_caller+0x2aa/0x3a0()
|
||||
+Info: mapping multiple BARs. Your kernel is fine.
|
||||
+Modules linked in:
|
||||
+ bnep bluetooth rfkill xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack bridge stp llc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec fuse snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer edac_core usblp kvm_amd snd serio_raw kvm k10temp edac_mce_amd sp5100_tco i2c_piix4 shpchp soundcore acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ata_generic pata_acpi nouveau video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm pata_atiixp r8169 mii
|
||||
+CPU: 0 PID: 16684 Comm: firefox Not tainted 3.19.5-200.fc21.x86_64 #1
|
||||
+Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970A-DS3P, BIOS F1 04/08/2013
|
||||
+ 0000000000000000 0000000087b0a5f7 ffff8802e1b9b768 ffffffff8176ead5
|
||||
+ 0000000000000000 ffff8802e1b9b7c0 ffff8802e1b9b7a8 ffffffff8109bc1a
|
||||
+ ffff8802e1b9b7d8 ffffc9001c180000 00000000d206d000 0000000000100000
|
||||
+Call Trace:
|
||||
+ [<ffffffff8176ead5>] dump_stack+0x45/0x57
|
||||
+ [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
|
||||
+ [<ffffffff8109bca5>] warn_slowpath_fmt+0x55/0x70
|
||||
+ [<ffffffff810643aa>] __ioremap_caller+0x2aa/0x3a0
|
||||
+ [<ffffffff810644b7>] ioremap_nocache+0x17/0x20
|
||||
+ [<ffffffffa00e8036>] nouveau_barobj_ctor+0xd6/0x110 [nouveau]
|
||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
||||
+ [<ffffffffa00e80af>] nouveau_bar_alloc+0x3f/0x70 [nouveau]
|
||||
+ [<ffffffffa00e3795>] nouveau_gpuobj_create_+0x2a5/0x2f0 [nouveau]
|
||||
+ [<ffffffffa00e382c>] _nouveau_gpuobj_ctor+0x4c/0x70 [nouveau]
|
||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
||||
+ [<ffffffffa00e38ab>] nouveau_gpuobj_new+0x5b/0x80 [nouveau]
|
||||
+ [<ffffffffa0132173>] nouveau_vm_get+0x183/0x2f0 [nouveau]
|
||||
+ [<ffffffff811dd04a>] ? map_vm_area+0x2a/0x40
|
||||
+ [<ffffffffa0182744>] nouveau_bo_vma_add+0x34/0x90 [nouveau]
|
||||
+ [<ffffffffa017aee9>] nouveau_channel_prep+0x269/0x3b0 [nouveau]
|
||||
+ [<ffffffffa017b0b3>] nouveau_channel_new+0x83/0x800 [nouveau]
|
||||
+ [<ffffffffa01782fa>] ? nvif_device_init+0x3a/0x50 [nouveau]
|
||||
+ [<ffffffff811fbba6>] ? kmem_cache_alloc_trace+0x1f6/0x230
|
||||
+ [<ffffffffa0185770>] nouveau_abi16_ioctl_channel_alloc+0x120/0x3a0 [nouveau]
|
||||
+ [<ffffffffa0031a9f>] drm_ioctl+0x1df/0x680 [drm]
|
||||
+ [<ffffffff811cf196>] ? handle_mm_fault+0x8a6/0xff0
|
||||
+ [<ffffffffa0179222>] nouveau_drm_ioctl+0x72/0xd0 [nouveau]
|
||||
+ [<ffffffff8122e318>] do_vfs_ioctl+0x2f8/0x500
|
||||
+ [<ffffffff8122e5a1>] SyS_ioctl+0x81/0xa0
|
||||
+ [<ffffffff817752c9>] system_call_fastpath+0x12/0x17
|
||||
diff --git a/examples/oops-noveau.test b/examples/oops-noveau.test
|
||||
new file mode 100644
|
||||
index 0000000..8678a7d
|
||||
--- /dev/null
|
||||
+++ b/examples/oops-noveau.test
|
||||
@@ -0,0 +1,38 @@
|
||||
+------------[ cut here ]------------
|
||||
+WARNING: CPU: 0 PID: 16684 at arch/x86/mm/ioremap.c:197 __ioremap_caller+0x2aa/0x3a0()
|
||||
+Info: mapping multiple BARs. Your kernel is fine.
|
||||
+Modules linked in:
|
||||
+ bnep bluetooth rfkill xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack bridge stp llc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec fuse snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer edac_core usblp kvm_amd snd serio_raw kvm k10temp edac_mce_amd sp5100_tco i2c_piix4 shpchp soundcore acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ata_generic pata_acpi nouveau video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm pata_atiixp r8169 mii
|
||||
+CPU: 0 PID: 16684 Comm: firefox Not tainted 3.19.5-200.fc21.x86_64 #1
|
||||
+Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970A-DS3P, BIOS F1 04/08/2013
|
||||
+ 0000000000000000 0000000087b0a5f7 ffff8802e1b9b768 ffffffff8176ead5
|
||||
+ 0000000000000000 ffff8802e1b9b7c0 ffff8802e1b9b7a8 ffffffff8109bc1a
|
||||
+ ffff8802e1b9b7d8 ffffc9001c180000 00000000d206d000 0000000000100000
|
||||
+Call Trace:
|
||||
+ [<ffffffff8176ead5>] dump_stack+0x45/0x57
|
||||
+ [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
|
||||
+ [<ffffffff8109bca5>] warn_slowpath_fmt+0x55/0x70
|
||||
+ [<ffffffff810643aa>] __ioremap_caller+0x2aa/0x3a0
|
||||
+ [<ffffffff810644b7>] ioremap_nocache+0x17/0x20
|
||||
+ [<ffffffffa00e8036>] nouveau_barobj_ctor+0xd6/0x110 [nouveau]
|
||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
||||
+ [<ffffffffa00e80af>] nouveau_bar_alloc+0x3f/0x70 [nouveau]
|
||||
+ [<ffffffffa00e3795>] nouveau_gpuobj_create_+0x2a5/0x2f0 [nouveau]
|
||||
+ [<ffffffffa00e382c>] _nouveau_gpuobj_ctor+0x4c/0x70 [nouveau]
|
||||
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
|
||||
+ [<ffffffffa00e38ab>] nouveau_gpuobj_new+0x5b/0x80 [nouveau]
|
||||
+ [<ffffffffa0132173>] nouveau_vm_get+0x183/0x2f0 [nouveau]
|
||||
+ [<ffffffff811dd04a>] ? map_vm_area+0x2a/0x40
|
||||
+ [<ffffffffa0182744>] nouveau_bo_vma_add+0x34/0x90 [nouveau]
|
||||
+ [<ffffffffa017aee9>] nouveau_channel_prep+0x269/0x3b0 [nouveau]
|
||||
+ [<ffffffffa017b0b3>] nouveau_channel_new+0x83/0x800 [nouveau]
|
||||
+ [<ffffffffa01782fa>] ? nvif_device_init+0x3a/0x50 [nouveau]
|
||||
+ [<ffffffff811fbba6>] ? kmem_cache_alloc_trace+0x1f6/0x230
|
||||
+ [<ffffffffa0185770>] nouveau_abi16_ioctl_channel_alloc+0x120/0x3a0 [nouveau]
|
||||
+ [<ffffffffa0031a9f>] drm_ioctl+0x1df/0x680 [drm]
|
||||
+ [<ffffffff811cf196>] ? handle_mm_fault+0x8a6/0xff0
|
||||
+ [<ffffffffa0179222>] nouveau_drm_ioctl+0x72/0xd0 [nouveau]
|
||||
+ [<ffffffff8122e318>] do_vfs_ioctl+0x2f8/0x500
|
||||
+ [<ffffffff8122e5a1>] SyS_ioctl+0x81/0xa0
|
||||
+ [<ffffffff817752c9>] system_call_fastpath+0x12/0x17
|
||||
+---[ end trace d72a6ef9c44bed66 ]---
|
||||
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
||||
index d90bb76..aa426ff 100644
|
||||
--- a/src/plugins/Makefile.am
|
||||
+++ b/src/plugins/Makefile.am
|
||||
@@ -74,6 +74,7 @@ PYTHON_FILES = \
|
||||
abrt-action-list-dsos \
|
||||
abrt-action-analyze-core \
|
||||
abrt-action-analyze-vulnerability \
|
||||
+ abrt-action-check-oops-for-alt-component.in \
|
||||
abrt-action-check-oops-for-hw-error.in \
|
||||
abrt-action-perform-ccpp-analysis.in \
|
||||
abrt-action-notify
|
||||
@@ -101,6 +102,7 @@ EXTRA_DIST = \
|
||||
if BUILD_ADDON_VMCORE
|
||||
bin_SCRIPTS += \
|
||||
abrt-action-analyze-vmcore \
|
||||
+ abrt-action-check-oops-for-alt-component \
|
||||
abrt-action-check-oops-for-hw-error
|
||||
|
||||
dist_events_DATA += \
|
||||
@@ -115,6 +117,7 @@ PYTHON_FILES += \
|
||||
EXTRA_DIST += \
|
||||
analyze_VMcore.xml.in \
|
||||
abrt-action-analyze-vmcore \
|
||||
+ abrt-action-check-oops-for-alt-component \
|
||||
abrt-action-check-oops-for-hw-error
|
||||
endif
|
||||
|
||||
diff --git a/src/plugins/abrt-action-check-oops-for-alt-component.in b/src/plugins/abrt-action-check-oops-for-alt-component.in
|
||||
new file mode 100644
|
||||
index 0000000..3dce42e
|
||||
--- /dev/null
|
||||
+++ b/src/plugins/abrt-action-check-oops-for-alt-component.in
|
||||
@@ -0,0 +1,93 @@
|
||||
+#!/usr/bin/python3 -u
|
||||
+
|
||||
+import sys
|
||||
+import os
|
||||
+import locale
|
||||
+import gettext
|
||||
+import hashlib
|
||||
+import re
|
||||
+
|
||||
+GETTEXT_PROGNAME = "abrt"
|
||||
+
|
||||
+_ = gettext.lgettext
|
||||
+
|
||||
+tags = [
|
||||
+"WARNING:",
|
||||
+"[ER]IP[^:]",
|
||||
+" \[<[a-f0-9]{8,16}>\]"
|
||||
+]
|
||||
+
|
||||
+checks = [
|
||||
+ ("i915", "xorg-x11-drv-intel"),
|
||||
+ ("nouveau", "xorg-x11-drv-nouveau"),
|
||||
+ ("radeon", "xorg-x11-drv-ati"),
|
||||
+ ("qxl", "xorg-x11-drv-qxl"),
|
||||
+]
|
||||
+
|
||||
+def check_tag(line):
|
||||
+ for tag in tags:
|
||||
+ if re.match(tag, line) is not None:
|
||||
+ for (mod, component) in checks:
|
||||
+ if re.search(mod, line) is not None:
|
||||
+ return component
|
||||
+ return None
|
||||
+
|
||||
+def get_new_component(filename):
|
||||
+ try:
|
||||
+ f = open(filename, "r")
|
||||
+ except IOError as e:
|
||||
+ return None
|
||||
+ for line in f:
|
||||
+ c = check_tag(line)
|
||||
+ if c is not None:
|
||||
+ f.close()
|
||||
+ return c
|
||||
+ f.close()
|
||||
+ return None
|
||||
+
|
||||
+def open_or_die(filename, mode):
|
||||
+ try:
|
||||
+ f = open(filename, mode)
|
||||
+ except IOError as e:
|
||||
+ sys.stderr.write(str(e) + "\n")
|
||||
+ sys.exit(1)
|
||||
+ return f
|
||||
+
|
||||
+
|
||||
+if __name__ == "__main__":
|
||||
+ try:
|
||||
+ locale.setlocale(locale.LC_ALL, "")
|
||||
+ except locale.Error:
|
||||
+ os.environ['LC_ALL'] = 'C'
|
||||
+ locale.setlocale(locale.LC_ALL, "")
|
||||
+
|
||||
+ # Defeat "AttributeError: 'module' object has no attribute 'nl_langinfo'"
|
||||
+ try:
|
||||
+ gettext.bind_textdomain_codeset(GETTEXT_PROGNAME,
|
||||
+ locale.nl_langinfo(locale.CODESET))
|
||||
+ except AttributeError:
|
||||
+ pass
|
||||
+
|
||||
+ gettext.bindtextdomain(GETTEXT_PROGNAME, '/usr/share/locale')
|
||||
+ gettext.textdomain(GETTEXT_PROGNAME)
|
||||
+
|
||||
+ #
|
||||
+ # Certain drivers are in the kernel but need to be tracked separtely
|
||||
+ # in other components. This fixes those components.
|
||||
+ #
|
||||
+
|
||||
+ new_component = get_new_component("backtrace")
|
||||
+ if new_component is None:
|
||||
+ sys.exit(0)
|
||||
+
|
||||
+ print("Oops looks like a problem in kernel module, new component {0}"
|
||||
+ .format(new_component))
|
||||
+
|
||||
+ f = open_or_die("component", "w")
|
||||
+ f.write(new_component)
|
||||
+ f.close()
|
||||
+
|
||||
+ # keep kernel maint in the loop even if the component gets changed
|
||||
+ f = open_or_die("extra-cc", "w")
|
||||
+ f.write("kernel-maint@redhat.com")
|
||||
+ f.close()
|
||||
diff --git a/src/plugins/koops_event.conf b/src/plugins/koops_event.conf
|
||||
index a811077..2379d7d 100644
|
||||
--- a/src/plugins/koops_event.conf
|
||||
+++ b/src/plugins/koops_event.conf
|
||||
@@ -8,6 +8,9 @@ EVENT=post-create type=Kerneloops
|
||||
abrt-action-check-oops-for-hw-error
|
||||
fi
|
||||
{
|
||||
+ abrt-action-check-oops-for-alt-component || true
|
||||
+ } &&
|
||||
+ {
|
||||
# run abrt-action-analyze-oops only if check-hw-error didn't create the
|
||||
# required files
|
||||
if test ! -f uuid -a ! -f duphash; then
|
||||
diff --git a/src/plugins/vmcore_event.conf b/src/plugins/vmcore_event.conf
|
||||
index 43fa7f0..6870332 100644
|
||||
--- a/src/plugins/vmcore_event.conf
|
||||
+++ b/src/plugins/vmcore_event.conf
|
||||
@@ -29,6 +29,7 @@ EVENT=post-create type=vmcore
|
||||
# Do not fail the event (->do not delete problem dir)
|
||||
# if check-oops-for-hw-error exits nonzero:
|
||||
{ abrt-action-check-oops-for-hw-error || true; }
|
||||
+ { abrt-action-check-oops-for-alt-component || true; }
|
||||
|
||||
# analyze
|
||||
EVENT=analyze_VMcore type=vmcore
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
From b7332b068c11ec16c190472684334944abb3607b Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Thu, 9 Oct 2014 16:28:12 +0200
|
||||
Subject: [PATCH] console-notifications: use return instead of exit
|
||||
|
||||
Thanks Ray Strode [halfline] <rstrode@redhat.com>
|
||||
|
||||
Related to rhbz#1150169
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/abrt-console-notification.sh | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/cli/abrt-console-notification.sh b/src/cli/abrt-console-notification.sh
|
||||
index 849273c..38de7bb 100755
|
||||
--- a/src/cli/abrt-console-notification.sh
|
||||
+++ b/src/cli/abrt-console-notification.sh
|
||||
@@ -1,13 +1,13 @@
|
||||
-# If shell is not connect to a terminal, exit immediately, because this script
|
||||
+# If shell is not connect to a terminal, return immediately, because this script
|
||||
# should print out ABRT's status and it is senseless to continue without
|
||||
# terminal.
|
||||
-tty -s || exit 0
|
||||
+tty -s || return 0
|
||||
|
||||
# If $HOME is not set, a non human user is logging in to shell but this script
|
||||
-# should provide information to human users, therefore exiting immediately
|
||||
+# should provide information to human users, therefore returning immediately
|
||||
# without showing the notification.
|
||||
if [ -z "$HOME" ]; then
|
||||
- exit 0
|
||||
+ return 0
|
||||
fi
|
||||
|
||||
if [ -z "$ABRT_DEBUG_LOG" ]; then
|
||||
@@ -19,7 +19,7 @@ SINCEFILE="$LPATHDIR/lastnotification"
|
||||
|
||||
if [ ! -f "$LPATHDIR" ]; then
|
||||
# It might happen that user doesn't have write access on his home.
|
||||
- mkdir -p "$LPATHDIR" >"$ABRT_DEBUG_LOG" 2>&1 || exit 0
|
||||
+ mkdir -p "$LPATHDIR" >"$ABRT_DEBUG_LOG" 2>&1 || return 0
|
||||
fi
|
||||
|
||||
TMPPATH=`mktemp --tmpdir="$LPATHDIR" lastnotification.XXXXXXXX 2> "$ABRT_DEBUG_LOG"`
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
From 96c50b9c18aabf675e23f6df3ec584610ae5019a Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 17 Jul 2015 10:25:50 +0200
|
||||
Subject: [PATCH] ccpp: do not crash if generate_core_backtrace fails
|
||||
|
||||
Add a missing return statement in the error code execution path.
|
||||
|
||||
Related: rhbz#1243791
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-hook-ccpp.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
||||
index 8ccef06..809b45e 100644
|
||||
--- a/src/hooks/abrt-hook-ccpp.c
|
||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
||||
@@ -426,6 +426,7 @@ static void create_core_backtrace(pid_t tid, const char *executable, int signal_
|
||||
{
|
||||
log("Failed to create core_backtrace: %s", error_message);
|
||||
free(error_message);
|
||||
+ return;
|
||||
}
|
||||
|
||||
dd_save_text(dd, FILENAME_CORE_BACKTRACE, core_bt);
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
From 9ef1d95f9556db4fdf02b283e1602b9e63b693c8 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Thu, 9 Oct 2014 10:24:42 +0200
|
||||
Subject: [PATCH] ureport: attach contact email if configured
|
||||
|
||||
Related to rhbz#1150389
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-action-ureport | 35 ++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 32 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-ureport b/src/plugins/abrt-action-ureport
|
||||
index 1abe7b3..df5f3d3 100755
|
||||
--- a/src/plugins/abrt-action-ureport
|
||||
+++ b/src/plugins/abrt-action-ureport
|
||||
@@ -8,6 +8,7 @@
|
||||
import sys
|
||||
import os
|
||||
import getopt
|
||||
+import augeas
|
||||
|
||||
from report import dd_opendir, DD_FAIL_QUIETLY_ENOENT, run_event_state
|
||||
from reportclient import set_verbosity, error_msg_and_die, error_msg, log1, log
|
||||
@@ -33,12 +34,30 @@ def init_gettext():
|
||||
gettext.textdomain(GETTEXT_PROGNAME)
|
||||
|
||||
|
||||
-def spawn_and_wait(prog):
|
||||
+def get_augeas(module, file_path):
|
||||
+ """
|
||||
+ A function for efficient configuration of Augeas.
|
||||
+ Augeas modules are placed in /usr/share/augeas/lenses/dist
|
||||
+ """
|
||||
+
|
||||
+ aug_obj = augeas.Augeas(flags=augeas.Augeas.NO_MODL_AUTOLOAD)
|
||||
+ aug_obj.set("/augeas/load/{0}/lens".format(module), "{0}.lns".format(module))
|
||||
+ aug_obj.set("/augeas/load/{0}/incl".format(module), file_path)
|
||||
+ aug_obj.load()
|
||||
+ return aug_obj
|
||||
+
|
||||
+
|
||||
+def spawn_and_wait(prog, args=None):
|
||||
+ if args is None:
|
||||
+ args = [prog]
|
||||
+ else:
|
||||
+ args.insert(0, prog)
|
||||
+
|
||||
try:
|
||||
- return os.spawnlp(os.P_WAIT, prog, prog)
|
||||
+ return os.spawnvpe(os.P_WAIT, prog, args, os.environ)
|
||||
except OSError as err:
|
||||
error_msg(_("Unable to start '%s', error message was: '%s'"),
|
||||
- prog, err)
|
||||
+ " ".join(args), err)
|
||||
return -1
|
||||
|
||||
def try_parse_number(dd, filename):
|
||||
@@ -92,6 +111,7 @@ if __name__ == "__main__":
|
||||
verbose += 1
|
||||
|
||||
set_verbosity(verbose)
|
||||
+ os.environ["ABRT_VERBOSE"] = str(verbose)
|
||||
|
||||
# getcwd might fail if cwd was deleted
|
||||
try:
|
||||
@@ -159,6 +179,15 @@ if __name__ == "__main__":
|
||||
log(_("Adding you to CC List of the existing bugzilla bug"))
|
||||
run_event("watch_Bugzilla", dirname)
|
||||
|
||||
+ email = os.getenv("uReport_ContactEmail")
|
||||
+ if not email:
|
||||
+ augeas = get_augeas("libreport", "/etc/libreport/plugins/ureport.conf")
|
||||
+ email = augeas.get("/files/etc/libreport/plugins/ureport.conf/ContactEmail")
|
||||
+
|
||||
+ if email:
|
||||
+ log1("Attaching ContactEmail: " + email)
|
||||
+ spawn_and_wait("reporter-ureport", ["-A", "-E"])
|
||||
+
|
||||
sys.exit(exitcode)
|
||||
else:
|
||||
error_msg_and_die(_("reporter-ureport failed with exit code %d" % exitcode))
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
From cdc5824e4488d419616cdfaa87ac5f6cf2a4dfea Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 17 Jul 2015 10:42:01 +0200
|
||||
Subject: [PATCH] applet: do not crash if the new problem has no command_line
|
||||
|
||||
Related: rhbz#1243791
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/applet/applet.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/applet/applet.c b/src/applet/applet.c
|
||||
index 296e1b4..5bdedc1 100644
|
||||
--- a/src/applet/applet.c
|
||||
+++ b/src/applet/applet.c
|
||||
@@ -661,7 +661,11 @@ static void notify_problem_list(GList *problems)
|
||||
app = problem_create_app_from_env (problem_info_get_env(pi), problem_info_get_pid(pi));
|
||||
|
||||
if (!app)
|
||||
- app = problem_create_app_from_cmdline (problem_info_get_command_line(pi));
|
||||
+ {
|
||||
+ const char *const cmd_line = problem_info_get_command_line(pi);
|
||||
+ if (cmd_line != NULL)
|
||||
+ app = problem_create_app_from_cmdline(cmd_line);
|
||||
+ }
|
||||
|
||||
/* For each problem we'll need to know:
|
||||
* - Whether or not the crash happened in an “app”
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From ad9e9d1609fd9e1365bf558f15c62ecb21304911 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 10 Oct 2014 11:18:51 +0200
|
||||
Subject: [PATCH] applet: don't show duphash instead of component
|
||||
|
||||
Related to rhbz#1084031
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/applet/applet.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/applet/applet.c b/src/applet/applet.c
|
||||
index 0ae8c72..90c5b0d 100644
|
||||
--- a/src/applet/applet.c
|
||||
+++ b/src/applet/applet.c
|
||||
@@ -1331,7 +1331,7 @@ static void Crash(DBusMessage* signal)
|
||||
if (duphash != NULL && duphash[0] != '\0')
|
||||
problem_data_add_text_noteditable(pi->problem_data, FILENAME_DUPHASH, duphash);
|
||||
if (package_name != NULL && package_name[0] != '\0')
|
||||
- problem_data_add_text_noteditable(pi->problem_data, FILENAME_COMPONENT, duphash);
|
||||
+ problem_data_add_text_noteditable(pi->problem_data, FILENAME_COMPONENT, package_name);
|
||||
pi->foreign = foreign_problem;
|
||||
show_problem_notification(pi, flags);
|
||||
}
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From 5349718f775c39124e789457d2c012ac23c81619 Mon Sep 17 00:00:00 2001
|
||||
From: "knoha@redhat.com" <knoha@redhat.com>
|
||||
Date: Fri, 24 Jul 2015 07:56:02 +0200
|
||||
Subject: [PATCH] abrt-merge-pstoreoops: merge files in descending order
|
||||
|
||||
fs/pstore reads the data from kmsg_dump_get_buffer(), which starts at
|
||||
the end of the kmsg buffer, in a while loop and increases Part no. in
|
||||
each iteration.
|
||||
|
||||
Related: rhbz#1233662
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-merge-pstoreoops.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/hooks/abrt-merge-pstoreoops.c b/src/hooks/abrt-merge-pstoreoops.c
|
||||
index 6fc3109..36f1e0b 100644
|
||||
--- a/src/hooks/abrt-merge-pstoreoops.c
|
||||
+++ b/src/hooks/abrt-merge-pstoreoops.c
|
||||
@@ -64,9 +64,9 @@ int compare_oops_texts(const void *a, const void *b)
|
||||
return -1;
|
||||
if (aa->panic_no > bb->panic_no)
|
||||
return 1;
|
||||
- if (aa->part_no < bb->part_no)
|
||||
+ if (aa->part_no > bb->part_no)
|
||||
return -1;
|
||||
- return (aa->part_no > bb->part_no);
|
||||
+ return (aa->part_no < bb->part_no);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 03be49244ab5f4fdd7521254dd6afedbd277ceea Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 28 Jul 2015 13:17:25 +0200
|
||||
Subject: [PATCH] abrt-auto-reporting: fix related to conditional compilation
|
||||
|
||||
We discovered that conditional compilation in abrt-auto-reporting does not
|
||||
work. We forgot add -DAUTHENTICATED_AUTOREPORTING=1 flag if
|
||||
AUTHENTICATED_AUTOREPORTING is enabled.
|
||||
|
||||
Related to rhbz#1191572
|
||||
---
|
||||
src/daemon/Makefile.am | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
|
||||
index a8f3fa2..563923a 100644
|
||||
--- a/src/daemon/Makefile.am
|
||||
+++ b/src/daemon/Makefile.am
|
||||
@@ -122,6 +122,11 @@ abrt_auto_reporting_CPPFLAGS = \
|
||||
-I$(srcdir)/../lib \
|
||||
$(LIBREPORT_CFLAGS) \
|
||||
-D_GNU_SOURCE
|
||||
+
|
||||
+if AUTHENTICATED_AUTOREPORTING
|
||||
+abrt_auto_reporting_CPPFLAGS += -DAUTHENTICATED_AUTOREPORTING=1
|
||||
+endif
|
||||
+
|
||||
abrt_auto_reporting_LDADD = \
|
||||
../lib/libabrt.la \
|
||||
$(LIBREPORT_LIBS)
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From ab46bc9d85331fca923853353663c0ce0edc3716 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Sat, 11 Oct 2014 00:05:07 +0200
|
||||
Subject: [PATCH] console-notifications: skip non-interactive shells
|
||||
|
||||
Related to rhbz#1141485
|
||||
Related to rhbz#1139001
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/abrt-console-notification.sh | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/cli/abrt-console-notification.sh b/src/cli/abrt-console-notification.sh
|
||||
index 38de7bb..976dfc3 100755
|
||||
--- a/src/cli/abrt-console-notification.sh
|
||||
+++ b/src/cli/abrt-console-notification.sh
|
||||
@@ -3,6 +3,9 @@
|
||||
# terminal.
|
||||
tty -s || return 0
|
||||
|
||||
+# Skip all for noninteractive shells for the same reason as above.
|
||||
+[ -z "$PS1" ] && return 0
|
||||
+
|
||||
# If $HOME is not set, a non human user is logging in to shell but this script
|
||||
# should provide information to human users, therefore returning immediately
|
||||
# without showing the notification.
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From f1e5d631932a05e3147b6af73ce1230150f9f979 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 28 Jul 2015 16:20:47 +0200
|
||||
Subject: [PATCH] doc: fix related to conditional compilation of man page
|
||||
|
||||
abrt-auto-reporting.txt is a copy of either
|
||||
abrt-auto-reporting-authenticated.txt or
|
||||
abrt-auto-reporting-unauthenticated.txt. abrt-auto-reporting.txt file always
|
||||
exists because MAN1_TXT variable contains it and is distributed (the file is listed
|
||||
in the EXTRA_DIST variable). It would be difficult to ensure
|
||||
to have abrt-auto-reporting.txt in the MAN1_TXT and exclude it
|
||||
from the EXTRA_DIST. So enforce copy, to get the right version of man page, seems
|
||||
like the easiest way.
|
||||
|
||||
Related to rhbz#1191572
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
doc/Makefile.am | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||
index f39c3bf..fdd08cf 100644
|
||||
--- a/doc/Makefile.am
|
||||
+++ b/doc/Makefile.am
|
||||
@@ -82,6 +82,15 @@ MAN_SOURCE =
|
||||
MAN_SOURCE += abrt-auto-reporting-authenticated.txt
|
||||
MAN_SOURCE += abrt-auto-reporting-unauthenticated.txt
|
||||
|
||||
+# abrt-auto-reporting.txt is a copy of either
|
||||
+# abrt-auto-reporting-authenticated.txt or
|
||||
+# abrt-auto-reporting-unauthenticated.txt. abrt-auto-reporting.txt file always
|
||||
+# exists because MAN1_TXT variable contains it and is distributed (the file is listed
|
||||
+# in the EXTRA_DIST variable). It would be difficult to ensure
|
||||
+# to have abrt-auto-reporting.txt in the MAN1_TXT and exclude it
|
||||
+# from the EXTRA_DIST. So enforce copy, to get the right version of man page, seems
|
||||
+# like the easiest way.
|
||||
+.PHONY: abrt-auto-reporting.txt
|
||||
if AUTHENTICATED_AUTOREPORTING
|
||||
abrt-auto-reporting.txt: abrt-auto-reporting-authenticated.txt
|
||||
else
|
||||
--
|
||||
2.4.3
|
||||
|
||||
99
0012-dbus-api-unify-reporting-of-errors.patch
Normal file
99
0012-dbus-api-unify-reporting-of-errors.patch
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
From 0c3a29b70992627481af789dab50247728bcedf1 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 11 Aug 2015 09:54:55 +0200
|
||||
Subject: [PATCH] dbus-api: unify reporting of errors
|
||||
|
||||
User ERR_PTR for failures in all functions because some of the functions
|
||||
use NULL as a valid response (NULL is an empty GList).
|
||||
|
||||
Related: rhbz#1224984
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/include/libabrt.h | 16 +++++++++-------
|
||||
src/lib/problem_api_dbus.c | 2 +-
|
||||
2 files changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
||||
index 4e73a0d..da565f9 100644
|
||||
--- a/src/include/libabrt.h
|
||||
+++ b/src/include/libabrt.h
|
||||
@@ -163,7 +163,7 @@ void koops_print_suspicious_strings_filtered(const regex_t **filterout);
|
||||
|
||||
Requires authorization
|
||||
|
||||
- @return 0 if successfull non-zeru on failure
|
||||
+ @return 0 if successful; non-zero on failure
|
||||
*/
|
||||
int chown_dir_over_dbus(const char *problem_dir_path);
|
||||
|
||||
@@ -181,7 +181,7 @@ int test_exist_over_dbus(const char *problem_id, const char *element_name);
|
||||
|
||||
Might require authorization
|
||||
|
||||
- @return Positive number if such the proble is complete, 0 if doesn't and negative number if an error occurs.
|
||||
+ @return Positive number if the problem is complete, 0 if doesn't and negative number if an error occurs.
|
||||
*/
|
||||
int dbus_problem_is_complete(const char *problem_id);
|
||||
|
||||
@@ -198,7 +198,8 @@ char *load_text_over_dbus(const char *problem_id, const char *element_name);
|
||||
@brief Delets multiple problems specified by their id (as returned from problem_data_save)
|
||||
|
||||
@param problem_dir_paths List of problem ids
|
||||
- @return 0 if operation was successfull, non-zero on failure
|
||||
+
|
||||
+ @return 0 if operation was successful, non-zero on failure
|
||||
*/
|
||||
|
||||
int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
|
||||
@@ -206,21 +207,21 @@ int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
|
||||
/**
|
||||
@brief Fetches given problem elements for specified problem id
|
||||
|
||||
- @return on failures returns non zero value and emits error message
|
||||
+ @return returns non-zero value on failures and prints error message
|
||||
*/
|
||||
int fill_problem_data_over_dbus(const char *problem_dir_path, const char **elements, problem_data_t *problem_data);
|
||||
|
||||
/**
|
||||
@brief Fetches problem information for specified problem id
|
||||
|
||||
- @return problem_data_t or NULL on failure
|
||||
+ @return a valid pointer to problem_data_t or ERR_PTR on failure
|
||||
*/
|
||||
problem_data_t *get_problem_data_dbus(const char *problem_dir_path);
|
||||
|
||||
/**
|
||||
@brief Fetches full problem data for specified problem id
|
||||
|
||||
- @return problem_data_t or ERR_PTR on failure
|
||||
+ @return a valid pointer to problem_data_t or ERR_PTR on failure
|
||||
*/
|
||||
problem_data_t *get_full_problem_data_over_dbus(const char *problem_dir_path);
|
||||
|
||||
@@ -228,7 +229,8 @@ problem_data_t *get_full_problem_data_over_dbus(const char *problem_dir_path);
|
||||
@brief Fetches all problems from problem database
|
||||
|
||||
@param authorize If set to true will try to fetch even problems owned by other users (will require root authorization over policy kit)
|
||||
- @return List of problem ids or NULL on failure
|
||||
+
|
||||
+ @return List of problem ids or ERR_PTR on failure (NULL is an empty list)
|
||||
*/
|
||||
GList *get_problems_over_dbus(bool authorize);
|
||||
|
||||
diff --git a/src/lib/problem_api_dbus.c b/src/lib/problem_api_dbus.c
|
||||
index ce5c47b..0bf86e2 100644
|
||||
--- a/src/lib/problem_api_dbus.c
|
||||
+++ b/src/lib/problem_api_dbus.c
|
||||
@@ -165,7 +165,7 @@ problem_data_t *get_problem_data_dbus(const char *problem_dir_path)
|
||||
{
|
||||
error_msg(_("Can't get problem data from abrt-dbus"));
|
||||
problem_data_free(pd);
|
||||
- return NULL;
|
||||
+ return ERR_PTR;
|
||||
}
|
||||
|
||||
return pd;
|
||||
--
|
||||
2.4.3
|
||||
|
||||
56
0013-cli-fix-testing-of-DBus-API-return-codes.patch
Normal file
56
0013-cli-fix-testing-of-DBus-API-return-codes.patch
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
From a4412db28021552e1399695b3f5435ccbb03bf08 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 11 Aug 2015 10:01:53 +0200
|
||||
Subject: [PATCH] cli: fix testing of DBus API return codes
|
||||
|
||||
The DBus wrapper functions uses ERR_PTR to report an error, so the
|
||||
callers has to test the returned pointers for NULL and for ERR_PTR.
|
||||
|
||||
Related: rhbz#1224984
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/list.c | 3 +++
|
||||
src/cli/status.c | 5 ++++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/cli/list.c b/src/cli/list.c
|
||||
index 68dda47..d069695 100644
|
||||
--- a/src/cli/list.c
|
||||
+++ b/src/cli/list.c
|
||||
@@ -36,6 +36,9 @@ static problem_data_t *load_problem_data(const char *problem_id)
|
||||
|
||||
/* First, check if there is a problem with the passed id */
|
||||
GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
||||
+ if (problems == ERR_PTR)
|
||||
+ return NULL;
|
||||
+
|
||||
GList *item = g_list_find_custom(problems, problem_id, (GCompareFunc)strcmp);
|
||||
|
||||
/* (git requires at least 5 char hash prefix, we do the same) */
|
||||
diff --git a/src/cli/status.c b/src/cli/status.c
|
||||
index 0635289..3620cea 100644
|
||||
--- a/src/cli/status.c
|
||||
+++ b/src/cli/status.c
|
||||
@@ -27,6 +27,9 @@ static unsigned int count_problem_dirs(unsigned long since)
|
||||
unsigned count = 0;
|
||||
|
||||
GList *problems = get_problems_over_dbus(g_cli_authenticate);
|
||||
+ if (problems == ERR_PTR)
|
||||
+ return count;
|
||||
+
|
||||
for (GList *iter = problems; iter != NULL; iter = g_list_next(iter))
|
||||
{
|
||||
const char *problem_id = (const char *)iter->data;
|
||||
@@ -37,7 +40,7 @@ static unsigned int count_problem_dirs(unsigned long since)
|
||||
}
|
||||
|
||||
char *time_str = load_text_over_dbus(problem_id, FILENAME_LAST_OCCURRENCE);
|
||||
- if (time_str == NULL)
|
||||
+ if (time_str == ERR_PTR || time_str == NULL)
|
||||
{
|
||||
log_debug("Not counting problem %s: failed to get time element", problem_id);
|
||||
continue;
|
||||
--
|
||||
2.4.3
|
||||
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
From affc4b3e644931820180aec57e128106e44b626c Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 11 Aug 2015 16:17:40 +0200
|
||||
Subject: [PATCH] ccpp: fix comment related to 'MakeCompatCore' option in
|
||||
CCpp.conf
|
||||
|
||||
The comment fits only on the default core_pattern template.
|
||||
If the core_pattern is not default, the comment does not fit.
|
||||
|
||||
Related to rhbz#1252384
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
doc/abrt-CCpp.conf.txt | 9 +++++++--
|
||||
src/hooks/CCpp.conf | 9 +++++++--
|
||||
2 files changed, 14 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/doc/abrt-CCpp.conf.txt b/doc/abrt-CCpp.conf.txt
|
||||
index 498d53d..cf9b213 100644
|
||||
--- a/doc/abrt-CCpp.conf.txt
|
||||
+++ b/doc/abrt-CCpp.conf.txt
|
||||
@@ -11,8 +11,13 @@ The configuration file consists of items in the format "Option = Value".
|
||||
Ithe following items are recognized:
|
||||
|
||||
MakeCompatCore = 'yes' / 'no' ...::
|
||||
- If you also want to dump file named "core"
|
||||
- in crashed process' current dir, set to "yes".
|
||||
+ CCpp hook writes its template to the "/proc/sys/kernel/core_pattern" file
|
||||
+ and stores the original template in the "/var/run/abrt/saved_core_pattern"
|
||||
+ file. If you want CCpp hook to create a core dump file named according to
|
||||
+ the original template as well, set 'MakeCompatCore' to 'yes'.
|
||||
+ If the original template string starts with "|", the string "core" is used
|
||||
+ instead of the template.
|
||||
+ For more information about naming core dump files see 'man 5 core'.
|
||||
|
||||
SaveBinaryImage = 'yes' / 'no' ...::
|
||||
Do you want a copy of crashed binary be saved?
|
||||
diff --git a/src/hooks/CCpp.conf b/src/hooks/CCpp.conf
|
||||
index 92d7438..03b9b03 100644
|
||||
--- a/src/hooks/CCpp.conf
|
||||
+++ b/src/hooks/CCpp.conf
|
||||
@@ -1,7 +1,12 @@
|
||||
# Configuration file for CCpp hook
|
||||
|
||||
-# If you also want to dump file named "core"
|
||||
-# in crashed process' current dir, set to "yes"
|
||||
+# CCpp hook writes its template to the "/proc/sys/kernel/core_pattern" file
|
||||
+# and stores the original template in the "/var/run/abrt/saved_core_pattern"
|
||||
+# file. If you want CCpp hook to create a core dump file named according to
|
||||
+# the original template as well, set 'MakeCompatCore' to 'yes'.
|
||||
+# If the original template string starts with "|", the string "core" is used
|
||||
+# instead of the template.
|
||||
+# For more information about naming core dump files see 'man 5 core'.
|
||||
MakeCompatCore = yes
|
||||
|
||||
# Do you want a copy of crashed binary be saved?
|
||||
--
|
||||
2.4.3
|
||||
|
||||
37
0015-ccpp-use-global-TID.patch
Normal file
37
0015-ccpp-use-global-TID.patch
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
From fbb66dec11a7e8503b0cfb9b2c85e94f6b00f4a3 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 12 Aug 2015 17:40:12 +0200
|
||||
Subject: [PATCH] ccpp: use global TID
|
||||
|
||||
'%i' is TID of the thread from the crashed process's PID namespace but
|
||||
abrt-hook-ccpp is run by kernel in the init PID namespace, so '%i'
|
||||
is TID of a completely unrelated process.
|
||||
|
||||
For mode details see 'man 5 core'.
|
||||
|
||||
Related: rhbz#1252590
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-install-ccpp-hook.in | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in
|
||||
index 13832ab..707c57d 100755
|
||||
--- a/src/hooks/abrt-install-ccpp-hook.in
|
||||
+++ b/src/hooks/abrt-install-ccpp-hook.in
|
||||
@@ -11,9 +11,9 @@ SAVED_PATTERN_DIR="@VAR_RUN@/abrt"
|
||||
SAVED_PATTERN_FILE="@VAR_RUN@/abrt/saved_core_pattern"
|
||||
HOOK_BIN="@libexecdir@/abrt-hook-ccpp"
|
||||
# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
||||
-PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %i"
|
||||
+PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %I"
|
||||
# Same, but with bogus "executable name" parameter
|
||||
-PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %i"
|
||||
+PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %I"
|
||||
|
||||
# core_pipe_limit specifies how many dump_helpers can run at the same time
|
||||
# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
||||
--
|
||||
2.4.3
|
||||
|
||||
31
0016-a-a-s-p-d-add-bash-on-the-package-blacklist.patch
Normal file
31
0016-a-a-s-p-d-add-bash-on-the-package-blacklist.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
From fba54d523b5047cef9f14cdc174fa914f0731c2b Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Thu, 20 Aug 2015 09:40:59 +0200
|
||||
Subject: [PATCH] a-a-s-p-d: add bash on the package blacklist
|
||||
|
||||
In case of this package, the reported data doesn't yield sufficient information
|
||||
to solve a bug.
|
||||
|
||||
Related to rhbz#1250379
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
||||
index 27b9607..0129399 100644
|
||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
||||
@@ -7,7 +7,7 @@ OpenGPGCheck = yes
|
||||
|
||||
# Blacklisted packages
|
||||
#
|
||||
-BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox
|
||||
+BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox, bash
|
||||
|
||||
# Process crashes in executables which do not belong to any package?
|
||||
#
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
From c0440e41e6739f26df540aed167dc00c59eebeb0 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Thu, 20 Aug 2015 11:15:59 +0200
|
||||
Subject: [PATCH] cli: don't start reporting of not-reportable problems
|
||||
|
||||
If the reported problem data contains 'not-reportable' element, the
|
||||
reporting process fails unexpectedly and after the reporter already spent some
|
||||
time on it.
|
||||
|
||||
This commit ensures that the reporting process won't start, so
|
||||
abrt-cli's behaviour will be consistent with ABRT GUI.
|
||||
|
||||
However, this is not an ideal solution because we might want to allow
|
||||
the reporter to report the problem directly to developers via e-mail.
|
||||
|
||||
Closes #986
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/cli/report.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/src/cli/report.c b/src/cli/report.c
|
||||
index 19b4c51..cc4035e 100644
|
||||
--- a/src/cli/report.c
|
||||
+++ b/src/cli/report.c
|
||||
@@ -36,6 +36,15 @@ int _cmd_report(const char **dirs_strv, int remove)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ const int not_reportable = test_exist_over_dbus(real_problem_id, FILENAME_NOT_REPORTABLE);
|
||||
+ if (not_reportable != 0)
|
||||
+ {
|
||||
+ error_msg(_("Problem '%s' cannot be reported"), real_problem_id);
|
||||
+ free(real_problem_id);
|
||||
+ ++ret;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
const int res = chown_dir_over_dbus(real_problem_id);
|
||||
if (res != 0)
|
||||
{
|
||||
--
|
||||
2.5.0
|
||||
|
||||
317
0018-introduce-bodhi2-to-abrt-bodhi.patch
Normal file
317
0018-introduce-bodhi2-to-abrt-bodhi.patch
Normal file
|
|
@ -0,0 +1,317 @@
|
|||
From fe2db75f3c7fc37e4754241258e2c14c8d7d2826 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 25 Aug 2015 16:03:51 +0200
|
||||
Subject: [PATCH] introduce bodhi2 to abrt-bodhi
|
||||
|
||||
Resolves: rhbz#1256493
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
src/plugins/Makefile.am | 2 +
|
||||
src/plugins/bodhi.c | 197 +++++++++++++++++++++++++++---------------------
|
||||
3 files changed, 114 insertions(+), 86 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b372e12..1013e3b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -376,6 +376,7 @@ PKG_CHECK_MODULES([JSON_C], [json], [
|
||||
if test -z "$NO_BODHI"
|
||||
then
|
||||
PKG_CHECK_MODULES([LIBREPORT_WEB], [libreport-web])
|
||||
+PKG_CHECK_MODULES([HAWKEY], [hawkey])
|
||||
AM_CONDITIONAL(BUILD_BODHI, true)
|
||||
else
|
||||
AM_CONDITIONAL(BUILD_BODHI, false)
|
||||
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
||||
index aa426ff..1c1ff8a 100644
|
||||
--- a/src/plugins/Makefile.am
|
||||
+++ b/src/plugins/Makefile.am
|
||||
@@ -366,10 +366,12 @@ abrt_bodhi_SOURCES = \
|
||||
$(LIBREPORT_WEB_CFLAGS) \
|
||||
$(JSON_C_CFLAGS) \
|
||||
$(RPM_CFLAGS) \
|
||||
+ $(HAWKEY_CFLAGS) \
|
||||
-D_GNU_SOURCE
|
||||
abrt_bodhi_LDADD = \
|
||||
$(JSON_C_LIBS) \
|
||||
$(RPM_LIBS) \
|
||||
+ $(HAWKEY_LIBS) \
|
||||
$(LIBREPORT_LIBS) \
|
||||
$(LIBREPORT_WEB_LIBS)
|
||||
endif
|
||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
||||
index fcdbd83..831f5ff 100644
|
||||
--- a/src/plugins/bodhi.c
|
||||
+++ b/src/plugins/bodhi.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <rpm/rpmcli.h>
|
||||
#include <rpm/rpmdb.h>
|
||||
#include <rpm/rpmpgp.h>
|
||||
+#include <hawkey/util.h>
|
||||
|
||||
#include <libreport/internal_libreport.h>
|
||||
#include <libreport/libreport_curl.h>
|
||||
@@ -32,85 +33,103 @@
|
||||
/* bodhi returns json structure
|
||||
|
||||
{
|
||||
- "num_items":2,
|
||||
- "title":"2 updats found",
|
||||
- "tg_flash":null,
|
||||
- "updates":[
|
||||
- {
|
||||
- "status":"stable",
|
||||
- "close_bugs":true,
|
||||
- "request":null,
|
||||
- "date_submitted":"2011-03-18 17:25:14",
|
||||
- "unstable_karma":-3,
|
||||
- "submitter":"twaugh",
|
||||
- "critpath":false,
|
||||
- "approved":null,
|
||||
- "stable_karma":2,
|
||||
- "date_pushed":"2011-03-19 05:34:27",
|
||||
- "builds":[
|
||||
- {
|
||||
- "nvr":"system-config-printer-1.3.2-1.fc15",
|
||||
- "package":{
|
||||
- "suggest_reboot":false,
|
||||
- "committers":[
|
||||
- "twaugh",
|
||||
- "jpopelka"
|
||||
- ],
|
||||
- "name":"system-config-printer"
|
||||
- }
|
||||
- },
|
||||
- {
|
||||
- ....
|
||||
- }
|
||||
- ],
|
||||
- "title":"system-config-printer-1.3.2-1.fc15",
|
||||
- "notes":"This update fixes several bugs and re-enables translations that were accidentally disabled.",
|
||||
- "date_modified":null,
|
||||
- "nagged":null,
|
||||
- "bugs":[
|
||||
- {
|
||||
- "bz_id":685098,
|
||||
- "security":false,
|
||||
- "parent":false,
|
||||
- "title":"[abrt] system-config-printer-1.3.1-1.fc15: authconn.py:197:_connect:RuntimeError: failed to connect to server"
|
||||
- },
|
||||
- {
|
||||
- ...
|
||||
- }
|
||||
- ],
|
||||
- "comments":[
|
||||
- {
|
||||
- "group":null,
|
||||
- "karma":0,
|
||||
- "anonymous":false,
|
||||
- "author":"bodhi",
|
||||
- "timestamp":"2011-03-18 17:26:34",
|
||||
- "text":"This update has been submitted for testing by twaugh. "
|
||||
- },
|
||||
- {
|
||||
- ...
|
||||
- }
|
||||
- ],
|
||||
- "critpath_approved":false,
|
||||
- "updateid":"FEDORA-2011-3596",
|
||||
- "karma":0,
|
||||
- "release":{
|
||||
- "dist_tag":"dist-f15",
|
||||
- "id_prefix":"FEDORA",
|
||||
- "locked":false,
|
||||
- "name":"F15",
|
||||
- "long_name":"Fedora 15"
|
||||
- },
|
||||
- "type":"bugfix"
|
||||
- },
|
||||
- {
|
||||
- ...
|
||||
- }
|
||||
- ]
|
||||
+ "rows_per_page": 20,
|
||||
+ "total": 1,
|
||||
+ "chrome": true,
|
||||
+ "display_user": true,
|
||||
+ "pages": 1,
|
||||
+ "updates": [
|
||||
+ {
|
||||
+ "close_bugs": true,
|
||||
+ "old_updateid": "FEDORA-2015-13720",
|
||||
+ "pushed": true,
|
||||
+ "require_testcases": false,
|
||||
+ "critpath": false,
|
||||
+ "date_approved": null,
|
||||
+ "stable_karma": null,
|
||||
+ "date_pushed": "2015-08-19 04:49:00",
|
||||
+ "requirements": null,
|
||||
+ "severity": "unspecified",
|
||||
+ "title": "hwloc-1.11.0-3.fc22",
|
||||
+ "suggest": "unspecified",
|
||||
+ "require_bugs": false,
|
||||
+ "comments": [
|
||||
+ {
|
||||
+ "bug_feedback": [],
|
||||
+ "user_id": 91,
|
||||
+ "text": "This update has been submitted for testing by jhladky. ",
|
||||
+ "testcase_feedback": [],
|
||||
+ "karma_critpath": 0,
|
||||
+ "update": 21885,
|
||||
+ "update_id": 21885,
|
||||
+ "karma": 0,
|
||||
+ "anonymous": false,
|
||||
+ "timestamp": "2015-08-18 13:38:35",
|
||||
+ "id": 166016,
|
||||
+ "user": {"stacks": [],
|
||||
+ "name": "bodhi",
|
||||
+ "avatar": "https://apps.fedoraproject.org/img/icons/bodhi-24.png"}
|
||||
+ },
|
||||
+ {
|
||||
+ ...
|
||||
+ }
|
||||
+ ],
|
||||
+ "updateid": "FEDORA-2015-13720",
|
||||
+ "cves": [],
|
||||
+ "type": "bugfix",
|
||||
+ "status": "testing",
|
||||
+ "date_submitted": "2015-08-18 13:37:26",
|
||||
+ "unstable_karma": null,
|
||||
+ "submitter": "jhladky",
|
||||
+ "user":
|
||||
+ {
|
||||
+ "stacks": [],
|
||||
+ "buildroot_overrides": [],
|
||||
+ "name": "jhladky",
|
||||
+ "avatar": "https://seccdn.libravatar.org/avatar/b838b78fcf707a13cdaeb1c846d514e614d617cbf2c106718e71cb397607f59b?s=24&d=retro"
|
||||
+ },
|
||||
+ "locked": false,
|
||||
+ "builds": [{"override": null,
|
||||
+ "nvr": "hwloc-1.11.0-3.fc22"}],
|
||||
+ "date_modified": null,
|
||||
+ "test_cases": [],
|
||||
+ "notes": "Fix for BZ1253977",
|
||||
+ "request": null,
|
||||
+ "bugs": [
|
||||
+ {
|
||||
+ "bug_id": 1253977,
|
||||
+ "security": false,
|
||||
+ "feedback": [],
|
||||
+ "parent": false,
|
||||
+ "title": "conflict between hwloc-libs-1.11.0-1.fc22.i686 and hwloc-libs-1.11.0-1.fc22.x86_64"
|
||||
+ }
|
||||
+ ],
|
||||
+ "alias": "FEDORA-2015-13720",
|
||||
+ "karma": 0,
|
||||
+ "release":
|
||||
+ {
|
||||
+ "dist_tag": "f22",
|
||||
+ "name": "F22",
|
||||
+ "testing_tag": "f22-updates-testing",
|
||||
+ "pending_stable_tag": "f22-updates-pending",
|
||||
+ "long_name": "Fedora 22",
|
||||
+ "state": "current",
|
||||
+ "version": "22",
|
||||
+ "override_tag": "f22-override",
|
||||
+ "branch": "f22",
|
||||
+ "id_prefix": "FEDORA",
|
||||
+ "pending_testing_tag": "f22-updates-testing-pending",
|
||||
+ "stable_tag": "f22-updates",
|
||||
+ "candidate_tag": "f22-updates-candidate"
|
||||
+ }
|
||||
+ }
|
||||
+ ],
|
||||
+ "display_request": true,
|
||||
+ "page": 1
|
||||
}
|
||||
*/
|
||||
|
||||
-static const char *bodhi_url = "https://admin.fedoraproject.org/updates";
|
||||
+static const char *bodhi_url = "https://bodhi.fedoraproject.org/updates";
|
||||
|
||||
struct bodhi {
|
||||
char *nvr;
|
||||
@@ -202,7 +221,7 @@ static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
||||
{
|
||||
|
||||
int num_items = 0;
|
||||
- bodhi_read_value(json, "num_items", &num_items, BODHI_READ_INT);
|
||||
+ bodhi_read_value(json, "total", &num_items, BODHI_READ_INT);
|
||||
if (num_items <= 0)
|
||||
return NULL;
|
||||
|
||||
@@ -241,13 +260,19 @@ static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
||||
b = xzalloc(sizeof(struct bodhi));
|
||||
|
||||
char *name = NULL;
|
||||
+ long ign_e;
|
||||
+ char *ign_v, *ign_r, *ign_a;
|
||||
+
|
||||
json_object *build = json_object_array_get_idx(builds_item, k);
|
||||
|
||||
bodhi_read_value(build, "nvr", &b->nvr, BODHI_READ_STR);
|
||||
|
||||
- json_object *package = NULL;
|
||||
- bodhi_read_value(build, "package", &package, BODHI_READ_JSON_OBJ);
|
||||
- bodhi_read_value(package, "name", &name, BODHI_READ_STR);
|
||||
+ if (hy_split_nevra(b->nvr, &name, &ign_e, &ign_v, &ign_r, &ign_a))
|
||||
+ error_msg_and_die("hawkey failed to parse '%s'", b->nvr);
|
||||
+
|
||||
+ free(ign_v);
|
||||
+ free(ign_r);
|
||||
+ free(ign_a);
|
||||
|
||||
struct bodhi *bodhi_tbl_item = g_hash_table_lookup(bodhi_table, name);
|
||||
if (bodhi_tbl_item && rpmvercmp(bodhi_tbl_item->nvr, b->nvr) > 0)
|
||||
@@ -287,7 +312,7 @@ static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
||||
|
||||
static GHashTable *bodhi_query_list(const char *query, const char *release)
|
||||
{
|
||||
- char *bodhi_url_bugs = xasprintf("%s/list", bodhi_url);
|
||||
+ char *bodhi_url_bugs = xasprintf("%s/?%s", bodhi_url, query);
|
||||
|
||||
post_state_t *post_state = new_post_state(POST_WANT_BODY
|
||||
| POST_WANT_SSL_VERIFY
|
||||
@@ -298,8 +323,8 @@ static GHashTable *bodhi_query_list(const char *query, const char *release)
|
||||
NULL
|
||||
};
|
||||
|
||||
- post_string(post_state, bodhi_url_bugs, "application/x-www-form-urlencoded",
|
||||
- headers, query);
|
||||
+ get(post_state, bodhi_url_bugs, "application/x-www-form-urlencoded",
|
||||
+ headers);
|
||||
|
||||
if (post_state->http_resp_code != 200)
|
||||
{
|
||||
@@ -397,7 +422,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
if (release)
|
||||
{
|
||||
- query = strbuf_append_strf(query, "release=%s&", release);
|
||||
+ query = strbuf_append_strf(query, "releases=%s&", release);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -414,7 +439,7 @@ int main(int argc, char **argv)
|
||||
map_string_t *osinfo = new_map_string();
|
||||
problem_data_get_osinfo(problem_data, osinfo);
|
||||
parse_osinfo_for_rhts(osinfo, &product, &version);
|
||||
- query = strbuf_append_strf(query, "release=f%s&", version);
|
||||
+ query = strbuf_append_strf(query, "releases=f%s&", version);
|
||||
free(product);
|
||||
free(version);
|
||||
free_map_string(osinfo);
|
||||
@@ -424,7 +449,7 @@ int main(int argc, char **argv)
|
||||
if (argv[optind])
|
||||
{
|
||||
char *escaped = g_uri_escape_string(argv[optind], NULL, 0);
|
||||
- query = strbuf_append_strf(query, "package=%s&", escaped);
|
||||
+ query = strbuf_append_strf(query, "packages=%s&", escaped);
|
||||
free(escaped);
|
||||
}
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
||||
28
0020-ccpp-do-not-break-the-reporting-if-a-bodhi-fails.patch
Normal file
28
0020-ccpp-do-not-break-the-reporting-if-a-bodhi-fails.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
From 5bdcc2f09aa22180b4ce072f1ec1d65e86eafbab Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 26 Aug 2015 08:28:07 +0200
|
||||
Subject: [PATCH] ccpp: do not break the reporting if a-bodhi fails
|
||||
|
||||
Related: rhbz#1256493
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-action-analyze-ccpp-local.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-analyze-ccpp-local.in b/src/plugins/abrt-action-analyze-ccpp-local.in
|
||||
index de131c8..5a42a03 100644
|
||||
--- a/src/plugins/abrt-action-analyze-ccpp-local.in
|
||||
+++ b/src/plugins/abrt-action-analyze-ccpp-local.in
|
||||
@@ -39,7 +39,7 @@ if [ $? = 0 ]; then
|
||||
bug_id=$(reporter-bugzilla -h "`cat duphash`")
|
||||
if $WITH_BODHI; then
|
||||
if test -n "$bug_id"; then
|
||||
- abrt-bodhi -r -b $bug_id
|
||||
+ abrt-bodhi -r -b $bug_id || :
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
--
|
||||
2.5.0
|
||||
|
||||
53
0021-bodhi-add-ignoring-of-Rawhide.patch
Normal file
53
0021-bodhi-add-ignoring-of-Rawhide.patch
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
From 6171adb8111747550e5093cd673e2f254ec1b7c9 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Wed, 26 Aug 2015 13:18:26 +0200
|
||||
Subject: [PATCH] bodhi: add ignoring of Rawhide
|
||||
|
||||
Resolves: rhbz#1256493
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/bodhi.c | 17 ++++++++++++++++-
|
||||
1 file changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
||||
index 831f5ff..9149347 100644
|
||||
--- a/src/plugins/bodhi.c
|
||||
+++ b/src/plugins/bodhi.c
|
||||
@@ -422,6 +422,10 @@ int main(int argc, char **argv)
|
||||
{
|
||||
if (release)
|
||||
{
|
||||
+ /* There are no bodhi updates for Rawhide */
|
||||
+ if (strcasecmp(release, "rawhide") == 0)
|
||||
+ error_msg_and_die("Reselase \"%s\" is not supported",release);
|
||||
+
|
||||
query = strbuf_append_strf(query, "releases=%s&", release);
|
||||
}
|
||||
else
|
||||
@@ -439,10 +443,21 @@ int main(int argc, char **argv)
|
||||
map_string_t *osinfo = new_map_string();
|
||||
problem_data_get_osinfo(problem_data, osinfo);
|
||||
parse_osinfo_for_rhts(osinfo, &product, &version);
|
||||
- query = strbuf_append_strf(query, "releases=f%s&", version);
|
||||
+
|
||||
+ /* There are no bodhi updates for Rawhide */
|
||||
+ bool rawhide = strcasecmp(release, "rawhide") == 0;
|
||||
+ if (!rawhide)
|
||||
+ query = strbuf_append_strf(query, "releases=f%s&", version);
|
||||
+
|
||||
free(product);
|
||||
free(version);
|
||||
free_map_string(osinfo);
|
||||
+
|
||||
+ if (rawhide)
|
||||
+ {
|
||||
+ strbuf_free(query);
|
||||
+ error_msg_and_die("Reselase \"Rawhide\" is not supported");
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -1,158 +0,0 @@
|
|||
From 2e74ca0f15d6d25568f5af1cc9cd30b4b01aa849 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 14 Oct 2014 03:15:28 +0200
|
||||
Subject: [PATCH] journal-oops: use the length result of sd_journal_get_data()
|
||||
|
||||
journald doesn't guarantee NULL terminated strings returned from
|
||||
sd_journal_get_data(). It usually works but not always.
|
||||
|
||||
This patch fixes the issue by using the length of field data instead of
|
||||
assuming that string is NULL terminated.
|
||||
|
||||
Resolves: #1141549
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-dump-journal-oops.c | 13 ++++++-----
|
||||
src/plugins/abrt-journal.c | 43 ++++++++++++++++++++++--------------
|
||||
src/plugins/abrt-journal.h | 8 ++++---
|
||||
3 files changed, 40 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-dump-journal-oops.c b/src/plugins/abrt-dump-journal-oops.c
|
||||
index 3f1f419..0ff9fe0 100644
|
||||
--- a/src/plugins/abrt-dump-journal-oops.c
|
||||
+++ b/src/plugins/abrt-dump-journal-oops.c
|
||||
@@ -38,8 +38,8 @@ static GList* abrt_journal_extract_kernel_oops(abrt_journal_t *journal)
|
||||
|
||||
do
|
||||
{
|
||||
- const char *line = NULL;
|
||||
- if (abrt_journal_get_log_line(journal, &line) < 0)
|
||||
+ char *line = abrt_journal_get_log_line(journal);
|
||||
+ if (line == NULL)
|
||||
error_msg_and_die(_("Cannot read journal data."));
|
||||
|
||||
if (lines_info_count == lines_info_size)
|
||||
@@ -48,10 +48,13 @@ static GList* abrt_journal_extract_kernel_oops(abrt_journal_t *journal)
|
||||
lines_info = xrealloc(lines_info, lines_info_size * sizeof(lines_info[0]));
|
||||
}
|
||||
|
||||
- lines_info[lines_info_count].level = koops_line_skip_level(&line);
|
||||
- koops_line_skip_jiffies(&line);
|
||||
+ char *orig_line = line;
|
||||
+ lines_info[lines_info_count].level = koops_line_skip_level((const char **)&line);
|
||||
+ koops_line_skip_jiffies((const char **)&line);
|
||||
|
||||
- lines_info[lines_info_count].ptr = xstrdup(line);
|
||||
+ memmove(orig_line, line, strlen(line) + 1);
|
||||
+
|
||||
+ lines_info[lines_info_count].ptr = orig_line;
|
||||
|
||||
++lines_info_count;
|
||||
}
|
||||
diff --git a/src/plugins/abrt-journal.c b/src/plugins/abrt-journal.c
|
||||
index 89c8393..e0ae159 100644
|
||||
--- a/src/plugins/abrt-journal.c
|
||||
+++ b/src/plugins/abrt-journal.c
|
||||
@@ -23,6 +23,12 @@
|
||||
|
||||
#include <systemd/sd-journal.h>
|
||||
|
||||
+/*
|
||||
+ * http://www.freedesktop.org/software/systemd/man/sd_journal_get_data.html
|
||||
+ * sd_journal_set_data_threshold() : This threshold defaults to 64K by default.
|
||||
+ */
|
||||
+#define JOURNALD_MAX_FIELD_SIZE (64*1024)
|
||||
+
|
||||
|
||||
struct abrt_journal
|
||||
{
|
||||
@@ -84,33 +90,38 @@ int abrt_journal_get_field(abrt_journal_t *journal, const char *field, const voi
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int abrt_journal_get_string_field(abrt_journal_t *journal, const char *field, const char **value)
|
||||
+char *abrt_journal_get_string_field(abrt_journal_t *journal, const char *field, char *value)
|
||||
{
|
||||
- size_t value_len;
|
||||
- const int r = abrt_journal_get_field(journal, field, (const void **)value, &value_len);
|
||||
+ size_t data_len;
|
||||
+ const char *data;
|
||||
+ const int r = abrt_journal_get_field(journal, field, (const void **)&data, &data_len);
|
||||
if (r < 0)
|
||||
{
|
||||
- return r;
|
||||
+ log_notice("Cannot read journal data");
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
const size_t pfx_len = strlen(field) + 1;
|
||||
- if (value_len < pfx_len)
|
||||
+ if (data_len < pfx_len)
|
||||
{
|
||||
error_msg("Invalid data format from journal: field data are not prefixed with field name");
|
||||
- return -EBADMSG;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
- *value += pfx_len;
|
||||
- return 0;
|
||||
+ const size_t len = data_len - pfx_len;
|
||||
+ if (value == NULL)
|
||||
+ return xstrndup(data + pfx_len, len);
|
||||
+ /*else*/
|
||||
+
|
||||
+ strncpy(value, data + pfx_len, len);
|
||||
+ /* journal data are not NULL terminated strings, so terminate the string */
|
||||
+ value[len] = '\0';
|
||||
+ return value;
|
||||
}
|
||||
|
||||
-int abrt_journal_get_log_line(abrt_journal_t *journal, const char **line)
|
||||
+char *abrt_journal_get_log_line(abrt_journal_t *journal)
|
||||
{
|
||||
- const int r = abrt_journal_get_string_field(journal, "MESSAGE", line);
|
||||
- if (r < 0)
|
||||
- log_notice("Cannot read journal data. Exiting");
|
||||
-
|
||||
- return r;
|
||||
+ return abrt_journal_get_string_field(journal, "MESSAGE", NULL);
|
||||
}
|
||||
|
||||
int abrt_journal_get_cursor(abrt_journal_t *journal, char **cursor)
|
||||
@@ -272,9 +283,9 @@ void abrt_journal_watch_notify_strings(abrt_journal_watch_t *watch, void *data)
|
||||
{
|
||||
struct abrt_journal_watch_notify_strings *conf = (struct abrt_journal_watch_notify_strings *)data;
|
||||
|
||||
- const char *message = NULL;
|
||||
+ char message[JOURNALD_MAX_FIELD_SIZE + 1];
|
||||
|
||||
- if (abrt_journal_get_string_field(abrt_journal_watch_get_journal(watch), "MESSAGE", &message) < 0)
|
||||
+ if (abrt_journal_get_string_field(abrt_journal_watch_get_journal(watch), "MESSAGE", (char *)message) == NULL)
|
||||
error_msg_and_die("Cannot read journal data.");
|
||||
|
||||
GList *cur = conf->strings;
|
||||
diff --git a/src/plugins/abrt-journal.h b/src/plugins/abrt-journal.h
|
||||
index 219cf60..d509d96 100644
|
||||
--- a/src/plugins/abrt-journal.h
|
||||
+++ b/src/plugins/abrt-journal.h
|
||||
@@ -40,11 +40,13 @@ int abrt_journal_get_field(abrt_journal_t *journal,
|
||||
const void **value,
|
||||
size_t *value_len);
|
||||
|
||||
-int abrt_journal_get_string_field(abrt_journal_t *journal,
|
||||
+/* Returns allocated memory if value is NULL; otherwise makes copy of journald
|
||||
+ * field to memory pointed by value arg. */
|
||||
+char *abrt_journal_get_string_field(abrt_journal_t *journal,
|
||||
const char *field,
|
||||
- const char **value);
|
||||
+ char *value);
|
||||
|
||||
-int abrt_journal_get_log_line(abrt_journal_t *journal, const char **line);
|
||||
+char *abrt_journal_get_log_line(abrt_journal_t *journal);
|
||||
|
||||
int abrt_journal_get_cursor(abrt_journal_t *journal, char **cursor);
|
||||
|
||||
--
|
||||
2.1.0
|
||||
|
||||
110
0022-bodhi-add-parsing-of-error-responses.patch
Normal file
110
0022-bodhi-add-parsing-of-error-responses.patch
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
From 167ebb0a8930dcd19c4078773da8c580785053d9 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Wed, 26 Aug 2015 13:41:27 +0200
|
||||
Subject: [PATCH] bodhi: add parsing of error responses
|
||||
|
||||
Resolves: rhbz#1256493
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/bodhi.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 69 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
||||
index 9149347..b348a26 100644
|
||||
--- a/src/plugins/bodhi.c
|
||||
+++ b/src/plugins/bodhi.c
|
||||
@@ -217,6 +217,58 @@ static void print_bodhi(struct bodhi *b)
|
||||
}
|
||||
#endif
|
||||
|
||||
+/* bodhi returns following json structure in case of error
|
||||
+{
|
||||
+ "status": "error",
|
||||
+ "errors":
|
||||
+ [
|
||||
+ {
|
||||
+ "location": "querystring",
|
||||
+ "name": "releases",
|
||||
+ "description": "Invalid releases specified: Rawhide"
|
||||
+ }
|
||||
+ ]
|
||||
+}
|
||||
+*/
|
||||
+static void bodhi_print_errors_from_json(json_object *json)
|
||||
+{
|
||||
+
|
||||
+ json_object *errors_array = NULL;
|
||||
+ bodhi_read_value(json, "errors", &errors_array, BODHI_READ_JSON_OBJ);
|
||||
+ if (!errors_array)
|
||||
+ {
|
||||
+ error_msg("Error: unable to read 'errors' array from json");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ int errors_len = json_object_array_length(errors_array);
|
||||
+ for (int i = 0; i < errors_len; ++i)
|
||||
+ {
|
||||
+ json_object *error = json_object_array_get_idx(errors_array, i);
|
||||
+ if (!error)
|
||||
+ {
|
||||
+ error_msg("Error: unable to get 'error[%d]'", i);
|
||||
+ json_object_put(errors_array);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ char *desc_item = NULL;
|
||||
+ bodhi_read_value(error, "description", &desc_item, BODHI_READ_STR);
|
||||
+ if (!desc_item)
|
||||
+ {
|
||||
+ error_msg("Error: unable to get 'description' from 'error[%d]'", i);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ error_msg("Error: %s", desc_item);
|
||||
+ json_object_put(error);
|
||||
+ free(desc_item);
|
||||
+ }
|
||||
+
|
||||
+ json_object_put(errors_array);
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
static GHashTable *bodhi_parse_json(json_object *json, const char *release)
|
||||
{
|
||||
|
||||
@@ -326,7 +378,7 @@ static GHashTable *bodhi_query_list(const char *query, const char *release)
|
||||
get(post_state, bodhi_url_bugs, "application/x-www-form-urlencoded",
|
||||
headers);
|
||||
|
||||
- if (post_state->http_resp_code != 200)
|
||||
+ if (post_state->http_resp_code != 200 && post_state->http_resp_code != 400)
|
||||
{
|
||||
char *errmsg = post_state->curl_error_msg;
|
||||
if (errmsg && errmsg[0])
|
||||
@@ -340,6 +392,22 @@ static GHashTable *bodhi_query_list(const char *query, const char *release)
|
||||
if (is_error(json))
|
||||
error_msg_and_die("fatal: unable parse response from bodhi server");
|
||||
|
||||
+ /* we must check the http_resp_code because only error responses contain
|
||||
+ * 'status' item. 'bodhi_read_value' function prints an error message in
|
||||
+ * the case it did not found the item */
|
||||
+ if (post_state->http_resp_code != 200)
|
||||
+ {
|
||||
+ char *status_item = NULL;
|
||||
+ bodhi_read_value(json, "status", &status_item, BODHI_READ_STR);
|
||||
+ if (status_item != NULL && strcmp(status_item, "error") == 0)
|
||||
+ {
|
||||
+ free(status_item);
|
||||
+ bodhi_print_errors_from_json(json);
|
||||
+ json_object_put(json);
|
||||
+ xfunc_die(); // error_msg are printed in bodhi_print_errors_from_json
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
GHashTable *bodhi_table = bodhi_parse_json(json, release);
|
||||
json_object_put(json);
|
||||
free_post_state(post_state);
|
||||
--
|
||||
2.5.0
|
||||
|
||||
41
0023-doc-actualize-the-abrt-bodhi-man-page.patch
Normal file
41
0023-doc-actualize-the-abrt-bodhi-man-page.patch
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
From e47863d42f78ddcd404561e21c4c75e6d2feb99e Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Wed, 2 Sep 2015 12:29:31 +0200
|
||||
Subject: [PATCH] doc: actualize the abrt-bodhi man page
|
||||
|
||||
Parameters -d and -u were not in the man page.
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
doc/abrt-bodhi.txt | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/doc/abrt-bodhi.txt b/doc/abrt-bodhi.txt
|
||||
index 945a4a9..fe790d6 100644
|
||||
--- a/doc/abrt-bodhi.txt
|
||||
+++ b/doc/abrt-bodhi.txt
|
||||
@@ -7,7 +7,7 @@ abrt-bodhi - The ABRT bodhi client.
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
-'abrt-bodhi' [-v] [-r[RELEASE]] (-b ID1[,ID2,...] | PKG-NAME) [PKG-NAME]...
|
||||
+'abrt-bodhi' [-v] [-r[RELEASE]] [-u URL] [-d DIR] (-b ID1[,ID2,...] | PKG-NAME) [PKG-NAME]...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@@ -25,6 +25,12 @@ OPTIONS
|
||||
-b, --bugs ID1,ID2,..
|
||||
Specify any number of Bugzilla IDs (--bugs=1234,5678)
|
||||
|
||||
+-d, --problem-dir DIR::
|
||||
+ Path to problem directory
|
||||
+
|
||||
+-u, --url URL::
|
||||
+ Specify a bodhi server url
|
||||
+
|
||||
AUTHORS
|
||||
-------
|
||||
* ABRT team
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
From 66a27fb723e0930d30ea319484817b3f5ee364dc Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Mon, 7 Sep 2015 10:23:30 +0200
|
||||
Subject: [PATCH] bodhi: fix a segfault when testing an os-release opt for
|
||||
'rawhide'
|
||||
|
||||
Resolves: rhbz#1260259
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/bodhi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
||||
index b348a26..bbd88f7 100644
|
||||
--- a/src/plugins/bodhi.c
|
||||
+++ b/src/plugins/bodhi.c
|
||||
@@ -513,7 +513,7 @@ int main(int argc, char **argv)
|
||||
parse_osinfo_for_rhts(osinfo, &product, &version);
|
||||
|
||||
/* There are no bodhi updates for Rawhide */
|
||||
- bool rawhide = strcasecmp(release, "rawhide") == 0;
|
||||
+ bool rawhide = strcasecmp(version, "rawhide") == 0;
|
||||
if (!rawhide)
|
||||
query = strbuf_append_strf(query, "releases=f%s&", version);
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
From 105aab5e018efa7d68e06ff648d0dc9e434e20d2 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 15 Oct 2014 13:33:51 +0200
|
||||
Subject: [PATCH] make ABRT quieter
|
||||
|
||||
Related: #1048384, #1147664
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrtd.c | 7 +++++--
|
||||
src/hooks/abrt-hook-ccpp.c | 10 +++++-----
|
||||
src/plugins/abrt-action-generate-core-backtrace.c | 2 +-
|
||||
3 files changed, 11 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
|
||||
index b8426dd..cce49eb 100644
|
||||
--- a/src/daemon/abrtd.c
|
||||
+++ b/src/daemon/abrtd.c
|
||||
@@ -626,7 +626,7 @@ int main(int argc, char** argv)
|
||||
s_signal_pipe_write = s_signal_pipe[1];
|
||||
|
||||
/* Enter the event loop */
|
||||
- log("Init complete, entering main loop");
|
||||
+ log_debug("Init complete, entering main loop");
|
||||
run_main_loop(pMainloop);
|
||||
|
||||
cleanup:
|
||||
@@ -652,7 +652,10 @@ int main(int argc, char** argv)
|
||||
/* Exiting */
|
||||
if (s_sig_caught && s_sig_caught != SIGALRM && s_sig_caught != SIGCHLD)
|
||||
{
|
||||
- error_msg("Got signal %d, exiting", s_sig_caught);
|
||||
+ /* We use TERM to stop abrtd, so not printing out error message. */
|
||||
+ if (s_sig_caught != SIGTERM)
|
||||
+ error_msg("Got signal %d, exiting", s_sig_caught);
|
||||
+
|
||||
signal(s_sig_caught, SIG_DFL);
|
||||
raise(s_sig_caught);
|
||||
}
|
||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
||||
index 8e141d4..6f471e9 100644
|
||||
--- a/src/hooks/abrt-hook-ccpp.c
|
||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
||||
@@ -184,13 +184,13 @@ static char* get_executable(pid_t pid, int *fd_p)
|
||||
if (deleted > executable && strcmp(deleted, " (deleted)") == 0)
|
||||
{
|
||||
*deleted = '\0';
|
||||
- log("File '%s' seems to be deleted", executable);
|
||||
+ log_info("File '%s' seems to be deleted", executable);
|
||||
}
|
||||
/* find and cut off prelink suffixes from the path */
|
||||
char *prelink = executable + strlen(executable) - strlen(".#prelink#.XXXXXX");
|
||||
if (prelink > executable && strncmp(prelink, ".#prelink#.", strlen(".#prelink#.")) == 0)
|
||||
{
|
||||
- log("File '%s' seems to be a prelink temporary file", executable);
|
||||
+ log_info("File '%s' seems to be a prelink temporary file", executable);
|
||||
*prelink = '\0';
|
||||
}
|
||||
return executable;
|
||||
@@ -649,7 +649,7 @@ int main(int argc, char** argv)
|
||||
* but it does not log file name */
|
||||
error_msg_and_die("Error saving '%s'", path);
|
||||
}
|
||||
- log("Saved core dump of pid %lu (%s) to %s (%llu bytes)", (long)pid, executable, path, (long long)core_size);
|
||||
+ log_notice("Saved core dump of pid %lu (%s) to %s (%llu bytes)", (long)pid, executable, path, (long long)core_size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -836,7 +836,7 @@ int main(int argc, char** argv)
|
||||
strcpy(path, newpath);
|
||||
free(newpath);
|
||||
|
||||
- log("Saved core dump of pid %lu (%s) to %s (%llu bytes)", (long)pid, executable, path, (long long)core_size);
|
||||
+ log_notice("Saved core dump of pid %lu (%s) to %s (%llu bytes)", (long)pid, executable, path, (long long)core_size);
|
||||
|
||||
notify_new_path(path);
|
||||
|
||||
@@ -874,7 +874,7 @@ int main(int argc, char** argv)
|
||||
unlink(core_basename);
|
||||
return 1;
|
||||
}
|
||||
- log("Saved core dump of pid %lu to %s (%llu bytes)", (long)pid, full_core_basename, (long long)core_size);
|
||||
+ log_notice("Saved core dump of pid %lu to %s (%llu bytes)", (long)pid, full_core_basename, (long long)core_size);
|
||||
}
|
||||
|
||||
return 0;
|
||||
diff --git a/src/plugins/abrt-action-generate-core-backtrace.c b/src/plugins/abrt-action-generate-core-backtrace.c
|
||||
index a992a5b..791af83 100644
|
||||
--- a/src/plugins/abrt-action-generate-core-backtrace.c
|
||||
+++ b/src/plugins/abrt-action-generate-core-backtrace.c
|
||||
@@ -61,7 +61,7 @@ int main(int argc, char **argv)
|
||||
sr_debug_parser = true;
|
||||
|
||||
/* Let user know what's going on */
|
||||
- log(_("Generating core_backtrace"));
|
||||
+ log_notice(_("Generating core_backtrace"));
|
||||
|
||||
char *error_message = NULL;
|
||||
bool success;
|
||||
--
|
||||
2.1.0
|
||||
|
||||
39
0025-bodhi-fix-typo-in-error-messages.patch
Normal file
39
0025-bodhi-fix-typo-in-error-messages.patch
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
From 288c3de2a74f82972e35465fb82227cd7bfc5766 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Mon, 21 Sep 2015 10:11:22 +0200
|
||||
Subject: [PATCH] bodhi: fix typo in error messages
|
||||
|
||||
"Reselase" -> "Release"
|
||||
|
||||
Related to rhbz#1264591
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/bodhi.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/bodhi.c b/src/plugins/bodhi.c
|
||||
index bbd88f7..809d398 100644
|
||||
--- a/src/plugins/bodhi.c
|
||||
+++ b/src/plugins/bodhi.c
|
||||
@@ -492,7 +492,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
/* There are no bodhi updates for Rawhide */
|
||||
if (strcasecmp(release, "rawhide") == 0)
|
||||
- error_msg_and_die("Reselase \"%s\" is not supported",release);
|
||||
+ error_msg_and_die("Release \"%s\" is not supported",release);
|
||||
|
||||
query = strbuf_append_strf(query, "releases=%s&", release);
|
||||
}
|
||||
@@ -524,7 +524,7 @@ int main(int argc, char **argv)
|
||||
if (rawhide)
|
||||
{
|
||||
strbuf_free(query);
|
||||
- error_msg_and_die("Reselase \"Rawhide\" is not supported");
|
||||
+ error_msg_and_die("Release \"Rawhide\" is not supported");
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
2.5.0
|
||||
|
||||
109
0026-abrt-dump-xorg-support-Xorg-log-backtraces-prefixed-.patch
Normal file
109
0026-abrt-dump-xorg-support-Xorg-log-backtraces-prefixed-.patch
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
From edf897e2d62e6cb290b314e41a471894e2a2ca8f Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Thu, 24 Sep 2015 10:30:47 +0200
|
||||
Subject: [PATCH] abrt-dump-xorg: support Xorg log backtraces prefixed by (EE)
|
||||
|
||||
The backtraces looks like
|
||||
[ 60244.259] (EE) Backtrace
|
||||
[ 60244.262] (EE) 0: /usr/libexec/Xorg (OsLookupColor+0x139) [0x59add9]
|
||||
[ 60244.264] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f61be425b1f]
|
||||
...
|
||||
[ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
||||
[ 60244.273] (EE)
|
||||
[ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
||||
|
||||
This format of Xorg log files was not supported by abrt-dump-xorg tool.
|
||||
|
||||
Related to rhbz#1264739
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-dump-xorg.c | 57 +++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 38 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-dump-xorg.c b/src/plugins/abrt-dump-xorg.c
|
||||
index 4aaff11..6cdfc95 100644
|
||||
--- a/src/plugins/abrt-dump-xorg.c
|
||||
+++ b/src/plugins/abrt-dump-xorg.c
|
||||
@@ -51,8 +51,19 @@ static char *skip_pfx(char *p)
|
||||
char *q = strchr(p, ']');
|
||||
if (!q)
|
||||
return p;
|
||||
+
|
||||
if (q[1] == ' ')
|
||||
- return q + 2;
|
||||
+ {
|
||||
+ q += 2;
|
||||
+ /* if there is (EE), ignore it */
|
||||
+ if (strncmp(q, "(EE)", 4) == 0)
|
||||
+ {
|
||||
+ /* if ' ' follows (EE), ignore it too */
|
||||
+ return q + (4 + (q[4] == ' '));
|
||||
+ }
|
||||
+
|
||||
+ return q;
|
||||
+ }
|
||||
return p;
|
||||
}
|
||||
|
||||
@@ -114,24 +125,24 @@ static void save_bt_to_dump_dir(const char *bt, const char *exe, const char *rea
|
||||
/* Called after "Backtrace:" line was read.
|
||||
* Example (yes, stray newline before 'B' is real):
|
||||
[ 86985.879]<space>
|
||||
-Backtrace:
|
||||
-[ 86985.880] 0: /usr/bin/Xorg (xorg_backtrace+0x2f) [0x462d8f]
|
||||
-[ 86985.880] 1: /usr/bin/Xorg (0x400000+0x67b56) [0x467b56]
|
||||
-[ 86985.880] 2: /lib64/libpthread.so.0 (0x30a5800000+0xf4f0) [0x30a580f4f0]
|
||||
-[ 86985.880] 3: /usr/lib64/xorg/modules/extensions/librecord.so (0x7ff6c225e000+0x26c3) [0x7ff6c22606c3]
|
||||
-[ 86985.880] 4: /usr/bin/Xorg (_CallCallbacks+0x3c) [0x43820c]
|
||||
-[ 86985.880] 5: /usr/bin/Xorg (WriteToClient+0x1f5) [0x466315]
|
||||
-[ 86985.880] 6: /usr/lib64/xorg/modules/extensions/libdri2.so (ProcDRI2WaitMSCReply+0x4f) [0x7ff6c1e4feef]
|
||||
-[ 86985.880] 7: /usr/lib64/xorg/modules/extensions/libdri2.so (DRI2WaitMSCComplete+0x52) [0x7ff6c1e4e6d2]
|
||||
-[ 86985.880] 8: /usr/lib64/xorg/modules/drivers/intel_drv.so (0x7ff6c1bfb000+0x25ae4) [0x7ff6c1c20ae4]
|
||||
-[ 86985.880] 9: /usr/lib64/libdrm.so.2 (drmHandleEvent+0xa3) [0x376b407513]
|
||||
-[ 86985.880] 10: /usr/bin/Xorg (WakeupHandler+0x6b) [0x4379db]
|
||||
-[ 86985.880] 11: /usr/bin/Xorg (WaitForSomething+0x1a9) [0x460289]
|
||||
-[ 86985.880] 12: /usr/bin/Xorg (0x400000+0x3379a) [0x43379a]
|
||||
-[ 86985.880] 13: /usr/bin/Xorg (0x400000+0x22dc5) [0x422dc5]
|
||||
-[ 86985.880] 14: /lib64/libc.so.6 (__libc_start_main+0xed) [0x30a542169d]
|
||||
-[ 86985.880] 15: /usr/bin/Xorg (0x400000+0x230b1) [0x4230b1]
|
||||
-[ 86985.880] Segmentation fault at address 0x7ff6bf09e010
|
||||
+[ 60244.259] (EE) Backtrace:
|
||||
+[ 60244.262] (EE) 0: /usr/libexec/Xorg (OsLookupColor+0x139) [0x59add9]
|
||||
+[ 60244.264] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f61be425b1f]
|
||||
+[ 60244.266] (EE) 2: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0xa9fc) [0x7f61b903116c]
|
||||
+[ 60244.267] (EE) 3: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0xbe27) [0x7f61b90339a7]
|
||||
+[ 60244.268] (EE) 4: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x31060) [0x7f61b907db00]
|
||||
+[ 60244.269] (EE) 5: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x3fb73) [0x7f61b909b0c3]
|
||||
+[ 60244.270] (EE) 6: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x3fe1a) [0x7f61b909b77a]
|
||||
+[ 60244.270] (EE) 7: /usr/libexec/Xorg (DamageRegionAppend+0x3783) [0x525003]
|
||||
+[ 60244.270] (EE) 8: /usr/libexec/Xorg (SendGraphicsExpose+0xeb3) [0x4340b3]
|
||||
+[ 60244.270] (EE) 9: /usr/libexec/Xorg (SendErrorToClient+0x2df) [0x43684f]
|
||||
+[ 60244.271] (EE) 10: /usr/libexec/Xorg (remove_fs_handlers+0x453) [0x43a893]
|
||||
+[ 60244.272] (EE) 11: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f61be411580]
|
||||
+[ 60244.272] (EE) 12: /usr/libexec/Xorg (_start+0x29) [0x424b79]
|
||||
+[ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
||||
+[ 60244.273] (EE)
|
||||
+[ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
||||
+[ 60244.273] (EE)
|
||||
*/
|
||||
static void process_xorg_bt(void)
|
||||
{
|
||||
@@ -144,6 +155,14 @@ static void process_xorg_bt(void)
|
||||
{
|
||||
char *p = skip_pfx(line);
|
||||
|
||||
+ /* ignore empty lines
|
||||
+ * [ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
||||
+ * [ 60244.273] (EE) <---
|
||||
+ * [ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
||||
+ */
|
||||
+ if (*p == '\0')
|
||||
+ continue;
|
||||
+
|
||||
/* xorg-server-1.12.0/os/osinit.c:
|
||||
* if (sip->si_code == SI_USER) {
|
||||
* ErrorF("Recieved signal %d sent by process %ld, uid %ld\n",
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -1,128 +0,0 @@
|
|||
From 0a0f129a6622fd7099de8cec6a1d95a4189a91d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 21 Oct 2014 14:57:10 +0200
|
||||
Subject: [PATCH] applet: ensure writable dump directory before reporting
|
||||
|
||||
Related to rhbz#1084027
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/applet/applet.c | 62 ++++++++++++++++++++++++++++++++++-------------------
|
||||
1 file changed, 40 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/src/applet/applet.c b/src/applet/applet.c
|
||||
index 90c5b0d..644da60 100644
|
||||
--- a/src/applet/applet.c
|
||||
+++ b/src/applet/applet.c
|
||||
@@ -307,6 +307,7 @@ typedef struct problem_info {
|
||||
bool incomplete;
|
||||
bool reported;
|
||||
bool was_announced;
|
||||
+ bool is_writable;
|
||||
} problem_info_t;
|
||||
|
||||
static void push_to_deferred_queue(problem_info_t *pi)
|
||||
@@ -324,6 +325,36 @@ static void problem_info_set_dir(problem_info_t *pi, const char *dir)
|
||||
problem_data_add_text_noteditable(pi->problem_data, CD_DUMPDIR, dir);
|
||||
}
|
||||
|
||||
+static bool problem_info_ensure_writable(problem_info_t *pi)
|
||||
+{
|
||||
+ if (pi->is_writable)
|
||||
+ return true;
|
||||
+
|
||||
+ /* chown the directory in any case, because kernel oopses are not foreign */
|
||||
+ /* but their dump directories are not writable without chowning them or */
|
||||
+ /* stealing them. The stealing is deprecated as it breaks the local */
|
||||
+ /* duplicate search and root cannot see them */
|
||||
+ const int res = chown_dir_over_dbus(problem_info_get_dir(pi));
|
||||
+ if (pi->foreign && res != 0)
|
||||
+ {
|
||||
+ error_msg(_("Can't take ownership of '%s'"), problem_info_get_dir(pi));
|
||||
+ return false;
|
||||
+ }
|
||||
+ pi->foreign = false;
|
||||
+
|
||||
+ struct dump_dir *dd = open_directory_for_writing(problem_info_get_dir(pi), /* don't ask */ NULL);
|
||||
+ if (!dd)
|
||||
+ {
|
||||
+ error_msg(_("Can't open directory for writing '%s'"), problem_info_get_dir(pi));
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ problem_info_set_dir(pi, dd->dd_dirname);
|
||||
+ pi->is_writable = true;
|
||||
+ dd_close(dd);
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
static problem_info_t *problem_info_new(const char *dir)
|
||||
{
|
||||
problem_info_t *pi = xzalloc(sizeof(*pi));
|
||||
@@ -610,8 +641,13 @@ static pid_t spawn_event_handler_child(const char *dump_dir_name, const char *ev
|
||||
return child;
|
||||
}
|
||||
|
||||
-static void run_report_from_applet(const char *dirname)
|
||||
+static void run_report_from_applet(problem_info_t *pi)
|
||||
{
|
||||
+ if (!problem_info_ensure_writable(pi))
|
||||
+ return;
|
||||
+
|
||||
+ const char *dirname = problem_info_get_dir(pi);
|
||||
+
|
||||
fflush(NULL); /* paranoia */
|
||||
pid_t pid = fork();
|
||||
if (pid < 0)
|
||||
@@ -649,7 +685,7 @@ static void action_report(NotifyNotification *notification, gchar *action, gpoin
|
||||
{
|
||||
if (strcmp(A_REPORT_REPORT, action) == 0)
|
||||
{
|
||||
- run_report_from_applet(problem_info_get_dir(pi));
|
||||
+ run_report_from_applet(pi);
|
||||
problem_info_free(pi);
|
||||
}
|
||||
else
|
||||
@@ -1118,7 +1154,7 @@ static gboolean handle_event_output_cb(GIOChannel *gio, GIOCondition condition,
|
||||
if (pi->known || !(state->flags & REPORT_UNKNOWN_PROBLEM_IMMEDIATELY))
|
||||
notify_problem(pi);
|
||||
else
|
||||
- run_report_from_applet(problem_info_get_dir(pi));
|
||||
+ run_report_from_applet(pi);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1179,29 +1215,11 @@ static void export_event_configuration(const char *event_name)
|
||||
|
||||
static void run_event_async(problem_info_t *pi, const char *event_name, int flags)
|
||||
{
|
||||
- /* chown the directory in any case, because kernel oopses are not foreign */
|
||||
- /* but their dump directories are not writable without chowning them or */
|
||||
- /* stealing them. The stealing is deprecated as it breaks the local */
|
||||
- /* duplicate search and root cannot see them */
|
||||
- const int res = chown_dir_over_dbus(problem_info_get_dir(pi));
|
||||
- if (pi->foreign && res != 0)
|
||||
+ if (!problem_info_ensure_writable(pi))
|
||||
{
|
||||
- error_msg(_("Can't take ownership of '%s'"), problem_info_get_dir(pi));
|
||||
problem_info_free(pi);
|
||||
return;
|
||||
}
|
||||
- pi->foreign = false;
|
||||
-
|
||||
- struct dump_dir *dd = open_directory_for_writing(problem_info_get_dir(pi), /* don't ask */ NULL);
|
||||
- if (!dd)
|
||||
- {
|
||||
- error_msg(_("Can't open directory for writing '%s'"), problem_info_get_dir(pi));
|
||||
- problem_info_free(pi);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- problem_info_set_dir(pi, dd->dd_dirname);
|
||||
- dd_close(dd);
|
||||
|
||||
export_event_configuration(event_name);
|
||||
|
||||
--
|
||||
2.1.0
|
||||
|
||||
27
0027-a-a-a-ccpp-local-don-t-delete-build_ids.patch
Normal file
27
0027-a-a-a-ccpp-local-don-t-delete-build_ids.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
From 7b393bb4b8eae7873996467ea11706127e1dbf85 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Marko <rmarko@fedoraproject.org>
|
||||
Date: Wed, 17 Jun 2015 15:16:03 +0200
|
||||
Subject: [PATCH] a-a-a-ccpp-local don't delete build_ids
|
||||
|
||||
rm -f always succeeds that causes further actions to run.
|
||||
|
||||
Signed-off-by: Richard Marko <rmarko@fedoraproject.org>
|
||||
---
|
||||
src/plugins/abrt-action-analyze-ccpp-local.in | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-analyze-ccpp-local.in b/src/plugins/abrt-action-analyze-ccpp-local.in
|
||||
index 5a42a03..d3df01d 100644
|
||||
--- a/src/plugins/abrt-action-analyze-ccpp-local.in
|
||||
+++ b/src/plugins/abrt-action-analyze-ccpp-local.in
|
||||
@@ -28,7 +28,6 @@ if $INSTALL_DI; then
|
||||
else
|
||||
abrt-action-analyze-core --core=coredump -o build_ids && @LIBEXEC_DIR@/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096
|
||||
fi
|
||||
- rm -f build_ids
|
||||
fi
|
||||
|
||||
if [ $? = 0 ]; then
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From e5a29b08bb48b408c5e88fa5382f8253ca90a937 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Marko <rmarko@fedoraproject.org>
|
||||
Date: Thu, 8 Oct 2015 15:03:26 +0200
|
||||
Subject: [PATCH] abrt-retrace-client: use atoll for _size conversion
|
||||
|
||||
Otherwise we get
|
||||
|
||||
The size of your crash is 28.1 MiB, but the retrace server only accepts
|
||||
crashes smaller or equal to 16.0 EiB.
|
||||
|
||||
(gdb) print settings->max_unpacked_size
|
||||
$4 = -50331648
|
||||
---
|
||||
src/plugins/abrt-retrace-client.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-retrace-client.c b/src/plugins/abrt-retrace-client.c
|
||||
index 0b67773..540cdc9 100644
|
||||
--- a/src/plugins/abrt-retrace-client.c
|
||||
+++ b/src/plugins/abrt-retrace-client.c
|
||||
@@ -256,9 +256,9 @@ struct retrace_settings *get_settings()
|
||||
else if (0 == strcasecmp("max_running_tasks", row))
|
||||
settings->max_running_tasks = atoi(value);
|
||||
else if (0 == strcasecmp("max_packed_size", row))
|
||||
- settings->max_packed_size = atoi(value) * 1024 * 1024;
|
||||
+ settings->max_packed_size = atoll(value) * 1024 * 1024;
|
||||
else if (0 == strcasecmp("max_unpacked_size", row))
|
||||
- settings->max_unpacked_size = atoi(value) * 1024 * 1024;
|
||||
+ settings->max_unpacked_size = atoll(value) * 1024 * 1024;
|
||||
else if (0 == strcasecmp("supported_formats", row))
|
||||
{
|
||||
char *space;
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
From 6bb7cdc454a824826362c68af66cdb92b4bc6653 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Mon, 12 Oct 2015 14:03:13 +0200
|
||||
Subject: [PATCH] doc: fix default DumpLocation in abrt.conf man page
|
||||
|
||||
ABRT no longer stores crashes to /var/tmp/abrt by default.
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
doc/abrt.conf.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/doc/abrt.conf.txt b/doc/abrt.conf.txt
|
||||
index d782e3d..6626596 100644
|
||||
--- a/doc/abrt.conf.txt
|
||||
+++ b/doc/abrt.conf.txt
|
||||
@@ -16,7 +16,7 @@ A description of each item follows:
|
||||
|
||||
DumpLocation = 'directory'::
|
||||
The directory where should 'abrt' store coredumps and all files which are
|
||||
- needed for reporting. The default is /var/tmp/abrt.
|
||||
+ needed for reporting. The default is /var/spool/abrt.
|
||||
|
||||
MaxCrashReportsSize = 'number'::
|
||||
The maximum disk space (specified in megabytes) that 'abrt'
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 2fa193aba3cb1dd630faa65385a92e11d92806d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 26 Aug 2014 20:37:34 +0200
|
||||
Subject: [PATCH] a-a-s-p-d: add firefox on the package blacklist
|
||||
|
||||
And drop the path to plugins-container from the path blacklist because:
|
||||
- the path belongs to firefox package
|
||||
- the path is invalid, the correct path is:
|
||||
/usr/lib(64)/firefox/plugin-container
|
||||
|
||||
Resolves rhbz#1132018
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrt-action-save-package-data.conf | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
||||
index 3d35bb6..cac3c7c 100644
|
||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
||||
@@ -7,7 +7,7 @@ OpenGPGCheck = yes
|
||||
|
||||
# Blacklisted packages
|
||||
#
|
||||
-BlackList = nspluginwrapper, valgrind, strace, mono-core
|
||||
+BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox
|
||||
|
||||
# Process crashes in executables which do not belong to any package?
|
||||
#
|
||||
@@ -15,7 +15,7 @@ ProcessUnpackaged = no
|
||||
|
||||
# Blacklisted executable paths (shell patterns)
|
||||
#
|
||||
-BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer, /usr/lib/xulrunner-*/plugin-container
|
||||
+BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer
|
||||
|
||||
# interpreters names
|
||||
Interpreters = python2, python2.7, python, python3, python3.3, perl, perl5.16.2
|
||||
--
|
||||
2.1.0
|
||||
|
||||
32
0030-dbus-ensure-expected-bytes-width-of-DBus-numbers.patch
Normal file
32
0030-dbus-ensure-expected-bytes-width-of-DBus-numbers.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
From 97633ab28bef2e65032fb81063922e3106dd135b Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 28 Oct 2015 00:21:12 +0100
|
||||
Subject: [PATCH] dbus: ensure expected bytes width of DBus numbers
|
||||
|
||||
t - UINT64 - guint64 (unsigned long is not wide enough on 32bit architectures)
|
||||
|
||||
Resolves: rhbz#1256456
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/dbus/abrt-dbus.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/dbus/abrt-dbus.c b/src/dbus/abrt-dbus.c
|
||||
index 44778a2..500ddb2 100644
|
||||
--- a/src/dbus/abrt-dbus.c
|
||||
+++ b/src/dbus/abrt-dbus.c
|
||||
@@ -625,8 +625,8 @@ static void handle_method_call(GDBusConnection *connection,
|
||||
|
||||
g_variant_builder_add(response_builder, "{s(its)}",
|
||||
element_name,
|
||||
- element_info->flags,
|
||||
- size,
|
||||
+ (gint32)element_info->flags,
|
||||
+ (guint64)size,
|
||||
element_info->content);
|
||||
}
|
||||
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -1,212 +0,0 @@
|
|||
From aa503cf6722fffa2dbf3d400a4e2bbeac2f78d65 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Thu, 23 Oct 2014 16:37:14 +0200
|
||||
Subject: [PATCH] a-a-g-machine-id: add systemd's machine id
|
||||
|
||||
The dmidecode based algorithm may not work on all architectures.
|
||||
|
||||
man machine-id
|
||||
|
||||
Related to rhbz#1140044
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-action-generate-machine-id | 165 ++++++++++++++++++++++++++--
|
||||
1 file changed, 153 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-generate-machine-id b/src/plugins/abrt-action-generate-machine-id
|
||||
index 0aea787..b2de822 100644
|
||||
--- a/src/plugins/abrt-action-generate-machine-id
|
||||
+++ b/src/plugins/abrt-action-generate-machine-id
|
||||
@@ -1,14 +1,47 @@
|
||||
#!/usr/bin/python
|
||||
+
|
||||
+## Copyright (C) 2014 ABRT team <abrt-devel-list@redhat.com>
|
||||
+## Copyright (C) 2014 Red Hat, Inc.
|
||||
+
|
||||
+## This program is free software; you can redistribute it and/or modify
|
||||
+## it under the terms of the GNU General Public License as published by
|
||||
+## the Free Software Foundation; either version 2 of the License, or
|
||||
+## (at your option) any later version.
|
||||
+
|
||||
+## This program is distributed in the hope that it will be useful,
|
||||
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+## GNU General Public License for more details.
|
||||
+
|
||||
+## You should have received a copy of the GNU General Public License
|
||||
+## along with this program; if not, write to the Free Software
|
||||
+## Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
|
||||
+
|
||||
+"""This module provides algorithms for generating Machine IDs.
|
||||
+"""
|
||||
+
|
||||
+import sys
|
||||
from argparse import ArgumentParser
|
||||
+import logging
|
||||
|
||||
-import dmidecode
|
||||
import hashlib
|
||||
|
||||
+def generate_machine_id_dmidecode():
|
||||
+ """Generate a machine_id based off dmidecode fields
|
||||
|
||||
-# Generate a machine_id based off dmidecode fields
|
||||
-def generate_machine_id():
|
||||
- dmixml = dmidecode.dmidecodeXML()
|
||||
+ The function generates the same result as sosreport-uploader
|
||||
+
|
||||
+ Returns a machine ID as string or throws RuntimeException
|
||||
+
|
||||
+ """
|
||||
|
||||
+ try:
|
||||
+ import dmidecode
|
||||
+ except ImportError as ex:
|
||||
+ raise RuntimeError("Could not import dmidecode module: {0}"
|
||||
+ .format(str(ex)))
|
||||
+
|
||||
+ dmixml = dmidecode.dmidecodeXML()
|
||||
# Fetch all DMI data into a libxml2.xmlDoc object
|
||||
dmixml.SetResultType(dmidecode.DMIXML_DOC)
|
||||
xmldoc = dmixml.QuerySection('all')
|
||||
@@ -38,20 +71,128 @@ def generate_machine_id():
|
||||
return machine_id.hexdigest()
|
||||
|
||||
|
||||
-if __name__ == "__main__":
|
||||
- CMDARGS = ArgumentParser(description = "Generate a machine_id based off dmidecode fields")
|
||||
- CMDARGS.add_argument('-o', '--output', type=str, help='Output file')
|
||||
+def generate_machine_id_systemd():
|
||||
+ """Generate a machine_id equals to a one generated by systemd
|
||||
+
|
||||
+ This function returns contents of /etc/machine-id
|
||||
+
|
||||
+ Returns a machine ID as string or throws RuntimeException.
|
||||
+
|
||||
+ """
|
||||
+
|
||||
+ try:
|
||||
+ with open('/etc/machine-id', 'r') as midf:
|
||||
+ return "".join((l.strip() for l in midf))
|
||||
+ except IOError as ex:
|
||||
+ raise RuntimeError("Could not use systemd's machine-id: {0}"
|
||||
+ .format(str(ex)))
|
||||
+
|
||||
+
|
||||
+GENERATORS = { 'sosreport_uploader-dmidecode' : generate_machine_id_dmidecode,
|
||||
+ 'systemd' : generate_machine_id_systemd }
|
||||
+
|
||||
+
|
||||
+def generate_machine_id(generators):
|
||||
+ """Generates all requested machine id with all required generators
|
||||
+
|
||||
+ Keyword arguments:
|
||||
+ generators -- a list of generator names
|
||||
+
|
||||
+ Returns a dictionary where keys are generators and associated values are
|
||||
+ products of those generators.
|
||||
+
|
||||
+ """
|
||||
+
|
||||
+ ids = {}
|
||||
+ workers = GENERATORS
|
||||
+ for sd in generators:
|
||||
+ try:
|
||||
+ ids[sd] = workers[sd]()
|
||||
+ except RuntimeError as ex:
|
||||
+ logging.error("Machine-ID generator '{0}' failed: {1}"
|
||||
+ .format(sd, ex.message))
|
||||
+
|
||||
+ return ids
|
||||
+
|
||||
+
|
||||
+def print_result(ids, outfile, prefixed):
|
||||
+ """Writes a dictionary of machine ids to a file
|
||||
+
|
||||
+ Each dictionary entry is written on a single line and the last line does
|
||||
+ not have new line character. The new line character is omitted as it is a
|
||||
+ common approach in ABRT.
|
||||
+
|
||||
+ Keyword arguments:
|
||||
+ ids -- a dictionary [generator name: machine ids]
|
||||
+ outfile -- output file
|
||||
+ prefixed -- use 'generator name=' prefix or not
|
||||
+ """
|
||||
+
|
||||
+ fmt = '{0}={1}' if prefixed else '{1}'
|
||||
+
|
||||
+ items_iter = ids.iteritems()
|
||||
+ try:
|
||||
+ sd, mid = items_iter.next()
|
||||
+ outfile.write(fmt.format(sd, mid))
|
||||
+ except StopIteration:
|
||||
+ return
|
||||
+
|
||||
+ fmt = '\n' + fmt
|
||||
+ for sd, mid in items_iter:
|
||||
+ outfile.write(fmt.format(sd,mid))
|
||||
+
|
||||
+
|
||||
+def print_generators(outfile=None):
|
||||
+ """Prints requested generators
|
||||
+
|
||||
+ Keyword arguments:
|
||||
+ outfile -- output file (default: sys.stdout)
|
||||
+
|
||||
+ """
|
||||
+ if outfile is None:
|
||||
+ outfile = sys.stdout
|
||||
+
|
||||
+ for sd in GENERATORS.iterkeys():
|
||||
+ outfile.write("{0}\n".format(sd))
|
||||
+
|
||||
+
|
||||
+if __name__ == '__main__':
|
||||
+ CMDARGS = ArgumentParser(description = "Generate a machine_id")
|
||||
+ CMDARGS.add_argument('-o', '--output', type=str,
|
||||
+ help="Output file")
|
||||
+ CMDARGS.add_argument('-g', '--generators', nargs='+', type=str,
|
||||
+ help="Use given generators only")
|
||||
+ CMDARGS.add_argument('-l', '--list-generators', action='store_true',
|
||||
+ default=False, help="Print out a list of usable generators")
|
||||
+ CMDARGS.add_argument('-n', '--noprefix', action='store_true',
|
||||
+ default=False, help="Do not use generator name as prefix for IDs")
|
||||
|
||||
OPTIONS = CMDARGS.parse_args()
|
||||
ARGS = vars(OPTIONS)
|
||||
|
||||
- machineid = generate_machine_id()
|
||||
+ logging.basicConfig(format='%(message)s')
|
||||
+
|
||||
+ if ARGS['list_generators']:
|
||||
+ print_generators()
|
||||
+ sys.exit(0)
|
||||
+
|
||||
+ requested_generators = None
|
||||
+ if ARGS['generators']:
|
||||
+ requested_generators = ARGS['generators']
|
||||
+ else:
|
||||
+ requested_generators = GENERATORS.keys()
|
||||
+
|
||||
+ machineids = generate_machine_id(requested_generators)
|
||||
|
||||
if ARGS['output']:
|
||||
try:
|
||||
- with open(ARGS['output'], 'w') as outfile:
|
||||
- outfile.write(machineid)
|
||||
+ with open(ARGS['output'], 'w') as fout:
|
||||
+ print_result(machineids, fout, not ARGS['noprefix'])
|
||||
except IOError as ex:
|
||||
- print ex
|
||||
+ logging.error("Could not open output file: {0}".format(str(ex)))
|
||||
+ sys.exit(1)
|
||||
else:
|
||||
- print machineid
|
||||
+ print_result(machineids, sys.stdout, not ARGS['noprefix'])
|
||||
+ sys.stdout.write('\n')
|
||||
+
|
||||
+ sys.exit(len(requested_generators) - len(machineids.keys()))
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
From 001066cf6238ee3a61f1a87607272e9736d3e371 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Mon, 26 Oct 2015 13:57:51 +0100
|
||||
Subject: [PATCH] doc: add missing man page for abrt-dump-journal-core
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
doc/Makefile.am | 1 +
|
||||
doc/abrt-dump-journal-core.txt | 65 ++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 66 insertions(+)
|
||||
create mode 100644 doc/abrt-dump-journal-core.txt
|
||||
|
||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||
index fdd08cf..ec6b3c5 100644
|
||||
--- a/doc/Makefile.am
|
||||
+++ b/doc/Makefile.am
|
||||
@@ -19,6 +19,7 @@ MAN1_TXT += abrt-action-perform-ccpp-analysis.txt
|
||||
MAN1_TXT += abrt-action-notify.txt
|
||||
MAN1_TXT += abrt-applet.txt
|
||||
MAN1_TXT += abrt-dump-oops.txt
|
||||
+MAN1_TXT += abrt-dump-journal-core.txt
|
||||
MAN1_TXT += abrt-dump-journal-oops.txt
|
||||
MAN1_TXT += abrt-dump-xorg.txt
|
||||
MAN1_TXT += abrt-auto-reporting.txt
|
||||
diff --git a/doc/abrt-dump-journal-core.txt b/doc/abrt-dump-journal-core.txt
|
||||
new file mode 100644
|
||||
index 0000000..25d5e57
|
||||
--- /dev/null
|
||||
+++ b/doc/abrt-dump-journal-core.txt
|
||||
@@ -0,0 +1,65 @@
|
||||
+abrt-dump-journal-core(1)
|
||||
+=========================
|
||||
+
|
||||
+NAME
|
||||
+----
|
||||
+abrt-dump-journal-core - Extract coredumps from systemd-journal
|
||||
+
|
||||
+SYNOPSIS
|
||||
+--------
|
||||
+'abrt-dump-journal-core' [-vsf] [-e]/[-c CURSOR] [-t INT]/[-T] [-d DIR]/[-D]
|
||||
+
|
||||
+DESCRIPTION
|
||||
+-----------
|
||||
+This tool creates problem directory from coredumps extracted from
|
||||
+systemd-journal.
|
||||
+The tool can follow systemd-journal and extract coredumps in time of their
|
||||
+occurrence.
|
||||
+
|
||||
+The following start from the last seen cursor. If the last seen cursor file
|
||||
+does not exist, the following start by scanning the entire sytemd-journal or
|
||||
+from the end if '-e' option is specified.
|
||||
+
|
||||
+-c and -e options conflicts because both specifies the first read message.
|
||||
+
|
||||
+-e is useful only for -f because the following of journal starts by reading
|
||||
+the entire journal if the last seen possition is not available.
|
||||
+
|
||||
+FILES
|
||||
+-----
|
||||
+/var/lib/abrt/abrt-dump-journal-core.state::
|
||||
+ State file where systemd-journal cursor to the last seen message is saved
|
||||
+
|
||||
+OPTIONS
|
||||
+-------
|
||||
+-v, --verbose::
|
||||
+ Be more verbose. Can be given multiple times.
|
||||
+
|
||||
+-s::
|
||||
+ Log to syslog
|
||||
+
|
||||
+-d DIR::
|
||||
+ Create new problem directory in DIR for every coredump
|
||||
+
|
||||
+-D::
|
||||
+ Same as -d DumpLocation, DumpLocation is specified in abrt.conf
|
||||
+
|
||||
+-e::
|
||||
+ Starts following systemd-journal from the end
|
||||
+
|
||||
+-t INT::
|
||||
+ Throttle problem directory creation to 1 per INT second
|
||||
+
|
||||
+-T::
|
||||
+ Same as -t INT, INT is specified in plugins/CCpp.conf
|
||||
+
|
||||
+-f::
|
||||
+ Follow systemd-journal from the last seen position (if available)
|
||||
+
|
||||
+SEE ALSO
|
||||
+--------
|
||||
+abrt.conf(5), journalctl(1)
|
||||
+
|
||||
+AUTHORS
|
||||
+-------
|
||||
+* ABRT team
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From cf9e5388ac7d94ab5aa34b274c32d735b702c48a Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Mon, 26 Oct 2015 15:21:07 +0100
|
||||
Subject: [PATCH] a-d-journal-core: set root owner for created dump directory
|
||||
|
||||
Without this commit abrt-server fails during check the right owner and group of
|
||||
dump dirs.
|
||||
|
||||
Related to rhbz#1269827
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-dump-journal-core.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-dump-journal-core.c b/src/plugins/abrt-dump-journal-core.c
|
||||
index 7ad69e8..02d5afe 100644
|
||||
--- a/src/plugins/abrt-dump-journal-core.c
|
||||
+++ b/src/plugins/abrt-dump-journal-core.c
|
||||
@@ -302,7 +302,7 @@ save_systemd_coredump_in_dump_directory(struct dump_dir *dd, struct crash_info *
|
||||
static int
|
||||
abrt_journal_core_to_abrt_problem(struct crash_info *info, const char *dump_location)
|
||||
{
|
||||
- struct dump_dir *dd = create_dump_dir(dump_location, "ccpp", info->ci_uid,
|
||||
+ struct dump_dir *dd = create_dump_dir(dump_location, "ccpp", /*fs owner*/0,
|
||||
(save_data_call_back)save_systemd_coredump_in_dump_directory, info);
|
||||
|
||||
if (dd != NULL)
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 35e52c1820a84da2623a7cf4c71baf9fa6f2e12e Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 24 Oct 2014 15:50:02 +0200
|
||||
Subject: [PATCH] a-a-g-machine-id: suppress its failures in abrt_event.conf
|
||||
|
||||
If an event script exits with a non-zero code, abrtd deletes entire dump
|
||||
directory.
|
||||
|
||||
Failures of a-a-g-machine-id must not lead to the deletion of a dump
|
||||
directory.
|
||||
|
||||
Related to rhbz#1140044
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrt_event.conf | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt_event.conf b/src/daemon/abrt_event.conf
|
||||
index 4597627..3322a81 100644
|
||||
--- a/src/daemon/abrt_event.conf
|
||||
+++ b/src/daemon/abrt_event.conf
|
||||
@@ -92,7 +92,7 @@ EVENT=post-create runlevel=
|
||||
|
||||
# Example: if you want to include *machineid* in dump directories:
|
||||
#EVENT=post-create
|
||||
- /usr/libexec/abrt-action-generate-machine-id -o $DUMP_DIR/machineid
|
||||
+ /usr/libexec/abrt-action-generate-machine-id -o $DUMP_DIR/machineid || :
|
||||
|
||||
# Example:
|
||||
# if you want to upload data immediately at the moment of a crash to
|
||||
--
|
||||
2.1.0
|
||||
|
||||
31
0034-doc-a-a-analyze-xorg-fix-path-to-conf-file.patch
Normal file
31
0034-doc-a-a-analyze-xorg-fix-path-to-conf-file.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
From 8b6d1511bb89548c60a472ddbaefbf00743be1ea Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 3 Nov 2015 12:31:38 +0100
|
||||
Subject: [PATCH] doc: a-a-analyze-xorg fix path to conf file
|
||||
|
||||
xorg.conf is no longer located in /etc/abrt/xorg.conf but in
|
||||
/etc/abrt/plugins/xorg.conf.
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
doc/abrt-action-analyze-xorg.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/doc/abrt-action-analyze-xorg.txt b/doc/abrt-action-analyze-xorg.txt
|
||||
index 880c6fb..aa72249 100644
|
||||
--- a/doc/abrt-action-analyze-xorg.txt
|
||||
+++ b/doc/abrt-action-analyze-xorg.txt
|
||||
@@ -39,8 +39,8 @@ OPTIONS
|
||||
|
||||
FILES
|
||||
-----
|
||||
-/etc/abrt/xorg.conf
|
||||
- List of modules which, when loaded, should make Xorg crashes non-reportable.
|
||||
+/etc/abrt/plugins/xorg.conf
|
||||
+ Configuration file for ABRT's tools which work with Xorg crashes
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From 02fa8cc3f0c63b61b4994ac66e5c7e304013b25f Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Tue, 10 Nov 2015 13:22:21 +0100
|
||||
Subject: [PATCH] a-a-s-p-data: fix segfault if GPGKeysDir isn't configured
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrt-action-save-package-data.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c
|
||||
index 7054f06..72c9878 100644
|
||||
--- a/src/daemon/abrt-action-save-package-data.c
|
||||
+++ b/src/daemon/abrt-action-save-package-data.c
|
||||
@@ -88,7 +88,7 @@ static void load_gpg_keys(void)
|
||||
}
|
||||
|
||||
const char *gpg_keys_dir = get_map_string_item_or_NULL(settings, "GPGKeysDir");
|
||||
- if (strcmp(gpg_keys_dir, "") != 0)
|
||||
+ if (gpg_keys_dir != NULL && strcmp(gpg_keys_dir, "") != 0)
|
||||
{
|
||||
log_debug("Reading gpg keys from '%s'", gpg_keys_dir);
|
||||
GHashTable *done_set = g_hash_table_new(g_str_hash, g_str_equal);
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
From a16d12d27e5c12f3e4ab5defaf775a692c405206 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 11 Nov 2015 13:19:35 +0100
|
||||
Subject: [PATCH] ccpp: make crashes of processes with locked memory
|
||||
not-reportable
|
||||
|
||||
Lets begin with a simply policy preventing users from accidental
|
||||
publication of problem data with security sensitive data.
|
||||
|
||||
"not-reportable" problems can still be auto-reported. That is not an
|
||||
security issue because uReports does not contain any user data stored in
|
||||
process' memory (only stack-trace without values local|global variables
|
||||
and function arguments).
|
||||
|
||||
Related to #796.
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-hook-ccpp.c | 21 +++++++++++++++++++++
|
||||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
||||
index 809b45e..4b79900 100644
|
||||
--- a/src/hooks/abrt-hook-ccpp.c
|
||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
||||
@@ -868,6 +868,27 @@ int main(int argc, char** argv)
|
||||
|
||||
dd_save_text(dd, FILENAME_ABRT_VERSION, VERSION);
|
||||
|
||||
+ /* In case of errors, treat the process as if it has locked memory */
|
||||
+ long unsigned lck_bytes = ULONG_MAX;
|
||||
+ const char *vmlck = strstr(proc_pid_status, "VmLck:");
|
||||
+ if (vmlck == NULL)
|
||||
+ error_msg("/proc/%s/status does not contain 'VmLck:' line", pid_str);
|
||||
+ else if (1 != sscanf(vmlck + 6, "%lu kB\n", &lck_bytes))
|
||||
+ error_msg("Failed to parse 'VmLck:' line in /proc/%s/status", pid_str);
|
||||
+
|
||||
+ if (lck_bytes)
|
||||
+ {
|
||||
+ log_notice("Process %s of user %lu has locked memory",
|
||||
+ pid_str, (long unsigned)uid);
|
||||
+
|
||||
+ dd_mark_as_notreportable(dd, "The process had locked memory "
|
||||
+ "which usually indicates efforts to protect sensitive "
|
||||
+ "data (passwords) from being written to disk.\n"
|
||||
+ "In order to avoid sensitive information leakages, "
|
||||
+ "ABRT will not allow you to report this problem to "
|
||||
+ "bug tracking tools");
|
||||
+ }
|
||||
+
|
||||
if (setting_SaveBinaryImage)
|
||||
{
|
||||
if (save_crashing_binary(pid, dd))
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
From 301fe7c65ba4431833ad8a9df7a4366eda889682 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 31 Oct 2014 23:00:10 +0100
|
||||
Subject: [PATCH] a-a-g-machine-id: omit trailing new-line for one-liners only
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-action-generate-machine-id | 21 +++++++++------------
|
||||
1 file changed, 9 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-generate-machine-id b/src/plugins/abrt-action-generate-machine-id
|
||||
index b2de822..6f43258 100644
|
||||
--- a/src/plugins/abrt-action-generate-machine-id
|
||||
+++ b/src/plugins/abrt-action-generate-machine-id
|
||||
@@ -118,9 +118,9 @@ def generate_machine_id(generators):
|
||||
def print_result(ids, outfile, prefixed):
|
||||
"""Writes a dictionary of machine ids to a file
|
||||
|
||||
- Each dictionary entry is written on a single line and the last line does
|
||||
- not have new line character. The new line character is omitted as it is a
|
||||
- common approach in ABRT.
|
||||
+ Each dictionary entry is written on a single line. The function does not
|
||||
+ print trailing new-line if the dictionary contains only one item as it is
|
||||
+ common format of one-liners placed in a dump directory.
|
||||
|
||||
Keyword arguments:
|
||||
ids -- a dictionary [generator name: machine ids]
|
||||
@@ -130,15 +130,10 @@ def print_result(ids, outfile, prefixed):
|
||||
|
||||
fmt = '{0}={1}' if prefixed else '{1}'
|
||||
|
||||
- items_iter = ids.iteritems()
|
||||
- try:
|
||||
- sd, mid = items_iter.next()
|
||||
- outfile.write(fmt.format(sd, mid))
|
||||
- except StopIteration:
|
||||
- return
|
||||
+ if len(ids) > 1:
|
||||
+ fmt += '\n'
|
||||
|
||||
- fmt = '\n' + fmt
|
||||
- for sd, mid in items_iter:
|
||||
+ for sd, mid in ids.iteritems():
|
||||
outfile.write(fmt.format(sd,mid))
|
||||
|
||||
|
||||
@@ -193,6 +188,8 @@ if __name__ == '__main__':
|
||||
sys.exit(1)
|
||||
else:
|
||||
print_result(machineids, sys.stdout, not ARGS['noprefix'])
|
||||
- sys.stdout.write('\n')
|
||||
+ # print_results() omits new-line for one-liners
|
||||
+ if len(machineids) == 1:
|
||||
+ sys.stdout.write('\n')
|
||||
|
||||
sys.exit(len(requested_generators) - len(machineids.keys()))
|
||||
--
|
||||
2.1.0
|
||||
|
||||
103
0037-a-a-i-d-to-abrt-cache-make-own-random-temporary-dire.patch
Normal file
103
0037-a-a-i-d-to-abrt-cache-make-own-random-temporary-dire.patch
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
From 4e5dfba1a1a4d5c5e49b7f6320bd2cb8052f86d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 30 Sep 2015 11:50:18 +0200
|
||||
Subject: [PATCH] a-a-i-d-to-abrt-cache: make own random temporary directory
|
||||
|
||||
The set-user-ID wrapper must use own new temporary directory in order to
|
||||
avoid security issues with unpacking specially crafted debuginfo
|
||||
packages that might be used to create files or symlinks anywhere on the
|
||||
file system as the abrt user.
|
||||
|
||||
Withot the forking code the temporary directory would remain on the
|
||||
filesystem in the case where all debuginfo data are already available.
|
||||
This is caused by the fact that the underlying libreport functionality
|
||||
accepts path to a desired temporary directory and creates it only if
|
||||
necessary. Otherwise, the directory is not touched at all.
|
||||
|
||||
This commit addresses CVE-2015-5273
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/plugins/Makefile.am | 1 +
|
||||
.../abrt-action-install-debuginfo-to-abrt-cache.c | 41 +++++++++++++++++++---
|
||||
2 files changed, 38 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
||||
index 1c1ff8a..c5ea1ec 100644
|
||||
--- a/src/plugins/Makefile.am
|
||||
+++ b/src/plugins/Makefile.am
|
||||
@@ -328,6 +328,7 @@ abrt_action_install_debuginfo_to_abrt_cache_CPPFLAGS = \
|
||||
-D_GNU_SOURCE \
|
||||
-DBIN_DIR=\"$(bindir)\" \
|
||||
-DSBIN_DIR=\"$(sbindir)\" \
|
||||
+ -DLARGE_DATA_TMP_DIR=\"$(LARGE_DATA_TMP_DIR)\" \
|
||||
$(LIBREPORT_CFLAGS) \
|
||||
-Wall -Wwrite-strings \
|
||||
-fPIE
|
||||
diff --git a/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c b/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c
|
||||
index 81b1486..52d00de 100644
|
||||
--- a/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c
|
||||
+++ b/src/plugins/abrt-action-install-debuginfo-to-abrt-cache.c
|
||||
@@ -108,8 +108,14 @@ int main(int argc, char **argv)
|
||||
build_ids_self_fd = xasprintf("/proc/self/fd/%d", build_ids_fd);
|
||||
}
|
||||
|
||||
- /* name, -v, --ids, -, -y, -e, EXACT, -r, REPO, --, NULL */
|
||||
- const char *args[11];
|
||||
+ char tmp_directory[] = LARGE_DATA_TMP_DIR"/abrt-tmp-debuginfo.XXXXXX";
|
||||
+ if (mkdtemp(tmp_directory) == NULL)
|
||||
+ perror_msg_and_die("Failed to create working directory");
|
||||
+
|
||||
+ log_info("Created working directory: %s", tmp_directory);
|
||||
+
|
||||
+ /* name, -v, --ids, -, -y, -e, EXACT, -r, REPO, -t, PATH, --, NULL */
|
||||
+ const char *args[13];
|
||||
{
|
||||
const char *verbs[] = { "", "-v", "-vv", "-vvv" };
|
||||
unsigned i = 0;
|
||||
@@ -130,6 +136,8 @@ int main(int argc, char **argv)
|
||||
args[i++] = "--repo";
|
||||
args[i++] = repo;
|
||||
}
|
||||
+ args[i++] = "--tmpdir";
|
||||
+ args[i++] = tmp_directory;
|
||||
args[i++] = "--";
|
||||
args[i] = NULL;
|
||||
}
|
||||
@@ -204,6 +212,31 @@ int main(int argc, char **argv)
|
||||
umask(0022);
|
||||
}
|
||||
|
||||
- execvp(EXECUTABLE, (char **)args);
|
||||
- error_msg_and_die("Can't execute %s", EXECUTABLE);
|
||||
+ pid_t pid = fork();
|
||||
+ if (pid < 0)
|
||||
+ perror_msg_and_die("fork");
|
||||
+
|
||||
+ if (pid == 0)
|
||||
+ {
|
||||
+ execvp(EXECUTABLE, (char **)args);
|
||||
+ error_msg_and_die("Can't execute %s", EXECUTABLE);
|
||||
+ }
|
||||
+
|
||||
+ int status;
|
||||
+ if (safe_waitpid(pid, &status, 0) < 0)
|
||||
+ perror_msg_and_die("waitpid");
|
||||
+
|
||||
+ if (rmdir(tmp_directory) >= 0)
|
||||
+ log_info("Removed working directory: %s", tmp_directory);
|
||||
+ else if (errno != ENOENT)
|
||||
+ perror_msg("Failed to remove working directory");
|
||||
+
|
||||
+ /* Normal execution should exit here. */
|
||||
+ if (WIFEXITED(status))
|
||||
+ return WEXITSTATUS(status);
|
||||
+
|
||||
+ if (WIFSIGNALED(status))
|
||||
+ error_msg_and_die("Child terminated with signal %d", WTERMSIG(status));
|
||||
+
|
||||
+ error_msg_and_die("Child exit failed");
|
||||
}
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 77fd4057c1364edc7a1815b73bb980229c8b9d65 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 31 Oct 2014 23:01:07 +0100
|
||||
Subject: [PATCH] a-a-g-machine-id: do not print any error from the event
|
||||
handler
|
||||
|
||||
It is expected that dmidecode-less systems will print an error message
|
||||
related to the fact that dmidecode doesn't work, hence forwarding of
|
||||
STDOUT and STDERR to 'event_log' file.
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrt_event.conf | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt_event.conf b/src/daemon/abrt_event.conf
|
||||
index 3322a81..feb02a3 100644
|
||||
--- a/src/daemon/abrt_event.conf
|
||||
+++ b/src/daemon/abrt_event.conf
|
||||
@@ -92,7 +92,7 @@ EVENT=post-create runlevel=
|
||||
|
||||
# Example: if you want to include *machineid* in dump directories:
|
||||
#EVENT=post-create
|
||||
- /usr/libexec/abrt-action-generate-machine-id -o $DUMP_DIR/machineid || :
|
||||
+ /usr/libexec/abrt-action-generate-machine-id -o $DUMP_DIR/machineid >>event_log 2>&1 || :
|
||||
|
||||
# Example:
|
||||
# if you want to upload data immediately at the moment of a crash to
|
||||
--
|
||||
2.1.0
|
||||
|
||||
101
0038-conf-introduce-DebugLevel.patch
Normal file
101
0038-conf-introduce-DebugLevel.patch
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
From 1cb9013d7ec62b282fd404062e88371916a12fad Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 30 Sep 2015 12:17:47 +0200
|
||||
Subject: [PATCH] conf: introduce DebugLevel
|
||||
|
||||
ABRT should ignore problems caused by ABRT tools if DebugLevel == 0.
|
||||
DebugLevel is set to 0 by default.
|
||||
|
||||
Related to CVE-2015-5287
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
doc/abrt.conf.txt | 8 ++++++++
|
||||
src/daemon/abrt.conf | 8 ++++++++
|
||||
src/include/libabrt.h | 2 ++
|
||||
src/lib/abrt_conf.c | 14 ++++++++++++++
|
||||
4 files changed, 32 insertions(+)
|
||||
|
||||
diff --git a/doc/abrt.conf.txt b/doc/abrt.conf.txt
|
||||
index 6626596..1276f55 100644
|
||||
--- a/doc/abrt.conf.txt
|
||||
+++ b/doc/abrt.conf.txt
|
||||
@@ -36,6 +36,14 @@ DeleteUploaded = 'yes/no'::
|
||||
or not.
|
||||
The default value is 'no'.
|
||||
|
||||
+DebugLevel = '0-100':
|
||||
+ Allows ABRT tools to detect problems in ABRT itself. By increasing the value
|
||||
+ you can force ABRT to detect, process and report problems in ABRT. You have
|
||||
+ to bare in mind that ABRT might fall into an infinite loop when handling
|
||||
+ problems caused by itself.
|
||||
+ The default is 0 (non debug mode).
|
||||
+
|
||||
+
|
||||
SEE ALSO
|
||||
--------
|
||||
abrtd(8)
|
||||
diff --git a/src/daemon/abrt.conf b/src/daemon/abrt.conf
|
||||
index 0050c6d..dbc2007 100644
|
||||
--- a/src/daemon/abrt.conf
|
||||
+++ b/src/daemon/abrt.conf
|
||||
@@ -59,3 +59,11 @@ AutoreportingEnabled = no
|
||||
# SPECIAL ROOT DIRECTORY IN USER MOUNT NAMESAPCE
|
||||
#
|
||||
# ExploreChroots = false
|
||||
+
|
||||
+# Allows ABRT tools to detect problems in ABRT itself. By increasing the value
|
||||
+# you can force ABRT to detect, process and report problems in ABRT. You have
|
||||
+# to bare in mind that ABRT might fall into an infinite loop when handling
|
||||
+# problems caused by itself.
|
||||
+# The default is 0 (non debug mode).
|
||||
+#
|
||||
+# DebugLevel = 0
|
||||
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
||||
index da565f9..6f89959 100644
|
||||
--- a/src/include/libabrt.h
|
||||
+++ b/src/include/libabrt.h
|
||||
@@ -77,6 +77,8 @@ extern char * g_settings_autoreporting_event;
|
||||
extern bool g_settings_shortenedreporting;
|
||||
#define g_settings_explorechroots abrt_g_settings_explorechroots
|
||||
extern bool g_settings_explorechroots;
|
||||
+#define g_settings_debug_level abrt_g_settings_debug_level
|
||||
+extern unsigned int g_settings_debug_level;
|
||||
|
||||
|
||||
#define load_abrt_conf abrt_load_abrt_conf
|
||||
diff --git a/src/lib/abrt_conf.c b/src/lib/abrt_conf.c
|
||||
index 46ff689..f623344 100644
|
||||
--- a/src/lib/abrt_conf.c
|
||||
+++ b/src/lib/abrt_conf.c
|
||||
@@ -28,6 +28,7 @@ bool g_settings_autoreporting = 0;
|
||||
char * g_settings_autoreporting_event = NULL;
|
||||
bool g_settings_shortenedreporting = 0;
|
||||
bool g_settings_explorechroots = 0;
|
||||
+unsigned int g_settings_debug_level = 0;
|
||||
|
||||
void free_abrt_conf_data()
|
||||
{
|
||||
@@ -116,6 +117,19 @@ static void ParseCommon(map_string_t *settings, const char *conf_filename)
|
||||
else
|
||||
g_settings_explorechroots = false;
|
||||
|
||||
+ value = get_map_string_item_or_NULL(settings, "DebugLevel");
|
||||
+ if (value)
|
||||
+ {
|
||||
+ char *end;
|
||||
+ errno = 0;
|
||||
+ unsigned long ul = strtoul(value, &end, 10);
|
||||
+ if (errno || end == value || *end != '\0' || ul > INT_MAX)
|
||||
+ error_msg("Error parsing %s setting: '%s'", "DebugLevel", value);
|
||||
+ else
|
||||
+ g_settings_debug_level = ul;
|
||||
+ remove_map_string_item(settings, "DebugLevel");
|
||||
+ }
|
||||
+
|
||||
GHashTableIter iter;
|
||||
const char *name;
|
||||
/*char *value; - already declared */
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
From 82264feebb3a816098e68f0dce1502521b6b7a92 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 30 Sep 2015 12:19:48 +0200
|
||||
Subject: [PATCH] ccpp: ignore crashes of ABRT binaries if DebugLevel == 0
|
||||
|
||||
Prior this commit abrt-hook-ccpp was saved core file of any
|
||||
crashed process executing program whose name starts with "abrt" in
|
||||
DUMP_LOCATION.
|
||||
|
||||
ABRT does not check size constraints of these core files, so the files
|
||||
could consume an uncontrolled amount of disk space.
|
||||
|
||||
Related to CVE-2015-5287
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-hook-ccpp.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
||||
index 4b79900..4a31b81 100644
|
||||
--- a/src/hooks/abrt-hook-ccpp.c
|
||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
||||
@@ -703,6 +703,13 @@ int main(int argc, char** argv)
|
||||
const char *last_slash = strrchr(executable, '/');
|
||||
if (last_slash && strncmp(++last_slash, "abrt", 4) == 0)
|
||||
{
|
||||
+ if (g_settings_debug_level == 0)
|
||||
+ {
|
||||
+ log_warning("Ignoring crash of %s (SIG%s).",
|
||||
+ executable, signame ? signame : signal_str);
|
||||
+ goto cleanup_and_exit;
|
||||
+ }
|
||||
+
|
||||
/* If abrtd/abrt-foo crashes, we don't want to create a _directory_,
|
||||
* since that can make new copy of abrtd to process it,
|
||||
* and maybe crash again...
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From f5e65811d450c9117fa036bd82d161e5f936d5a0 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Fri, 31 Oct 2014 23:02:57 +0100
|
||||
Subject: [PATCH] sos: use all valuable plugins
|
||||
|
||||
This commit mirrors the state of rhel7
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrt_event.conf | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt_event.conf b/src/daemon/abrt_event.conf
|
||||
index feb02a3..1153cc0 100644
|
||||
--- a/src/daemon/abrt_event.conf
|
||||
+++ b/src/daemon/abrt_event.conf
|
||||
@@ -69,11 +69,13 @@ EVENT=post-create runlevel=
|
||||
# if you would rather perform this collection later):
|
||||
#EVENT=post-create
|
||||
nice sosreport --tmp-dir "$DUMP_DIR" --batch \
|
||||
- --only=anaconda --only=bootloader --only=devicemapper \
|
||||
+ --only=anaconda --only=boot --only=devicemapper \
|
||||
--only=filesys --only=hardware --only=kernel --only=libraries \
|
||||
--only=memory --only=networking --only=nfsserver --only=pam \
|
||||
--only=process --only=rpm -k rpm.rpmva=off --only=ssh \
|
||||
--only=startup --only=yum --only=general --only=x11 \
|
||||
+ --only=cups --only=logs --only=grub2 --only=cron --only=pci \
|
||||
+ --only=auditd --only=selinux --only=lvm2 --only=sar \
|
||||
>sosreport.log 2>&1 \
|
||||
&& {
|
||||
rm sosreport.log
|
||||
--
|
||||
2.1.0
|
||||
|
||||
34
0040-ccpp-save-abrt-core-files-only-to-new-files.patch
Normal file
34
0040-ccpp-save-abrt-core-files-only-to-new-files.patch
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
From fce92be28e87f4bbcf637ec06cc3e28652628684 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 30 Sep 2015 12:24:32 +0200
|
||||
Subject: [PATCH] ccpp: save abrt core files only to new files
|
||||
|
||||
Prior this commit abrt-hook-ccpp saved a core file generated by a
|
||||
process running a program whose name starts with "abrt" in
|
||||
DUMP_LOCATION/$(basename program)-coredump. If the file was a symlink,
|
||||
the hook followed and wrote core file to the symlink's target.
|
||||
|
||||
Addresses CVE-2015-5287
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-hook-ccpp.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
||||
index 4a31b81..58d9c28 100644
|
||||
--- a/src/hooks/abrt-hook-ccpp.c
|
||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
||||
@@ -718,7 +718,8 @@ int main(int argc, char** argv)
|
||||
if (snprintf(path, sizeof(path), "%s/%s-coredump", g_settings_dump_location, last_slash) >= sizeof(path))
|
||||
error_msg_and_die("Error saving '%s': truncated long file path", path);
|
||||
|
||||
- int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_TRUNC, 0600);
|
||||
+ unlink(path);
|
||||
+ int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_EXCL, 0600);
|
||||
off_t core_size = copyfd_eof(STDIN_FILENO, abrt_core_fd, COPYFD_SPARSE);
|
||||
if (core_size < 0 || fsync(abrt_core_fd) != 0)
|
||||
{
|
||||
--
|
||||
2.6.3
|
||||
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
From 1fc0e782d56af4df3f21560929176a09103923ad Mon Sep 17 00:00:00 2001
|
||||
From: Martin Milata <mmilata@redhat.com>
|
||||
Date: Tue, 4 Nov 2014 16:51:24 +0100
|
||||
Subject: [PATCH] koops: improve 'reason' text for page faults
|
||||
|
||||
Current : 'general protection fault: 4000 [#1] SMP'
|
||||
Improved: 'general protection fault in i915_gem_do_execbuffer'
|
||||
|
||||
Resolves rhbz#998887.
|
||||
|
||||
Signed-off-by: Martin Milata <mmilata@redhat.com>
|
||||
---
|
||||
src/plugins/oops-utils.c | 22 ++++++++++++++++++++--
|
||||
1 file changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/oops-utils.c b/src/plugins/oops-utils.c
|
||||
index 9e2355e..ea6c639 100644
|
||||
--- a/src/plugins/oops-utils.c
|
||||
+++ b/src/plugins/oops-utils.c
|
||||
@@ -12,6 +12,8 @@
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
+#include <satyr/stacktrace.h>
|
||||
+
|
||||
#include "oops-utils.h"
|
||||
#include "libabrt.h"
|
||||
|
||||
@@ -242,8 +244,24 @@ void abrt_oops_save_data_in_dump_dir(struct dump_dir *dd, char *oops, const char
|
||||
|
||||
// TODO: add "Kernel oops: " prefix, so that all oopses have recognizable FILENAME_REASON?
|
||||
// kernel oops 1st line may look quite puzzling otherwise...
|
||||
- strchrnul(second_line, '\n')[0] = '\0';
|
||||
- dd_save_text(dd, FILENAME_REASON, second_line);
|
||||
+ char *reason_pretty = NULL;
|
||||
+ char *error = NULL;
|
||||
+ struct sr_stacktrace *trace = sr_stacktrace_parse(SR_REPORT_KERNELOOPS, second_line, &error);
|
||||
+ if (trace)
|
||||
+ {
|
||||
+ reason_pretty = sr_stacktrace_get_reason(trace);
|
||||
+ sr_stacktrace_free(trace);
|
||||
+ }
|
||||
+ else
|
||||
+ free(error);
|
||||
+
|
||||
+ if (reason_pretty)
|
||||
+ {
|
||||
+ dd_save_text(dd, FILENAME_REASON, reason_pretty);
|
||||
+ free(reason_pretty);
|
||||
+ }
|
||||
+ else
|
||||
+ dd_save_text(dd, FILENAME_REASON, second_line);
|
||||
}
|
||||
|
||||
int abrt_oops_signaled_sleep(int seconds)
|
||||
--
|
||||
2.1.0
|
||||
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
From d8a3bd0d464f5b75ac360f4ee4e3cc6927a09199 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 30 Sep 2015 14:13:35 +0200
|
||||
Subject: [PATCH] lib: add convenient wrappers for ensuring writable dir
|
||||
|
||||
Replace lchown with fchown and chmod with fchmod.
|
||||
|
||||
Related CVE-2015-5287
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/include/libabrt.h | 4 ++++
|
||||
src/lib/hooklib.c | 41 ++++++++++++++++++++++++++++++++++-------
|
||||
2 files changed, 38 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
|
||||
index 6f89959..b26dcc6 100644
|
||||
--- a/src/include/libabrt.h
|
||||
+++ b/src/include/libabrt.h
|
||||
@@ -42,8 +42,12 @@ int low_free_space(unsigned setting_MaxCrashReportsSize, const char *dump_locati
|
||||
|
||||
#define trim_problem_dirs abrt_trim_problem_dirs
|
||||
void trim_problem_dirs(const char *dirname, double cap_size, const char *exclude_path);
|
||||
+#define ensure_writable_dir_id abrt_ensure_writable_dir_uid_git
|
||||
+void ensure_writable_dir_uid_gid(const char *dir, mode_t mode, uid_t uid, gid_t gid);
|
||||
#define ensure_writable_dir abrt_ensure_writable_dir
|
||||
void ensure_writable_dir(const char *dir, mode_t mode, const char *user);
|
||||
+#define ensure_writable_dir_group abrt_ensure_writable_dir_group
|
||||
+void ensure_writable_dir_group(const char *dir, mode_t mode, const char *user, const char *group);
|
||||
#define run_unstrip_n abrt_run_unstrip_n
|
||||
char *run_unstrip_n(const char *dump_dir_name, unsigned timeout_sec);
|
||||
#define get_backtrace abrt_get_backtrace
|
||||
diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c
|
||||
index 2b76eea..0daa144 100644
|
||||
--- a/src/lib/hooklib.c
|
||||
+++ b/src/lib/hooklib.c
|
||||
@@ -476,23 +476,50 @@ int signal_is_fatal(int signal_no, const char **name)
|
||||
return signame != NULL;
|
||||
}
|
||||
|
||||
-void ensure_writable_dir(const char *dir, mode_t mode, const char *user)
|
||||
+void ensure_writable_dir_uid_gid(const char *dir, mode_t mode, uid_t uid, gid_t gid)
|
||||
{
|
||||
struct stat sb;
|
||||
+ int dir_fd;
|
||||
|
||||
if (mkdir(dir, mode) != 0 && errno != EEXIST)
|
||||
perror_msg_and_die("Can't create '%s'", dir);
|
||||
- if (stat(dir, &sb) != 0 || !S_ISDIR(sb.st_mode))
|
||||
- error_msg_and_die("'%s' is not a directory", dir);
|
||||
|
||||
+ dir_fd = open(dir, O_DIRECTORY | O_NOFOLLOW);
|
||||
+ if (dir_fd < 0)
|
||||
+ perror_msg_and_die("Can't open directory '%s'", dir);
|
||||
+
|
||||
+ if (fstat(dir_fd, &sb) != 0)
|
||||
+ perror_msg_and_die("Can't stat directory '%s'", dir);
|
||||
+
|
||||
+ if ((sb.st_uid != uid || sb.st_gid != gid) && fchown(dir_fd, uid, gid) != 0)
|
||||
+ perror_msg_and_die("Can't set owner %u:%u on '%s'", (unsigned int)uid, (unsigned int)gid, dir);
|
||||
+
|
||||
+ if ((sb.st_mode & 07777) != mode && fchmod(dir_fd, mode) != 0)
|
||||
+ perror_msg_and_die("Can't set mode %o on '%s'", mode, dir);
|
||||
+
|
||||
+ close(dir_fd);
|
||||
+}
|
||||
+
|
||||
+void ensure_writable_dir(const char *dir, mode_t mode, const char *user)
|
||||
+{
|
||||
+ struct passwd *pw = getpwnam(user);
|
||||
+ if (!pw)
|
||||
+ perror_msg_and_die("Can't find user '%s'", user);
|
||||
+
|
||||
+ ensure_writable_dir_uid_gid(dir, mode, pw->pw_uid, pw->pw_gid);
|
||||
+}
|
||||
+
|
||||
+void ensure_writable_dir_group(const char *dir, mode_t mode, const char *user, const char *group)
|
||||
+{
|
||||
struct passwd *pw = getpwnam(user);
|
||||
if (!pw)
|
||||
perror_msg_and_die("Can't find user '%s'", user);
|
||||
|
||||
- if ((sb.st_uid != pw->pw_uid || sb.st_gid != pw->pw_gid) && lchown(dir, pw->pw_uid, pw->pw_gid) != 0)
|
||||
- perror_msg_and_die("Can't set owner %u:%u on '%s'", (unsigned int)pw->pw_uid, (unsigned int)pw->pw_gid, dir);
|
||||
- if ((sb.st_mode & 07777) != mode && chmod(dir, mode) != 0)
|
||||
- perror_msg_and_die("Can't set mode %o on '%s'", mode, dir);
|
||||
+ struct group *gr = getgrnam(group);
|
||||
+ if (!gr)
|
||||
+ perror_msg_and_die("Can't find group '%s'", group);
|
||||
+
|
||||
+ ensure_writable_dir_uid_gid(dir, mode, pw->pw_uid, gr->gr_gid);
|
||||
}
|
||||
|
||||
bool dir_is_in_dump_location(const char *dir_name)
|
||||
--
|
||||
2.6.3
|
||||
|
||||
29
0042-abrtd-switch-owner-of-the-dump-location-to-root.patch
Normal file
29
0042-abrtd-switch-owner-of-the-dump-location-to-root.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
From 5653ddfeb61279df38e80ab18652afa68c964eb6 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Wed, 30 Sep 2015 14:14:31 +0200
|
||||
Subject: [PATCH] abrtd: switch owner of the dump location to 'root'
|
||||
|
||||
Additional hardening suggested by Florian Weimer <fweimer@redhat.com>
|
||||
Related to CVE-2015-5287
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/daemon/abrtd.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
|
||||
index 0352eed..90a7163 100644
|
||||
--- a/src/daemon/abrtd.c
|
||||
+++ b/src/daemon/abrtd.c
|
||||
@@ -195,7 +195,7 @@ static void sanitize_dump_dir_rights(void)
|
||||
* us with thousands of bogus or malicious dumps */
|
||||
/* 07000 bits are setuid, setgit, and sticky, and they must be unset */
|
||||
/* 00777 bits are usual "rwxrwxrwx" access rights */
|
||||
- ensure_writable_dir(g_settings_dump_location, DEFAULT_DUMP_LOCATION_MODE, "abrt");
|
||||
+ ensure_writable_dir_group(g_settings_dump_location, DEFAULT_DUMP_LOCATION_MODE, "root", "abrt");
|
||||
/* temp dir */
|
||||
ensure_writable_dir(VAR_RUN"/abrt", 0755, "root");
|
||||
}
|
||||
--
|
||||
2.6.3
|
||||
|
||||
28
0044-a-a-save-package-data-do-not-blacklist-firefox.patch
Normal file
28
0044-a-a-save-package-data-do-not-blacklist-firefox.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
From b0d5570f1d0f12adf8e00a39c60e7c5da367fd07 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Wed, 3 Feb 2016 14:41:48 +0100
|
||||
Subject: [PATCH] a-a-save-package-data: do not blacklist firefox
|
||||
|
||||
Resolves: rhbz#1304310
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
||||
index 0129399..58f5061 100644
|
||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
||||
@@ -7,7 +7,7 @@ OpenGPGCheck = yes
|
||||
|
||||
# Blacklisted packages
|
||||
#
|
||||
-BlackList = nspluginwrapper, valgrind, strace, mono-core, firefox, bash
|
||||
+BlackList = nspluginwrapper, valgrind, strace, mono-core, bash
|
||||
|
||||
# Process crashes in executables which do not belong to any package?
|
||||
#
|
||||
--
|
||||
2.5.0
|
||||
|
||||
94
0045-ccpp-drop-e-from-the-core_pattern.patch
Normal file
94
0045-ccpp-drop-e-from-the-core_pattern.patch
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
From 3c4bbdee2059525fafdd6b32a6c85cf2358febe4 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Wed, 10 Feb 2016 14:53:44 +0100
|
||||
Subject: [PATCH] ccpp: drop %e from the core_pattern
|
||||
|
||||
The argument is no longer need and it must be placed either at the end
|
||||
of the command or enclosed with '' as it can contain white space.
|
||||
|
||||
Threads can have an arbitrary name:
|
||||
man 3 pthread_setname_np
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
src/hooks/abrt-hook-ccpp.c | 16 ++++++++--------
|
||||
src/hooks/abrt-install-ccpp-hook.in | 12 +-----------
|
||||
2 files changed, 9 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
||||
index 58d9c28..ac60840 100644
|
||||
--- a/src/hooks/abrt-hook-ccpp.c
|
||||
+++ b/src/hooks/abrt-hook-ccpp.c
|
||||
@@ -142,9 +142,9 @@ static struct dump_dir *dd;
|
||||
* %u - uid
|
||||
* %g - gid
|
||||
* %t - UNIX time of dump
|
||||
- * %e - executable filename
|
||||
- * %i - crash thread tid
|
||||
* %P - global pid
|
||||
+ * %I - crash thread tid
|
||||
+ * %e - executable filename (can contain white spaces)
|
||||
* %% - output one "%"
|
||||
*/
|
||||
/* Hook must be installed with exactly the same sequence of %c specifiers.
|
||||
@@ -559,9 +559,9 @@ int main(int argc, char** argv)
|
||||
|
||||
if (argc < 8)
|
||||
{
|
||||
- /* percent specifier: %s %c %p %u %g %t %e %P %i*/
|
||||
- /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]*/
|
||||
- error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME BINARY_NAME GLOBAL_PID [TID]", argv[0]);
|
||||
+ /* percent specifier: %s %c %p %u %g %t %P %T */
|
||||
+ /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] */
|
||||
+ error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME GLOBAL_PID GLOBAL_TID", argv[0]);
|
||||
}
|
||||
|
||||
/* Not needed on 2.6.30.
|
||||
@@ -604,11 +604,11 @@ int main(int argc, char** argv)
|
||||
else
|
||||
free(s);
|
||||
}
|
||||
- const char *global_pid_str = argv[8];
|
||||
- pid_t pid = xatoi_positive(argv[8]);
|
||||
+ const char *global_pid_str = argv[7];
|
||||
+ pid_t pid = xatoi_positive(argv[7]);
|
||||
|
||||
pid_t tid = -1;
|
||||
- const char *tid_str = argv[9];
|
||||
+ const char *tid_str = argv[8];
|
||||
if (tid_str)
|
||||
{
|
||||
tid = xatoi_positive(tid_str);
|
||||
diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in
|
||||
index 707c57d..660c209 100755
|
||||
--- a/src/hooks/abrt-install-ccpp-hook.in
|
||||
+++ b/src/hooks/abrt-install-ccpp-hook.in
|
||||
@@ -11,9 +11,7 @@ SAVED_PATTERN_DIR="@VAR_RUN@/abrt"
|
||||
SAVED_PATTERN_FILE="@VAR_RUN@/abrt/saved_core_pattern"
|
||||
HOOK_BIN="@libexecdir@/abrt-hook-ccpp"
|
||||
# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
||||
-PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e %P %I"
|
||||
-# Same, but with bogus "executable name" parameter
|
||||
-PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e %P %I"
|
||||
+PATTERN="|$HOOK_BIN %s %c %p %u %g %t %P %I"
|
||||
|
||||
# core_pipe_limit specifies how many dump_helpers can run at the same time
|
||||
# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
||||
@@ -39,14 +37,6 @@ start() {
|
||||
cur=`cat "$PATTERN_FILE"`
|
||||
cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
|
||||
|
||||
- # Is there a %e (executable name) in old pattern anywhere?
|
||||
- if test x"${cur#*%e}" = x"${cur}"; then
|
||||
- # No. Can use PATTERN with less risk of overflow
|
||||
- # on expansion (executable names can be LONG).
|
||||
- # Overflow would cause kernel to abort coredump. BAD.
|
||||
- PATTERN="$PATTERN1"
|
||||
- fi
|
||||
-
|
||||
$verbose && printf "cur:'%s'\n" "$cur"
|
||||
# Is it already installed?
|
||||
if test x"$cur_first" != x"|$HOOK_BIN"; then # no
|
||||
--
|
||||
2.5.0
|
||||
|
||||
92374
0048-Translation-updates.patch
Normal file
92374
0048-Translation-updates.patch
Normal file
File diff suppressed because it is too large
Load diff
26
0049-translations-add-missing-new-line.patch
Normal file
26
0049-translations-add-missing-new-line.patch
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
From 3f81e0d5fce5b2f30ec19e260cc666f3ae89c034 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Filak <jfilak@redhat.com>
|
||||
Date: Thu, 11 Feb 2016 15:26:27 +0100
|
||||
Subject: [PATCH] translations: add missing new line
|
||||
|
||||
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
||||
---
|
||||
po/km.po | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/po/km.po b/po/km.po
|
||||
index 84bb1b1..ab7a684 100644
|
||||
--- a/po/km.po
|
||||
+++ b/po/km.po
|
||||
@@ -137,7 +137,7 @@ msgid ""
|
||||
"\n"
|
||||
"Applet which notifies user when new problems are detected by ABRT\n"
|
||||
msgstr ""
|
||||
-"Applet ដែលបានជូនដំណឹងអ្នកប្រើនៅពេលដែលមានបញ្ហាថ្មីត្រូវបានរកឃើញដោយ ABRT"
|
||||
+"Applet ដែលបានជូនដំណឹងអ្នកប្រើនៅពេលដែលមានបញ្ហាថ្មីត្រូវបានរកឃើញដោយ ABRT\n"
|
||||
|
||||
#: ../src/configuration-gui/abrt-config-widget.c:483
|
||||
msgid ""
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From a587ec0e3f2adc76445afc732d798e2d7cd33c02 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 16 Feb 2016 10:53:06 +0100
|
||||
Subject: [PATCH] a-a-save-package-data: blacklist
|
||||
/usr/lib(64)/firefox/plugin-container
|
||||
|
||||
/usr/lib(64)/firefox/plugin-container is a sandbox/launcher for Firefox
|
||||
plug-ins. When it crases Firefox loads it again so we don't want those crashes
|
||||
reported.
|
||||
|
||||
Related to: rhbz#1308840
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/daemon/abrt-action-save-package-data.conf | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
|
||||
index 58f5061..f3a808f 100644
|
||||
--- a/src/daemon/abrt-action-save-package-data.conf
|
||||
+++ b/src/daemon/abrt-action-save-package-data.conf
|
||||
@@ -15,7 +15,7 @@ ProcessUnpackaged = yes
|
||||
|
||||
# Blacklisted executable paths (shell patterns)
|
||||
#
|
||||
-BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer
|
||||
+BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer, /usr/lib*/firefox/plugin-container
|
||||
|
||||
# interpreters names
|
||||
Interpreters = python2, python2.7, python, python3, python3.3, python3.4, python3.5, perl, perl5.16.2
|
||||
--
|
||||
2.5.0
|
||||
|
||||
85
0052-a-a-install-debuginfo-make-tmpdir-variable-global.patch
Normal file
85
0052-a-a-install-debuginfo-make-tmpdir-variable-global.patch
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
From 894ced59cc43dfda99a393154026181b0bf61784 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 8 Mar 2016 16:42:31 +0100
|
||||
Subject: [PATCH] a-a-install-debuginfo: make tmpdir variable global
|
||||
|
||||
Function clean_up() has one required parameter tmpdir.
|
||||
Without this commit clean_up() function raises an exception because it was
|
||||
called without the parameter.
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-action-install-debuginfo.in | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
|
||||
index 73ff82f..bb72695 100644
|
||||
--- a/src/plugins/abrt-action-install-debuginfo.in
|
||||
+++ b/src/plugins/abrt-action-install-debuginfo.in
|
||||
@@ -20,7 +20,8 @@ import problem
|
||||
RETURN_OK = 0
|
||||
# serious problem, should be logged somewhere
|
||||
RETURN_FAILURE = 2
|
||||
-
|
||||
+# path to tmp directory has to be global because of clean_up()
|
||||
+TMPDIR = None
|
||||
|
||||
GETTEXT_PROGNAME = "abrt"
|
||||
import locale
|
||||
@@ -43,11 +44,11 @@ def init_gettext():
|
||||
gettext.textdomain(GETTEXT_PROGNAME)
|
||||
|
||||
def sigterm_handler(signum, frame):
|
||||
- clean_up()
|
||||
+ clean_up(TMPDIR)
|
||||
exit(RETURN_OK)
|
||||
|
||||
def sigint_handler(signum, frame):
|
||||
- clean_up()
|
||||
+ clean_up(TMPDIR)
|
||||
print("\n{0}".format(_("Exiting on user command")))
|
||||
sys.stdout.flush()
|
||||
# ??! without "sys.", I am getting segv!
|
||||
@@ -63,7 +64,6 @@ if __name__ == "__main__":
|
||||
fbuild_ids = "build_ids"
|
||||
cachedirs = []
|
||||
size_mb = 4096
|
||||
- tmpdir = None
|
||||
keeprpms = False
|
||||
noninteractive = False
|
||||
b_ids = []
|
||||
@@ -135,7 +135,7 @@ if __name__ == "__main__":
|
||||
except:
|
||||
pass
|
||||
elif opt == "--tmpdir":
|
||||
- tmpdir = arg
|
||||
+ TMPDIR = arg
|
||||
elif opt == "--keeprpms":
|
||||
keeprpms = True
|
||||
# --exact takes precendece over --ids
|
||||
@@ -159,11 +159,11 @@ if __name__ == "__main__":
|
||||
|
||||
if not cachedirs:
|
||||
cachedirs = ["/var/cache/abrt-di"]
|
||||
- if not tmpdir:
|
||||
+ if not TMPDIR:
|
||||
# security people prefer temp subdirs in app's private dir, like /var/run/abrt
|
||||
# and we switched to /tmp but Fedora feature tmp-on-tmpfs appeared, hence we must
|
||||
# not use /tmp for potential big data anymore
|
||||
- tmpdir = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
|
||||
+ TMPDIR = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
|
||||
|
||||
|
||||
if missing == None:
|
||||
@@ -235,7 +235,7 @@ if __name__ == "__main__":
|
||||
sys.exit(RETURN_FAILURE)
|
||||
|
||||
# TODO: should we pass keep_rpms=keeprpms to DebugInfoDownload here??
|
||||
- downloader = download_class(cache=cachedirs[0], tmp=tmpdir,
|
||||
+ downloader = download_class(cache=cachedirs[0], tmp=TMPDIR,
|
||||
noninteractive=noninteractive,
|
||||
repo_pattern=repo_pattern)
|
||||
try:
|
||||
--
|
||||
2.5.5
|
||||
|
||||
49
0053-a-a-install-debuginfo-fix-BrokenPipe-error.patch
Normal file
49
0053-a-a-install-debuginfo-fix-BrokenPipe-error.patch
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
From 9c58a7bbd6def445ba1d1faaf7a3c2960ba2819e Mon Sep 17 00:00:00 2001
|
||||
From: Matej Habrnal <mhabrnal@redhat.com>
|
||||
Date: Tue, 8 Mar 2016 16:45:36 +0100
|
||||
Subject: [PATCH] a-a-install-debuginfo: fix BrokenPipe error
|
||||
|
||||
While debug info is downloading and stop button is pressed the BrokenPipe
|
||||
error appears.
|
||||
|
||||
If the stop button is pressed, gui wizard sends SIGTERM to all
|
||||
processes with the same group ID so abrt-action-install-debuginfo got SIGTERM
|
||||
as well. It has its own SIGTERM handler which calls clean_up() function and it
|
||||
takes a while before the tool is terminated.
|
||||
abrt-action-install-debuginfo tries to write some messages to the closed socket
|
||||
during the clean_up process and it raises a BrokenPipe exception. We must
|
||||
ensure that no message will be printed after SIGTERM is recieved.
|
||||
|
||||
Related to: #1255259
|
||||
|
||||
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
||||
---
|
||||
src/plugins/abrt-action-install-debuginfo.in | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
|
||||
index bb72695..f9eb596 100644
|
||||
--- a/src/plugins/abrt-action-install-debuginfo.in
|
||||
+++ b/src/plugins/abrt-action-install-debuginfo.in
|
||||
@@ -44,7 +44,7 @@ def init_gettext():
|
||||
gettext.textdomain(GETTEXT_PROGNAME)
|
||||
|
||||
def sigterm_handler(signum, frame):
|
||||
- clean_up(TMPDIR)
|
||||
+ clean_up(TMPDIR, silent=True)
|
||||
exit(RETURN_OK)
|
||||
|
||||
def sigint_handler(signum, frame):
|
||||
@@ -241,6 +241,9 @@ if __name__ == "__main__":
|
||||
try:
|
||||
result = downloader.download(missing, download_exact_files=exact_fls)
|
||||
except Exception as ex:
|
||||
+ if ex.errno == errno.EPIPE:
|
||||
+ clean_up(TMPDIR, silent=True)
|
||||
+ exit(RETURN_FAILURE)
|
||||
error_msg_and_die("Can't download debuginfos: %s", ex)
|
||||
|
||||
if exact_fls:
|
||||
--
|
||||
2.5.5
|
||||
|
||||
419
abrt.spec
419
abrt.spec
|
|
@ -21,6 +21,9 @@
|
|||
%endif
|
||||
%endif
|
||||
|
||||
# build abrt-atomic subpackage
|
||||
%bcond_without atomic
|
||||
|
||||
%ifarch aarch64
|
||||
%define have_kexec_tools 0
|
||||
%else
|
||||
|
|
@ -40,64 +43,75 @@
|
|||
%define docdirversion -%{version}
|
||||
%endif
|
||||
|
||||
%define libreport_ver 2.3.0-3
|
||||
%define satyr_ver 0.15-2
|
||||
%define libreport_ver 2.6.4-2
|
||||
%define satyr_ver 0.19
|
||||
|
||||
Summary: Automatic bug detection and reporting tool
|
||||
Name: abrt
|
||||
Version: 2.3.0
|
||||
Release: 5%{?dist}
|
||||
Version: 2.6.1
|
||||
Release: 11%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Applications/System
|
||||
URL: https://github.com/abrt/abrt/wiki/ABRT-Project
|
||||
URL: https://abrt.readthedocs.org/
|
||||
Source: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz
|
||||
# don't remove this patch, packages in rawhide are not signed!
|
||||
Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
|
||||
#Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
|
||||
|
||||
# git format-patch %%{Version} --topo-order -N -M;
|
||||
# for p in `ls 0*.patch`; do printf "Patch%04d: %s\n" $i $p; ((i++)); done
|
||||
Patch0001: 0001-Translation-updates.patch
|
||||
#Patch0002: 0002-testsuite-added-missing-test-for-abrt-cli-option-pro.patch
|
||||
#Patch0003: 0003-testsuite-added-nachineid-test.patch
|
||||
#Patch0004: 0004-testsuite-added-test-for-ureport-with-Authentication.patch
|
||||
#Patch0005: 0005-testsuite-added-test-for-ureport-authorization-throu.patch
|
||||
Patch0006: 0006-console-notifications-use-return-instead-of-exit.patch
|
||||
Patch0007: 0007-ureport-attach-contact-email-if-configured.patch
|
||||
Patch0008: 0008-applet-don-t-show-duphash-instead-of-component.patch
|
||||
#Patch0009: 0009-testsuite-console-notifications.patch
|
||||
Patch0010: 0010-console-notifications-skip-non-interactive-shells.patch
|
||||
#Patch0011: 0011-testsuite-run-console-notification-tests-in-screen.patch
|
||||
#Patch0012: 0012-testsuite-add-console-notification-on-the-rhel7-list.patch
|
||||
#Patch0013: 0013-testsuite-install-abrt-console-notification.patch
|
||||
#Patch0014: 0014-testsuite-added-test-for-integration-of-rhtsupport-w.patch
|
||||
#Patch0015: 0015-testsuite-added-another-test-for-integration-of-rhts.patch
|
||||
#Patch0016: 0016-testsuite-added-isolated-test-rhts-test-for-rhel6.patch
|
||||
#Patch0017: 0017-testsuite-console-notifications-fix-couple-of-bugs.patch
|
||||
#Patch0018: 0018-testsuite-dump-journal-oops-check-output.patch
|
||||
#Patch0019: 0019-testsuite-fix-koops-journal-parsing-for-s390x.patch
|
||||
#Patch0020: 0020-testsuite-show-diff-of-dumped-journal-oops-and-expec.patch
|
||||
Patch0021: 0021-journal-oops-use-the-length-result-of-sd_journal_get.patch
|
||||
#Patch0021: 0022-testsuite-abrt-action-ureport.patch
|
||||
#Patch0022: 0023-testsuite-abrt-action-ureport.patch
|
||||
Patch0023: 0024-make-ABRT-quieter.patch
|
||||
#Patch0024: 0025-testsuite-rhts-test.patch
|
||||
Patch0025: 0026-applet-ensure-writable-dump-directory-before-reporti.patch
|
||||
#Patch0026: 0027-testsuite-rhsm-entitlement-aut-must-not-fail-with-mo.patch
|
||||
#Patch0027: 0028-testsuite-use-the-entitlement-certs-with-rhsm.patch
|
||||
#Patch0028: 0029-testsuite-do-not-user-uReport_URL-in-reporter-rhtsup.patch
|
||||
Patch0029: 0030-a-a-s-p-d-add-firefox-on-the-package-blacklist.patch
|
||||
#Patch0030: 0031-testsuite-infinite-recursion-stack-traces.patch
|
||||
Patch0031: 0032-a-a-g-machine-id-add-systemd-s-machine-id.patch
|
||||
#Patch0032: 0033-testsuite-add-sanity-test-for-a-a-g-machine-id.patch
|
||||
Patch0033: 0034-a-a-g-machine-id-suppress-its-failures-in-abrt_event.patch
|
||||
#Patch0034: 0035-testsuite-infinite-recursion-stack-traces-fix.patch
|
||||
#Patch0035: 0036-testsuite-verify-that-machineid-contains-two-values.patch
|
||||
Patch0036: 0037-a-a-g-machine-id-omit-trailing-new-line-for-one-line.patch
|
||||
Patch0037: 0038-a-a-g-machine-id-do-not-print-any-error-from-the-eve.patch
|
||||
Patch0038: 0039-sos-use-all-valuable-plugins.patch
|
||||
Patch0039: 0040-koops-improve-reason-text-for-page-faults.patch
|
||||
#Patch0040: 0041-testsuite-ureport-does-not-fail-on-rhsm-errors.patch
|
||||
#Patch0041: 0042-spec-update-the-URL.patch
|
||||
# i=1; for p in `ls 0*.patch`; do printf "Patch%04d: %s\n" $i $p; ((i++)); done
|
||||
Patch0001: 0001-cli-enable-authetication-for-all-commands.patch
|
||||
Patch0002: 0002-cli-remove-useless-code-from-print_crash.patch
|
||||
Patch0003: 0003-cli-use-internal-command-impl-in-the-command-process.patch
|
||||
Patch0004: 0004-a-dump-oops-allow-update-the-problem-if-more-then-on.patch
|
||||
Patch0005: 0005-abrtd-de-prioritize-post-create-event-scripts.patch
|
||||
Patch0006: 0006-abrt-Fixup-component-of-select-kernel-backtraces.patch
|
||||
Patch0007: 0007-ccpp-do-not-crash-if-generate_core_backtrace-fails.patch
|
||||
Patch0008: 0008-applet-do-not-crash-if-the-new-problem-has-no-comman.patch
|
||||
Patch0009: 0009-abrt-merge-pstoreoops-merge-files-in-descending-orde.patch
|
||||
Patch0010: 0010-abrt-auto-reporting-fix-related-to-conditional-compi.patch
|
||||
Patch0011: 0011-doc-fix-related-to-conditional-compilation-of-man-pa.patch
|
||||
Patch0012: 0012-dbus-api-unify-reporting-of-errors.patch
|
||||
Patch0013: 0013-cli-fix-testing-of-DBus-API-return-codes.patch
|
||||
Patch0014: 0014-ccpp-fix-comment-related-to-MakeCompatCore-option-in.patch
|
||||
Patch0015: 0015-ccpp-use-global-TID.patch
|
||||
Patch0016: 0016-a-a-s-p-d-add-bash-on-the-package-blacklist.patch
|
||||
Patch0017: 0017-cli-don-t-start-reporting-of-not-reportable-problems.patch
|
||||
Patch0018: 0018-introduce-bodhi2-to-abrt-bodhi.patch
|
||||
#Patch0019: 0019-spec-add-hawkey-to-BRs-of-abrt-bodhi.patch
|
||||
Patch0020: 0020-ccpp-do-not-break-the-reporting-if-a-bodhi-fails.patch
|
||||
Patch0021: 0021-bodhi-add-ignoring-of-Rawhide.patch
|
||||
Patch0022: 0022-bodhi-add-parsing-of-error-responses.patch
|
||||
Patch0023: 0023-doc-actualize-the-abrt-bodhi-man-page.patch
|
||||
Patch0024: 0024-bodhi-fix-a-segfault-when-testing-an-os-release-opt-.patch
|
||||
Patch0025: 0025-bodhi-fix-typo-in-error-messages.patch
|
||||
Patch0026: 0026-abrt-dump-xorg-support-Xorg-log-backtraces-prefixed-.patch
|
||||
Patch0027: 0027-a-a-a-ccpp-local-don-t-delete-build_ids.patch
|
||||
Patch0028: 0028-abrt-retrace-client-use-atoll-for-_size-conversion.patch
|
||||
Patch0029: 0029-doc-fix-default-DumpLocation-in-abrt.conf-man-page.patch
|
||||
Patch0030: 0030-dbus-ensure-expected-bytes-width-of-DBus-numbers.patch
|
||||
#Patch0031: 0031-spec-add-missing-man-page-for-abrt-dump-journal-core.patch
|
||||
Patch0032: 0032-doc-add-missing-man-page-for-abrt-dump-journal-core.patch
|
||||
Patch0033: 0033-a-d-journal-core-set-root-owner-for-created-dump-dir.patch
|
||||
Patch0034: 0034-doc-a-a-analyze-xorg-fix-path-to-conf-file.patch
|
||||
Patch0035: 0035-a-a-s-p-data-fix-segfault-if-GPGKeysDir-isn-t-config.patch
|
||||
Patch0036: 0036-ccpp-make-crashes-of-processes-with-locked-memory-no.patch
|
||||
Patch0037: 0037-a-a-i-d-to-abrt-cache-make-own-random-temporary-dire.patch
|
||||
Patch0038: 0038-conf-introduce-DebugLevel.patch
|
||||
Patch0039: 0039-ccpp-ignore-crashes-of-ABRT-binaries-if-DebugLevel-0.patch
|
||||
Patch0040: 0040-ccpp-save-abrt-core-files-only-to-new-files.patch
|
||||
Patch0041: 0041-lib-add-convenient-wrappers-for-ensuring-writable-di.patch
|
||||
Patch0042: 0042-abrtd-switch-owner-of-the-dump-location-to-root.patch
|
||||
#Patch0043: 0043-spec-switch-owner-of-the-dump-location-to-root.patch
|
||||
Patch0044: 0044-a-a-save-package-data-do-not-blacklist-firefox.patch
|
||||
Patch0045: 0045-ccpp-drop-e-from-the-core_pattern.patch
|
||||
#Patch0046: 0046-testsuite-ccpp-executable-with-white-space-in-name.patch
|
||||
#Patch0047: 0047-translations-update-zanata-configuration.patch
|
||||
Patch0048: 0048-Translation-updates.patch
|
||||
Patch0049: 0049-translations-add-missing-new-line.patch
|
||||
Patch0050: 0050-a-a-save-package-data-blacklist-usr-lib-64-firefox-p.patch
|
||||
#Patch0051: 0051-testsuite-add-concurrent-processing-test-for-abrtd.patch
|
||||
Patch0052: 0052-a-a-install-debuginfo-make-tmpdir-variable-global.patch
|
||||
Patch0053: 0053-a-a-install-debuginfo-fix-BrokenPipe-error.patch
|
||||
|
||||
|
||||
# '%%autosetup -S git' -> git
|
||||
|
|
@ -105,6 +119,7 @@ BuildRequires: git
|
|||
|
||||
BuildRequires: dbus-devel
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: glib2-devel >= 2.43
|
||||
BuildRequires: rpm-devel >= 4.6
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: libnotify-devel
|
||||
|
|
@ -124,6 +139,7 @@ BuildRequires: satyr-devel >= %{satyr_ver}
|
|||
BuildRequires: systemd-python
|
||||
BuildRequires: systemd-python3
|
||||
BuildRequires: augeas
|
||||
BuildRequires: libselinux-devel
|
||||
|
||||
Requires: libreport >= %{libreport_ver}
|
||||
Requires: satyr >= %{satyr_ver}
|
||||
|
|
@ -180,9 +196,9 @@ Group: User Interface/Desktops
|
|||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-dbus = %{version}-%{release}
|
||||
Requires: gnome-abrt
|
||||
Requires: gsettings-desktop-schemas >= 3.15
|
||||
BuildRequires: libreport-gtk-devel >= %{libreport_ver}
|
||||
BuildRequires: libICE-devel
|
||||
BuildRequires: libSM-devel
|
||||
BuildRequires: gsettings-desktop-schemas-devel >= 3.15
|
||||
# we used to have abrt-applet, now abrt-gui includes it:
|
||||
Provides: abrt-applet = %{version}-%{release}
|
||||
Obsoletes: abrt-applet < 0.0.5
|
||||
|
|
@ -193,11 +209,23 @@ Requires: abrt-gui-libs = %{version}-%{release}
|
|||
%description gui
|
||||
GTK+ wizard for convenient bug reporting.
|
||||
|
||||
%package addon-coredump-helper
|
||||
Summary: %{name}'s /proc/sys/kernel/core_pattern helper
|
||||
Group: System Environment/Libraries
|
||||
Requires: abrt-libs = %{version}-%{release}
|
||||
|
||||
%description addon-coredump-helper
|
||||
This package contains hook for C/C++ crashed programs.
|
||||
|
||||
%package addon-ccpp
|
||||
Summary: %{name}'s C/C++ addon
|
||||
Group: System Environment/Libraries
|
||||
Requires: cpio
|
||||
Requires: gdb >= 7.0-3
|
||||
%if 0%{?fedora:%{fedora} > 22}
|
||||
Requires: gdb >= gdb-7.9.50.20150531
|
||||
%else
|
||||
Requires: gdb >= 7.9.1-16
|
||||
%endif
|
||||
Requires: elfutils
|
||||
%if 0%{!?rhel:1}
|
||||
# abrt-action-perform-ccpp-analysis wants to run analyze_RetraceServer:
|
||||
|
|
@ -205,11 +233,11 @@ Requires: %{name}-retrace-client
|
|||
%endif
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: abrt-libs = %{version}-%{release}
|
||||
Requires: %{name}-addon-coredump-helper = %{version}-%{release}
|
||||
Requires: libreport-python
|
||||
|
||||
%description addon-ccpp
|
||||
This package contains hook for C/C++ crashed programs and %{name}'s C/C++
|
||||
analyzer plugin.
|
||||
This package contains %{name}'s C/C++ analyzer plugin.
|
||||
|
||||
%package addon-upload-watch
|
||||
Summary: %{name}'s upload addon
|
||||
|
|
@ -289,6 +317,7 @@ BuildRequires: json-c-devel
|
|||
Group: System Environment/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
BuildRequires: libreport-web-devel >= %{libreport_ver}
|
||||
BuildRequires: hawkey-devel
|
||||
Obsoletes: libreport-plugin-bodhi > 0.0.1
|
||||
Provides: libreport-plugin-bodhi
|
||||
|
||||
|
|
@ -380,7 +409,7 @@ Requires: abrt-addon-python
|
|||
Requires: abrt-addon-python3
|
||||
Requires: abrt-addon-xorg
|
||||
# Default config of addon-ccpp requires gdb
|
||||
Requires: gdb >= 7.0-3
|
||||
Requires: gdb >= 7.8.1-31
|
||||
Requires: elfutils
|
||||
Requires: abrt-gui
|
||||
Requires: gnome-abrt
|
||||
|
|
@ -402,6 +431,18 @@ Provides: bug-buddy = 2.28.0
|
|||
Virtual package to install all necessary packages for usage from desktop
|
||||
environment.
|
||||
|
||||
%if %{with atomic}
|
||||
%package atomic
|
||||
Summary: Package to make easy default installation on Atomic hosts
|
||||
Group: Applications/System
|
||||
Requires: %{name}-addon-coredump-helper = %{version}-%{release}
|
||||
Conflicts: %{name}-addon-ccpp
|
||||
%endif
|
||||
|
||||
%description atomic
|
||||
Package to install all necessary packages for usage from Atomic
|
||||
hosts.
|
||||
|
||||
%package dbus
|
||||
Summary: ABRT DBus service
|
||||
Group: Applications/System
|
||||
|
|
@ -419,11 +460,12 @@ Summary: ABRT Python API
|
|||
Group: System Environment/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: pygobject2
|
||||
Requires: %{name}-dbus = %{version}-%{release}
|
||||
Requires: dbus-python
|
||||
Requires: libreport-python
|
||||
BuildRequires: python-nose
|
||||
BuildRequires: python-sphinx
|
||||
BuildRequires: libreport-python
|
||||
|
||||
%description python
|
||||
High-level API for querying, creating and manipulating
|
||||
|
|
@ -445,7 +487,7 @@ Summary: ABRT Python 3 API
|
|||
Group: System Environment/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: pygobject3
|
||||
Requires: %{name}-dbus = %{version}-%{release}
|
||||
Requires: python3-dbus
|
||||
Requires: libreport-python3
|
||||
BuildRequires: python3-nose
|
||||
|
|
@ -482,8 +524,8 @@ to the shell
|
|||
# Default '__scm_apply_git' is 'git apply && git commit' but this workflow
|
||||
# doesn't allow us to create a new file within a patch, so we have to use
|
||||
# 'git am' (see /usr/lib/rpm/macros for more details)
|
||||
%define __scm_apply_git(qp:m:) %{__git} am
|
||||
#%%define __scm_apply_git(qp:m:) %%{__git} am --exclude libreport.spec.in --exclude .gitignore
|
||||
#%%define __scm_apply_git(qp:m:) %%{__git} am
|
||||
%define __scm_apply_git(qp:m:) %{__git} am --exclude doc/design --exclude doc/project/abrt.tex --exclude .gitignore --exclude abrt.spec.in
|
||||
%autosetup -S git
|
||||
|
||||
%build
|
||||
|
|
@ -493,9 +535,13 @@ CFLAGS="%{optflags} -Werror" %configure --enable-doxygen-docs \
|
|||
%ifnarch arm armhfp armv7hl armv7l aarch64
|
||||
--enable-native-unwinder \
|
||||
%endif
|
||||
%if %{without atomic}
|
||||
--without-atomic \
|
||||
%endif
|
||||
%if %{?have_kexec_tools} == 0
|
||||
--disable-addon-vmcore \
|
||||
%endif
|
||||
--enable-dump-time-unwind \
|
||||
--disable-silent-rules
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
|
@ -520,7 +566,7 @@ find $RPM_BUILD_ROOT -name '*.la' -or -name '*.a' | xargs rm -f
|
|||
mkdir -p ${RPM_BUILD_ROOT}/%{_initrddir}
|
||||
mkdir -p $RPM_BUILD_ROOT/var/cache/abrt-di
|
||||
mkdir -p $RPM_BUILD_ROOT/var/run/abrt
|
||||
mkdir -p $RPM_BUILD_ROOT/var/tmp/abrt
|
||||
mkdir -p $RPM_BUILD_ROOT/var/spool/abrt
|
||||
mkdir -p $RPM_BUILD_ROOT/var/spool/abrt-upload
|
||||
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/abrt
|
||||
|
||||
|
|
@ -556,6 +602,7 @@ exit 0
|
|||
# so 2.x fails when it tries to extract debuginfo there..
|
||||
chown -R abrt:abrt %{_localstatedir}/cache/abrt-di
|
||||
%systemd_post abrt-ccpp.service
|
||||
%systemd_post abrt-journal-core.service
|
||||
|
||||
%post addon-kerneloops
|
||||
%systemd_post abrt-oops.service
|
||||
|
|
@ -579,6 +626,7 @@ chown -R abrt:abrt %{_localstatedir}/cache/abrt-di
|
|||
|
||||
%preun addon-ccpp
|
||||
%systemd_preun abrt-ccpp.service
|
||||
%systemd_preun abrt-journal-core.service
|
||||
|
||||
%preun addon-kerneloops
|
||||
%systemd_preun abrt-oops.service
|
||||
|
|
@ -602,6 +650,7 @@ chown -R abrt:abrt %{_localstatedir}/cache/abrt-di
|
|||
|
||||
%postun addon-ccpp
|
||||
%systemd_postun_with_restart abrt-ccpp.service
|
||||
%systemd_postun_with_restart abrt-journal-core.service
|
||||
|
||||
%postun addon-kerneloops
|
||||
%systemd_postun_with_restart abrt-oops.service
|
||||
|
|
@ -624,6 +673,36 @@ chown -R abrt:abrt %{_localstatedir}/cache/abrt-di
|
|||
# update icon cache
|
||||
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
%if %{with atomic}
|
||||
%post atomic
|
||||
if [ -f /etc/abrt/plugins/CCpp.conf ]; then
|
||||
mv /etc/abrt/plugins/CCpp.conf /etc/abrt/plugins/CCpp.conf.rpmsave.atomic || exit 1;
|
||||
fi
|
||||
ln -sf /etc/abrt/plugins/CCpp_Atomic.conf /etc/abrt/plugins/CCpp.conf
|
||||
if [ -f /usr/share/abrt/conf.d/plugins/CCpp.conf ]; then
|
||||
mv /usr/share/abrt/conf.d/plugins/CCpp.conf /usr/share/abrt/conf.d/plugins/CCpp.conf.rpmsave.atomic || exit 1;
|
||||
fi
|
||||
ln -sf /usr/share/abrt/conf.d/plugins/CCpp_Atomic.conf /usr/share/abrt/conf.d/plugins/CCpp.conf
|
||||
%systemd_post abrt-coredump-helper.service
|
||||
|
||||
%preun atomic
|
||||
if [ -L /etc/abrt/plugins/CCpp.conf ]; then
|
||||
rm /etc/abrt/plugins/CCpp.conf
|
||||
fi
|
||||
if [ -L /usr/share/abrt/conf.d/plugins/CCpp.conf ]; then
|
||||
rm /usr/share/abrt/conf.d/plugins/CCpp.conf
|
||||
fi
|
||||
if [ -f /etc/abrt/plugins/CCpp.conf.rpmsave.atomic ]; then
|
||||
mv /etc/abrt/plugins/CCpp.conf.rpmsave.atomic /etc/abrt/plugins/CCpp.conf || exit 1
|
||||
fi
|
||||
if [ -f /usr/share/abrt/conf.d/plugins/CCpp.conf.rpmsave.atomic ]; then
|
||||
mv /usr/share/abrt/conf.d/plugins/CCpp.conf.rpmsave.atomic /usr/share/abrt/conf.d/plugins/CCpp.conf || exit 1
|
||||
fi
|
||||
|
||||
%postun atomic
|
||||
%systemd_postun_with_restart abrt-coredump-helper.service
|
||||
%endif
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
|
@ -639,23 +718,10 @@ if [ $1 -eq 0 ] ; then
|
|||
fi
|
||||
|
||||
%posttrans
|
||||
# update the old problem dirs to contain "type" element
|
||||
abrtdir=$(grep "DumpLocation" /etc/abrt/abrt.conf | cut -d'=' -f2 | tr -d ' '); cd $abrtdir 2>/dev/null && for i in `find . -name "analyzer" 2>/dev/null`; do len=${#i};cp "$i" "${i:0:$len-9}/type"; done; for i in `find "$abrtdir" -mindepth 1 -maxdepth 1 -type d`; do chown `stat --format=%U:abrt $i` $i/*; done
|
||||
service abrtd condrestart >/dev/null 2>&1 || :
|
||||
|
||||
%posttrans addon-ccpp
|
||||
service abrt-ccpp condrestart >/dev/null 2>&1 || :
|
||||
# Regenerate core_bactraces because of missing crash threads
|
||||
abrtdir=$(grep "DumpLocation" /etc/abrt/abrt.conf | cut -d'=' -f2 | tr -d ' ')
|
||||
if test -d "$abrtdir"; then
|
||||
for DD in `find "$abrtdir" -mindepth 1 -maxdepth 1 -type d`
|
||||
do
|
||||
if test -f "$DD/analyzer" && grep -q "^CCpp$" "$DD/analyzer"; then
|
||||
/usr/bin/abrt-action-generate-core-backtrace -d "$DD" -- >/dev/null 2>&1 || :
|
||||
test -f "$DD/core_backtrace" && chown `stat --format=%U:abrt $DD` "$DD/core_backtrace" || :
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
%posttrans addon-kerneloops
|
||||
service abrt-oops condrestart >/dev/null 2>&1 || :
|
||||
|
|
@ -682,6 +748,11 @@ service abrt-upload-watch condrestart >/dev/null 2>&1 || :
|
|||
%posttrans gui
|
||||
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
%posttrans dbus
|
||||
# Force abrt-dbus to restart like we do with the other services
|
||||
killall abrt-dbus >/dev/null 2>&1 || :
|
||||
|
||||
|
||||
%files -f %{name}.lang
|
||||
%defattr(-,root,root,-)
|
||||
%doc README COPYING
|
||||
|
|
@ -701,11 +772,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_bindir}/abrt-action-notify
|
||||
%{_mandir}/man1/abrt-action-notify.1.gz
|
||||
%{_bindir}/abrt-action-save-package-data
|
||||
%{_bindir}/abrt-action-save-container-data
|
||||
%{_bindir}/abrt-watch-log
|
||||
%{_bindir}/abrt-action-analyze-python
|
||||
%{_bindir}/abrt-action-analyze-xorg
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/abrt.conf
|
||||
%{_datadir}/%{name}/conf.d/abrt.conf
|
||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.problems.daemon.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/abrt-action-save-package-data.conf
|
||||
%{_datadir}/%{name}/conf.d/abrt-action-save-package-data.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/plugins/xorg.conf
|
||||
|
|
@ -718,18 +789,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_mandir}/man5/abrt_event.conf.5.gz
|
||||
%config(noreplace) %{_sysconfdir}/libreport/events.d/smart_event.conf
|
||||
%{_mandir}/man5/smart_event.conf.5.gz
|
||||
%dir %attr(0755, abrt, abrt) %{_localstatedir}/tmp/%{name}
|
||||
%dir %attr(0751, root, abrt) %{_localstatedir}/spool/%{name}
|
||||
%dir %attr(0700, abrt, abrt) %{_localstatedir}/spool/%{name}-upload
|
||||
# abrtd runs as root
|
||||
%dir %attr(0755, root, root) %{_localstatedir}/run/%{name}
|
||||
%ghost %attr(0666, -, -) %{_localstatedir}/run/%{name}/abrt.socket
|
||||
%ghost %attr(0644, -, -) %{_localstatedir}/run/%{name}/abrtd.pid
|
||||
|
||||
%dir %{_sysconfdir}/%{name}
|
||||
%dir %{_sysconfdir}/%{name}/plugins
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/%{name}/conf.d
|
||||
%dir %{_datadir}/%{name}/conf.d/plugins
|
||||
%{_mandir}/man1/abrt-handle-upload.1.gz
|
||||
%{_mandir}/man1/abrt-server.1.gz
|
||||
%{_mandir}/man1/abrt-action-save-package-data.1.gz
|
||||
|
|
@ -738,16 +804,23 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_mandir}/man1/abrt-action-analyze-xorg.1.gz
|
||||
%{_mandir}/man1/abrt-auto-reporting.1.gz
|
||||
%{_mandir}/man8/abrtd.8.gz
|
||||
%{_mandir}/man5/abrt.conf.5.gz
|
||||
%{_mandir}/man5/abrt-action-save-package-data.conf.5.gz
|
||||
# {_mandir}/man5/pyhook.conf.5.gz
|
||||
|
||||
# filesystem package should own /usr/share/augeas/lenses directory
|
||||
%{_datadir}/augeas/lenses/abrt.aug
|
||||
|
||||
%files libs
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/libabrt.so.*
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/abrt.conf
|
||||
%{_datadir}/%{name}/conf.d/abrt.conf
|
||||
%{_mandir}/man5/abrt.conf.5.gz
|
||||
%dir %{_sysconfdir}/%{name}
|
||||
%dir %{_sysconfdir}/%{name}/plugins
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/%{name}/conf.d
|
||||
%dir %{_datadir}/%{name}/conf.d/plugins
|
||||
|
||||
# filesystem package should own /usr/share/augeas/lenses directory
|
||||
%{_datadir}/augeas/lenses/abrt.aug
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
|
|
@ -787,19 +860,25 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_mandir}/man1/abrt-applet.1*
|
||||
%{_mandir}/man1/system-config-abrt.1*
|
||||
|
||||
%files addon-coredump-helper
|
||||
%defattr(-,root,root,-)
|
||||
%{_libexecdir}/abrt-hook-ccpp
|
||||
%{_sbindir}/abrt-install-ccpp-hook
|
||||
%{_mandir}/man*/abrt-install-ccpp-hook.*
|
||||
|
||||
%files addon-ccpp
|
||||
%defattr(-,root,root,-)
|
||||
%dir %attr(0775, abrt, abrt) %{_localstatedir}/cache/abrt-di
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/plugins/CCpp.conf
|
||||
%{_datadir}/%{name}/conf.d/plugins/CCpp.conf
|
||||
%{_mandir}/man5/abrt-CCpp.conf.5.gz
|
||||
%dir %attr(0775, abrt, abrt) %{_localstatedir}/cache/abrt-di
|
||||
%{_libexecdir}/abrt-gdb-exploitable
|
||||
%if %{with systemd}
|
||||
%{_unitdir}/abrt-ccpp.service
|
||||
%{_unitdir}/abrt-journal-core.service
|
||||
%else
|
||||
%{_initrddir}/abrt-ccpp
|
||||
%endif
|
||||
%{_libexecdir}/abrt-hook-ccpp
|
||||
%{_libexecdir}/abrt-gdb-exploitable
|
||||
|
||||
# attr(6755) ~= SETUID|SETGID
|
||||
%attr(6755, abrt, abrt) %{_libexecdir}/abrt-action-install-debuginfo-to-abrt-cache
|
||||
|
|
@ -815,7 +894,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_bindir}/abrt-action-list-dsos
|
||||
%{_bindir}/abrt-action-perform-ccpp-analysis
|
||||
%{_bindir}/abrt-action-analyze-ccpp-local
|
||||
%{_sbindir}/abrt-install-ccpp-hook
|
||||
%{_bindir}/abrt-dump-journal-core
|
||||
%config(noreplace) %{_sysconfdir}/libreport/events.d/ccpp_event.conf
|
||||
%{_mandir}/man5/ccpp_event.conf.5.gz
|
||||
%config(noreplace) %{_sysconfdir}/libreport/events.d/gconf_event.conf
|
||||
|
|
@ -835,12 +914,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_mandir}/man*/abrt-action-generate-core-backtrace.*
|
||||
%{_mandir}/man*/abrt-action-analyze-backtrace.*
|
||||
%{_mandir}/man*/abrt-action-list-dsos.*
|
||||
%{_mandir}/man*/abrt-install-ccpp-hook.*
|
||||
%{_mandir}/man*/abrt-action-install-debuginfo.*
|
||||
%{_mandir}/man*/abrt-action-analyze-ccpp-local.*
|
||||
%{_mandir}/man*/abrt-action-analyze-core.*
|
||||
%{_mandir}/man*/abrt-action-analyze-vulnerability.*
|
||||
%{_mandir}/man*/abrt-action-perform-ccpp-analysis.*
|
||||
%{_mandir}/man*/abrt-dump-journal-core.*
|
||||
|
||||
%files addon-upload-watch
|
||||
%defattr(-,root,root,-)
|
||||
|
|
@ -912,6 +991,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_sbindir}/abrt-harvest-vmcore
|
||||
%{_bindir}/abrt-action-analyze-vmcore
|
||||
%{_bindir}/abrt-action-check-oops-for-hw-error
|
||||
%{_bindir}/abrt-action-check-oops-for-alt-component
|
||||
%{_mandir}/man1/abrt-harvest-vmcore.1*
|
||||
%{_mandir}/man5/abrt-vmcore.conf.5*
|
||||
%{_mandir}/man1/abrt-action-analyze-vmcore.1*
|
||||
|
|
@ -962,6 +1042,18 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%files desktop
|
||||
%defattr(-,root,root,-)
|
||||
|
||||
%if %{with atomic}
|
||||
%files atomic
|
||||
%defattr(-,root,root,-)
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/plugins/CCpp_Atomic.conf
|
||||
%{_unitdir}/abrt-coredump-helper.service
|
||||
%{_datadir}/%{name}/conf.d/plugins/CCpp_Atomic.conf
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/abrt-action-save-package-data.conf
|
||||
%{_bindir}/abrt-action-save-package-data
|
||||
%{_mandir}/man1/abrt-action-save-package-data.1.gz
|
||||
%{_mandir}/man5/abrt-action-save-package-data.conf.5.gz
|
||||
%endif
|
||||
|
||||
%files plugin-bodhi
|
||||
%defattr(-,root,root,-)
|
||||
%{_bindir}/abrt-bodhi
|
||||
|
|
@ -1010,6 +1102,153 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
|
||||
|
||||
%changelog
|
||||
* Tue Apr 12 2016 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-11
|
||||
- a-a-install-debuginfo: fix BrokenPipe error
|
||||
|
||||
* Tue Feb 23 2016 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-10
|
||||
- translation updates
|
||||
- blacklist Firefox's plugin-container
|
||||
|
||||
* Wed Feb 10 2016 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-9
|
||||
- drop %e from the core_pattern
|
||||
|
||||
* Wed Feb 03 2016 Matej Habrnal <mhabrnal@redhat.com> - 2.6.1-8
|
||||
- a-a-save-package-data: do not blacklist firefox
|
||||
|
||||
* Wed Nov 25 2015 Jakub Filak <jfilak@redhat.com> - 2.6.1-7
|
||||
- CVE-2015-5287: switch owner of /var/spool/abrt to 'root'
|
||||
- CVE-2015-5287: ccpp: save abrt core files only if DebugLevel > 0
|
||||
- CVE-2015-5287: ccpp: save abrt core files only to new files
|
||||
- CVE-2015-5287: abrt configuration: introduce DebugLevel
|
||||
- CVE-2015-5273: a-a-i-d-to-abrt-cache: make own random temporary directory
|
||||
- ccpp: make crashes of processes with locked memory not-reportable
|
||||
- a-d-journal-core: set root owner for created dump directory
|
||||
- spec: add missing man page for abrt-dump-journal-core
|
||||
- Resolves: #1262252, #1284557
|
||||
|
||||
* Fri Oct 16 2015 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-6
|
||||
- doc: fix default DumpLocation in abrt.conf man page
|
||||
- abrt-retrace-client: use atoll for _size conversion
|
||||
- a-a-a-ccpp-local don't delete build_ids
|
||||
- abrt-dump-xorg: support Xorg log backtraces prefixed by (EE
|
||||
- bodhi: fix typo in error messages
|
||||
|
||||
* Thu Sep 17 2015 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-5
|
||||
- doc: actualize the abrt-bodhi man page
|
||||
- bodhi: fix a segfault when testing an os-release opt for 'rawhide'
|
||||
|
||||
* Thu Aug 27 2015 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-4
|
||||
- bodhi: add parsing of error responses
|
||||
- bodhi: add ignoring of Rawhide
|
||||
- do not break the reporting if a-bodhi fails
|
||||
- spec: add hawkey to BRs of abrt-bodhi
|
||||
- introduce bodhi2 to abrt-bodhi
|
||||
- don't start reporting of not-reportable problems
|
||||
- add bash on the package blacklist
|
||||
|
||||
* Fri Aug 14 2015 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-3
|
||||
- ccpp: use global TID
|
||||
- fix comment related to 'MakeCompatCore' option in CCpp.conf
|
||||
- fix testing of DBus API return codes
|
||||
- dbus-api: unify reporting of errors
|
||||
- fix related to conditional compilation of man page
|
||||
- abrt-auto-reporting: fix related to conditional compilation
|
||||
- abrt-merge-pstoreoops: merge files in descending order
|
||||
|
||||
* Tue Jul 21 2015 Jakub Filak <jfilak@redhat.com> 2.6.1-2
|
||||
- applet: do not crash if the new problem has no command_line
|
||||
- ccpp: do not crash if generate_core_backtrace fails
|
||||
- abrt: Fixup component of select kernel backtraces
|
||||
- abrtd: de-prioritize post-create event scripts
|
||||
- a-dump-oops: allow update the problem, if more then one oops found
|
||||
- cli: enable authetication for all commands
|
||||
- Resolves: #1236422, #1243791
|
||||
|
||||
* Fri Jul 03 2015 Matej Habrnal <mhabrnal@redhat.com> 2.6.1-1
|
||||
- keep the polkit authorization for all clients
|
||||
- enable polkit authentication on command line
|
||||
- use TID to find crash thread
|
||||
- remove PyGObject from all Requires
|
||||
- update version of gdb because of -ascending
|
||||
- make it easier to find the backtrace of th crash thread
|
||||
- save TID in the file 'tid'
|
||||
- get TID from correct cmd line argument
|
||||
- add option always generate backtrace locally
|
||||
- add processor information to sosreport
|
||||
- update abrt-cli man page
|
||||
- Resolves: #1240516
|
||||
|
||||
* Tue Jun 09 2015 Jakub Filak <jfilak@redhat.com> 2.6.0-1
|
||||
- move the default dump location to /var/spool/abrt from /var/tmp/abrt
|
||||
- hooks: use root for owner of all dump directories
|
||||
- ccpp: do not unlink failed and big user cores
|
||||
- ccpp: don't save the system logs by default
|
||||
- ccpp: stop reading hs_error.log from /tmp
|
||||
- ccpp: emulate selinux for creation of compat cores
|
||||
- koops: don't save dmesg if kernel.dmesg_restrict=1
|
||||
- dbus: validate passed arguments
|
||||
- turn off exploring crashed process's root directories
|
||||
- abrt-python: bug fixes and improvements
|
||||
- fixes for CVE-2015-3315, CVE-2015-3142, CVE-2015-1869, CVE-2015-1870
|
||||
- fixes for CVE-2015-3147, CVE-2015-3151, CVE-2015-3150, CVE-2015-3159
|
||||
- spec: add abrt-dbus to Rs of abrt-python and abrt-cli
|
||||
- spec: restart abrt-dbus in posttrans
|
||||
|
||||
* Wed May 20 2015 Matej Habrnal <mhabrnal@redhat.com> 2.5.1-3
|
||||
- applet: fix problem info double free
|
||||
- upload: validate and sanitize uploaded dump directories
|
||||
- applet: switch to D-Bus methods
|
||||
- lib: add new kernel taint flags
|
||||
- abrt-auto-reporting: require rhtsupport.conf file only on RHEL
|
||||
- doc, polkit: Spelling/grammar fixes
|
||||
- applet: migrate Autoreporting options to GSettings
|
||||
- config UI: read glade from a local file first
|
||||
- config UI: Automatic reporting from GSettings
|
||||
- Resolves: #1211644
|
||||
|
||||
* Mon Apr 13 2015 Jakub Filak <jfilak@redhat.com> 2.5.1-2
|
||||
- Remove no longer needed posttrans scriptlet copying analyzer to type
|
||||
|
||||
* Thu Apr 09 2015 Jakub Filak <jfilak@redhat.com> 2.5.1-1
|
||||
- Translation updates
|
||||
- problem: use 'type' element instead of 'analyzer'
|
||||
- cli-status: don't return 0 if there is a problem older than limit
|
||||
- cli: use the DBus methods for getting problem information
|
||||
- journal-oops: add an argument accepting journal directory
|
||||
- lib: don't expect kernel's version '2.6.*' or '3.*.*'
|
||||
- dbus: add new method to test existence of an element
|
||||
- vmcore: generate 'reason' file in all cases
|
||||
- applet: Don't show report button for unpackaged programs
|
||||
- applet: get the list of problems through D-Bus service
|
||||
- Resolves: #1205439
|
||||
|
||||
* Fri Mar 20 2015 Jakub Filak <jfilak@redhat.com> 2.5.0-2
|
||||
- applet: re-enable notifications of problems not-yet seen problems at start-up
|
||||
|
||||
* Wed Mar 18 2015 Jakub Filak <jfilak@redhat.com> 2.5.0-1
|
||||
- dbus: add a new method GetProblemData
|
||||
- abrt_event: run save package data event even if component exists
|
||||
- a-a-s-container-data: add a new argument --root
|
||||
- a-a-s-kernel-data: add --root argument
|
||||
- journal-oops: add an argument similar to '--merge'
|
||||
- ccpp: create the dump location from standalone hook
|
||||
- retrace-client: stop failing on SSL2
|
||||
- spec: changes for Atomic hosts
|
||||
- ccpp: add support for multiple pkg mngrs
|
||||
- Python 3 compatibility
|
||||
- Don't allow users to list problems "by hand"
|
||||
- spec: abrt-python requires libreport-python to build
|
||||
- Resolves: #1200852
|
||||
|
||||
* Fri Feb 20 2015 Jakub Filak <jfilak@redhat.com> - 2.4.0-1
|
||||
- gracefully handle crashes in containers
|
||||
- reworked abrt-applet's work-flow
|
||||
- process unpackaged by default
|
||||
- support collecting coredumps from systemd-coredumpctl
|
||||
- search for log lines in journald more efficiently
|
||||
- support sending micro-reports without the need to save coredump
|
||||
- create a new package abrt-coredump-helper for Fedora Atomic
|
||||
|
||||
* Fri Nov 07 2014 Jakub Filak <jfilak@redhat.com> - 2.3.0-5
|
||||
- koops: improve 'reason' text for page faults
|
||||
- do not detect Firefox crashes
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
faa666301f4512723486300212cd7e58 abrt-2.3.0.tar.gz
|
||||
936fa2b51d58d5c00729b8512ffa2a68 abrt-2.6.1.tar.gz
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue