diff --git a/0043-Revert-gdb-disable-loading-of-auto-loaded-files.patch b/0043-Revert-gdb-disable-loading-of-auto-loaded-files.patch new file mode 100644 index 0000000..03d5f0b --- /dev/null +++ b/0043-Revert-gdb-disable-loading-of-auto-loaded-files.patch @@ -0,0 +1,120 @@ +From a8df76250f97903d1bac872bb53b9d41721d5da9 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Wed, 12 Nov 2014 15:49:13 +0100 +Subject: [PATCH] Revert "gdb: disable loading of auto-loaded files" + +This reverts commit 77a270a948216a8bb5bcc960042aeb467794b593. + +Turning auto-load off also turns the pretty printer off. + +Unfortunately, we must trust to providers of the auto-loaded scripts. +(Jakub Filak must start fixing root causes and stop treating symptoms.) + +Signed-off-by: Jakub Filak +--- + src/lib/hooklib.c | 40 +++++++++++++++++++--------------------- + 1 file changed, 19 insertions(+), 21 deletions(-) + +diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c +index 21ad9e0..4a50727 100644 +--- a/src/lib/hooklib.c ++++ b/src/lib/hooklib.c +@@ -252,12 +252,10 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + /* Let user know what's going on */ + log(_("Generating backtrace")); + +- char *args[23]; ++ char *args[21]; + args[0] = (char*)"gdb"; + args[1] = (char*)"-batch"; + args[2] = (char*)"-ex"; +- args[3] = (char*)"set auto-load off"; +- args[4] = (char*)"-ex"; + struct strbuf *set_debug_file_directory = strbuf_new(); + if(debuginfo_dirs == NULL) + { +@@ -280,7 +278,7 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + p = colon_or_nul; + } + } +- args[5] = strbuf_free_nobuf(set_debug_file_directory); ++ args[3] = strbuf_free_nobuf(set_debug_file_directory); + + /* "file BINARY_FILE" is needed, without it gdb cannot properly + * unwind the stack. Currently the unwind information is located +@@ -302,27 +300,27 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + * TODO: check mtimes on COREFILE and BINARY_FILE and not supply + * BINARY_FILE if it is newer (to at least avoid gdb complaining). + */ +- args[6] = (char*)"-ex"; +- args[7] = xasprintf("file %s", executable); ++ args[4] = (char*)"-ex"; ++ args[5] = xasprintf("file %s", executable); + free(executable); + +- args[8] = (char*)"-ex"; +- args[9] = xasprintf("core-file %s/"FILENAME_COREDUMP, dump_dir_name); ++ args[6] = (char*)"-ex"; ++ args[7] = xasprintf("core-file %s/"FILENAME_COREDUMP, dump_dir_name); + ++ args[8] = (char*)"-ex"; ++ /*args[9] = ... see below */ + args[10] = (char*)"-ex"; +- /*args[11] = ... see below */ +- args[12] = (char*)"-ex"; +- args[13] = (char*)"info sharedlib"; ++ args[11] = (char*)"info sharedlib"; + /* glibc's abort() stores its message in __abort_msg variable */ ++ args[12] = (char*)"-ex"; ++ args[13] = (char*)"print (char*)__abort_msg"; + args[14] = (char*)"-ex"; +- args[15] = (char*)"print (char*)__abort_msg"; ++ args[15] = (char*)"print (char*)__glib_assert_msg"; + args[16] = (char*)"-ex"; +- args[17] = (char*)"print (char*)__glib_assert_msg"; ++ args[17] = (char*)"info all-registers"; + args[18] = (char*)"-ex"; +- args[19] = (char*)"info all-registers"; +- args[20] = (char*)"-ex"; +- args[21] = (char*)"disassemble"; +- args[22] = NULL; ++ args[19] = (char*)"disassemble"; ++ args[20] = NULL; + + /* Get the backtrace, but try to cap its size */ + /* Limit bt depth. With no limit, gdb sometimes OOMs the machine */ +@@ -332,9 +330,9 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + char *bt = NULL; + while (1) + { +- args[11] = xasprintf("%s backtrace %u%s", thread_apply_all, bt_depth, full); ++ args[9] = xasprintf("%s backtrace %u%s", thread_apply_all, bt_depth, full); + bt = exec_vp(args, /*redirect_stderr:*/ 1, timeout_sec, NULL); +- free(args[11]); ++ free(args[9]); + if ((bt && strnlen(bt, 256*1024) < 256*1024) || bt_depth <= 32) + { + break; +@@ -359,7 +357,7 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + * End of assembler dump. + * (IOW: "empty" dump) + */ +- args[21] = (char*)"disassemble $pc-20, $pc+64"; ++ args[19] = (char*)"disassemble $pc-20, $pc+64"; + + if (bt_depth <= 64 && thread_apply_all[0] != '\0') + { +@@ -375,9 +373,9 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + } + } + ++ free(args[3]); + free(args[5]); + free(args[7]); +- free(args[9]); + return bt; + } + +-- +2.1.0 + diff --git a/0044-gdb-make-gdb-aware-of-the-abrt-s-debuginfo-dir.patch b/0044-gdb-make-gdb-aware-of-the-abrt-s-debuginfo-dir.patch new file mode 100644 index 0000000..87fdc09 --- /dev/null +++ b/0044-gdb-make-gdb-aware-of-the-abrt-s-debuginfo-dir.patch @@ -0,0 +1,175 @@ +From 4eee77568fe24bcb9341ee9c2eaa74cb048103cb Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Thu, 13 Nov 2014 12:08:07 +0100 +Subject: [PATCH] gdb: make gdb aware of the abrt's debuginfo dir + +A debuginfo package might ship an auto-loaded gdb script. If abrt +unpacks that package into the abrt's debuginfo cache dir and points gdb +to that directory, gdb refuses to auto-loaded that gdb scripts and +produces a plenty of warning messages that abrt writes to 'backtrace' +file. + +The previous solution of this issue was to turn auto-load off completely +but it turned the pretty printer off too. + +The correct solution is to add the abrt's debuginfo cache directory to +auto-load safe-path and auto-load scripts-dir settings. + +Thanks Jan Kratochvil + +Requires: rhbz#1163335 + +Signed-off-by: Jakub Filak +--- + src/lib/hooklib.c | 83 ++++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 55 insertions(+), 28 deletions(-) + +diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c +index 4a50727..1d45cdd 100644 +--- a/src/lib/hooklib.c ++++ b/src/lib/hooklib.c +@@ -252,11 +252,12 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + /* Let user know what's going on */ + log(_("Generating backtrace")); + +- char *args[21]; +- args[0] = (char*)"gdb"; +- args[1] = (char*)"-batch"; +- args[2] = (char*)"-ex"; ++ unsigned i = 0; ++ char *args[25]; ++ args[i++] = (char*)"gdb"; ++ args[i++] = (char*)"-batch"; + struct strbuf *set_debug_file_directory = strbuf_new(); ++ unsigned auto_load_base_index = 0; + if(debuginfo_dirs == NULL) + { + // set non-existent debug file directory to prevent resolving +@@ -266,6 +267,8 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + else + { + strbuf_append_str(set_debug_file_directory, "set debug-file-directory /usr/lib/debug"); ++ ++ struct strbuf *debug_directories = strbuf_new(); + const char *p = debuginfo_dirs; + while (1) + { +@@ -274,11 +277,25 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + if (*p == '\0') + break; + const char *colon_or_nul = strchrnul(p, ':'); +- strbuf_append_strf(set_debug_file_directory, ":%.*s/usr/lib/debug", (int)(colon_or_nul - p), p); ++ strbuf_append_strf(debug_directories, "%s%.*s/usr/lib/debug", (debug_directories->len == 0 ? "" : ":"), ++ (int)(colon_or_nul - p), p); + p = colon_or_nul; + } ++ ++ strbuf_append_strf(set_debug_file_directory, ":%s", debug_directories->buf); ++ ++ args[i++] = (char*)"-iex"; ++ auto_load_base_index = i; ++ args[i++] = xasprintf("add-auto-load-safe-path %s", debug_directories->buf); ++ args[i++] = (char*)"-iex"; ++ args[i++] = xasprintf("add-auto-load-scripts-directory %s", debug_directories->buf); ++ ++ strbuf_free(debug_directories); + } +- args[3] = strbuf_free_nobuf(set_debug_file_directory); ++ ++ args[i++] = (char*)"-ex"; ++ const unsigned debug_dir_cmd_index = i++; ++ args[debug_dir_cmd_index] = strbuf_free_nobuf(set_debug_file_directory); + + /* "file BINARY_FILE" is needed, without it gdb cannot properly + * unwind the stack. Currently the unwind information is located +@@ -300,27 +317,31 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + * TODO: check mtimes on COREFILE and BINARY_FILE and not supply + * BINARY_FILE if it is newer (to at least avoid gdb complaining). + */ +- args[4] = (char*)"-ex"; +- args[5] = xasprintf("file %s", executable); ++ args[i++] = (char*)"-ex"; ++ const unsigned file_cmd_index = i++; ++ args[file_cmd_index] = xasprintf("file %s", executable); + free(executable); + +- args[6] = (char*)"-ex"; +- args[7] = xasprintf("core-file %s/"FILENAME_COREDUMP, dump_dir_name); ++ args[i++] = (char*)"-ex"; ++ const unsigned core_cmd_index = i++; ++ args[core_cmd_index] = xasprintf("core-file %s/"FILENAME_COREDUMP, dump_dir_name); + +- args[8] = (char*)"-ex"; ++ args[i++] = (char*)"-ex"; ++ const unsigned bt_cmd_index = i++; + /*args[9] = ... see below */ +- args[10] = (char*)"-ex"; +- args[11] = (char*)"info sharedlib"; ++ args[i++] = (char*)"-ex"; ++ args[i++] = (char*)"info sharedlib"; + /* glibc's abort() stores its message in __abort_msg variable */ +- args[12] = (char*)"-ex"; +- args[13] = (char*)"print (char*)__abort_msg"; +- args[14] = (char*)"-ex"; +- args[15] = (char*)"print (char*)__glib_assert_msg"; +- args[16] = (char*)"-ex"; +- args[17] = (char*)"info all-registers"; +- args[18] = (char*)"-ex"; +- args[19] = (char*)"disassemble"; +- args[20] = NULL; ++ args[i++] = (char*)"-ex"; ++ args[i++] = (char*)"print (char*)__abort_msg"; ++ args[i++] = (char*)"-ex"; ++ args[i++] = (char*)"print (char*)__glib_assert_msg"; ++ args[i++] = (char*)"-ex"; ++ args[i++] = (char*)"info all-registers"; ++ args[i++] = (char*)"-ex"; ++ const unsigned dis_cmd_index = i++; ++ args[dis_cmd_index] = (char*)"disassemble"; ++ args[i++] = NULL; + + /* Get the backtrace, but try to cap its size */ + /* Limit bt depth. With no limit, gdb sometimes OOMs the machine */ +@@ -330,9 +351,9 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + char *bt = NULL; + while (1) + { +- args[9] = xasprintf("%s backtrace %u%s", thread_apply_all, bt_depth, full); ++ args[bt_cmd_index] = xasprintf("%s backtrace %u%s", thread_apply_all, bt_depth, full); + bt = exec_vp(args, /*redirect_stderr:*/ 1, timeout_sec, NULL); +- free(args[9]); ++ free(args[bt_cmd_index]); + if ((bt && strnlen(bt, 256*1024) < 256*1024) || bt_depth <= 32) + { + break; +@@ -357,7 +378,7 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + * End of assembler dump. + * (IOW: "empty" dump) + */ +- args[19] = (char*)"disassemble $pc-20, $pc+64"; ++ args[dis_cmd_index] = (char*)"disassemble $pc-20, $pc+64"; + + if (bt_depth <= 64 && thread_apply_all[0] != '\0') + { +@@ -373,9 +394,15 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + } + } + +- free(args[3]); +- free(args[5]); +- free(args[7]); ++ if (auto_load_base_index > 0) ++ { ++ free(args[auto_load_base_index]); ++ free(args[auto_load_base_index + 2]); ++ } ++ ++ free(args[debug_dir_cmd_index]); ++ free(args[file_cmd_index]); ++ free(args[core_cmd_index]); + return bt; + } + +-- +2.1.0 + diff --git a/0046-python-load-the-configuration-from-correct-file.patch b/0046-python-load-the-configuration-from-correct-file.patch new file mode 100644 index 0000000..d1d6b41 --- /dev/null +++ b/0046-python-load-the-configuration-from-correct-file.patch @@ -0,0 +1,31 @@ +From fcc37ca833fdc20573a1e1a7d46712e243f8615e Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Tue, 25 Nov 2014 15:54:15 +0100 +Subject: [PATCH] python: load the configuration from correct file + +Python2 exception handler has its configuration stored in python.conf +file. + +Related: rhbz#1166633 + +Signed-off-by: Jakub Filak +--- + src/hooks/abrt_exception_handler.py.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/hooks/abrt_exception_handler.py.in b/src/hooks/abrt_exception_handler.py.in +index fa4f34f..8412e5f 100644 +--- a/src/hooks/abrt_exception_handler.py.in ++++ b/src/hooks/abrt_exception_handler.py.in +@@ -177,7 +177,7 @@ def require_abs_path(): + import problem + + try: +- conf = problem.load_plugin_conf_file("python3.conf") ++ conf = problem.load_plugin_conf_file("python.conf") + except OsError: + return False + +-- +2.1.0 + diff --git a/0047-vmcore-catch-IOErrors-and-OSErrors.patch b/0047-vmcore-catch-IOErrors-and-OSErrors.patch new file mode 100644 index 0000000..b40dcde --- /dev/null +++ b/0047-vmcore-catch-IOErrors-and-OSErrors.patch @@ -0,0 +1,41 @@ +From 01557f26b84f392dd74083b47d763def27683410 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Thu, 27 Nov 2014 12:45:04 +0100 +Subject: [PATCH] vmcore: catch IOErrors and OSErrors + +Perhaps some temporary data cleaner removed problem directory while the hook +was still using in. + +Resolves: rhbz#1077241 + +Signed-off-by: Jakub Filak +--- + src/hooks/abrt_harvest_vmcore.py.in | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/hooks/abrt_harvest_vmcore.py.in b/src/hooks/abrt_harvest_vmcore.py.in +index 17e2be8..c6a7e6b 100644 +--- a/src/hooks/abrt_harvest_vmcore.py.in ++++ b/src/hooks/abrt_harvest_vmcore.py.in +@@ -272,8 +272,16 @@ def harvest_vmcore(): + except OSError: + sys.stderr.write("Unable to delete '%s'. Ignoring\n" % f_full) + +- # Let abrtd know what type of problem it is: +- create_abrtd_info(destdirnew) ++ try: ++ # Let abrtd know what type of problem it is: ++ create_abrtd_info(destdirnew) ++ except EnvironmentError as ex: ++ sys.stderr.write("Unable to create problem directory info: " + str(ex)) ++ try: ++ shutil.rmtree(destdirnew) ++ except Exception as ex: ++ sys.stderr.write("Unable to remove incomplete problem directory: " + str(ex)) ++ continue + + # chown -R 0:0 + change_owner_rec(destdirnew) +-- +2.1.0 + diff --git a/0048-vmcore-remove-original-vmcore-file-in-the-last-step.patch b/0048-vmcore-remove-original-vmcore-file-in-the-last-step.patch new file mode 100644 index 0000000..8086ee3 --- /dev/null +++ b/0048-vmcore-remove-original-vmcore-file-in-the-last-step.patch @@ -0,0 +1,43 @@ +From 479f1a6dd0406d50794dd77312d430e6ca8a22d6 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Thu, 27 Nov 2014 14:30:48 +0100 +Subject: [PATCH] vmcore: remove original vmcore file in the last step + +Signed-off-by: Jakub Filak +--- + src/hooks/abrt_harvest_vmcore.py.in | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/hooks/abrt_harvest_vmcore.py.in b/src/hooks/abrt_harvest_vmcore.py.in +index c6a7e6b..256f8f1 100644 +--- a/src/hooks/abrt_harvest_vmcore.py.in ++++ b/src/hooks/abrt_harvest_vmcore.py.in +@@ -266,12 +266,6 @@ def harvest_vmcore(): + shutil.rmtree(destdirnew) + continue + +- if copyvmcore == 'no': +- try: +- shutil.rmtree(f_full) +- except OSError: +- sys.stderr.write("Unable to delete '%s'. Ignoring\n" % f_full) +- + try: + # Let abrtd know what type of problem it is: + create_abrtd_info(destdirnew) +@@ -291,6 +285,12 @@ def harvest_vmcore(): + # Get rid of the .new suffix + shutil.move(destdirnew, destdir) + ++ if copyvmcore == 'no': ++ try: ++ shutil.rmtree(f_full) ++ except OSError: ++ sys.stderr.write("Unable to delete '%s'. Ignoring\n" % f_full) ++ + problem.notify_new_path(destdir) + + +-- +2.1.0 + diff --git a/0050-console-notifications-add-timeout.patch b/0050-console-notifications-add-timeout.patch new file mode 100644 index 0000000..21e6b47 --- /dev/null +++ b/0050-console-notifications-add-timeout.patch @@ -0,0 +1,25 @@ +From e11ca890308b8e4e1a822a77336b8b540cf1128d Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Tue, 20 Jan 2015 15:12:05 +0100 +Subject: [PATCH] console-notifications: add timeout + +Related to #898 + +Signed-off-by: Jakub Filak +--- + src/cli/abrt-console-notification.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cli/abrt-console-notification.sh b/src/cli/abrt-console-notification.sh +index 976dfc3..a98f164 100755 +--- a/src/cli/abrt-console-notification.sh ++++ b/src/cli/abrt-console-notification.sh +@@ -39,4 +39,4 @@ if [ -f "$TMPPATH" ]; then + mv -f "$TMPPATH" "$SINCEFILE" >"$ABRT_DEBUG_LOG" 2>&1 + fi + +-abrt-cli status --since="$SINCE" 2>"$ABRT_DEBUG_LOG" ++timeout 10s abrt-cli status --since="$SINCE" 2>"$ABRT_DEBUG_LOG" || echo "'abrt-cli status' timed out" +-- +2.1.0 + diff --git a/0051-Don-t-slurp-unbounded-amounts-of-data-when-invoking-.patch b/0051-Don-t-slurp-unbounded-amounts-of-data-when-invoking-.patch new file mode 100644 index 0000000..3b9b1af --- /dev/null +++ b/0051-Don-t-slurp-unbounded-amounts-of-data-when-invoking-.patch @@ -0,0 +1,29 @@ +From 0df5572c2a7e752efdbb86e854e2d1583e014546 Mon Sep 17 00:00:00 2001 +From: Gregory Collins +Date: Tue, 20 Jan 2015 18:39:42 -0800 +Subject: [PATCH] Don't slurp unbounded amounts of data when invoking + journalctl. Fixes #887. + +--- + src/plugins/ccpp_event.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/ccpp_event.conf b/src/plugins/ccpp_event.conf +index 9fbe760..223144e 100644 +--- a/src/plugins/ccpp_event.conf ++++ b/src/plugins/ccpp_event.conf +@@ -40,9 +40,9 @@ EVENT=post-create analyzer=CCpp + else + uid=`cat uid` && + log="[System Logs]:\n" && +- log=$log`journalctl -b --system | grep -F -e "$base_executable" | tail -99` && ++ log=$log`journalctl -b --since=-3m --system | grep -F -e "$base_executable" | tail -99` && + log=$log"\n[User Logs]:\n" && +- log=$log`journalctl _UID="$uid" -b | grep -F -e "$base_executable" | tail -99` && ++ log=$log`journalctl _UID="$uid" -b --since=-3m | grep -F -e "$base_executable" | tail -99` && + log=`echo -e "$log"` + fi + if test -n "$log"; then +-- +2.1.0 + diff --git a/0052-Rewrite-journalctl-invocations-replace-grep-tail-pip.patch b/0052-Rewrite-journalctl-invocations-replace-grep-tail-pip.patch new file mode 100644 index 0000000..549ed0e --- /dev/null +++ b/0052-Rewrite-journalctl-invocations-replace-grep-tail-pip.patch @@ -0,0 +1,29 @@ +From 554f0230864f1489eb494efa2592f8fa32aa4b18 Mon Sep 17 00:00:00 2001 +From: Gregory Collins +Date: Wed, 21 Jan 2015 04:38:58 +0100 +Subject: [PATCH] Rewrite journalctl invocations: replace grep/tail pipeline + with journalctl builtins. + +--- + src/plugins/ccpp_event.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/ccpp_event.conf b/src/plugins/ccpp_event.conf +index 223144e..15bb18c 100644 +--- a/src/plugins/ccpp_event.conf ++++ b/src/plugins/ccpp_event.conf +@@ -40,9 +40,9 @@ EVENT=post-create analyzer=CCpp + else + uid=`cat uid` && + log="[System Logs]:\n" && +- log=$log`journalctl -b --since=-3m --system | grep -F -e "$base_executable" | tail -99` && ++ log=$log`journalctl -b --since=-3m --system -n 99 _COMM="$base_executable"` && + log=$log"\n[User Logs]:\n" && +- log=$log`journalctl _UID="$uid" -b --since=-3m | grep -F -e "$base_executable" | tail -99` && ++ log=$log`journalctl -b --since=-3m -n 99 _COMM="$base_executable" _UID="$uid"` && + log=`echo -e "$log"` + fi + if test -n "$log"; then +-- +2.1.0 + diff --git a/abrt.spec b/abrt.spec index cb06b40..852b0b1 100644 --- a/abrt.spec +++ b/abrt.spec @@ -46,7 +46,7 @@ Summary: Automatic bug detection and reporting tool Name: abrt Version: 2.3.0 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ Group: Applications/System URL: https://github.com/abrt/abrt/wiki/ABRT-Project @@ -96,6 +96,16 @@ 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 +Patch0043: 0043-Revert-gdb-disable-loading-of-auto-loaded-files.patch +Patch0044: 0044-gdb-make-gdb-aware-of-the-abrt-s-debuginfo-dir.patch +#Patch0045: 0045-spec-update-the-required-gdb-version.patch +Patch0046: 0046-python-load-the-configuration-from-correct-file.patch +Patch0047: 0047-vmcore-catch-IOErrors-and-OSErrors.patch +Patch0048: 0048-vmcore-remove-original-vmcore-file-in-the-last-step.patch +#Patch0049: 0049-spec-add-missing-augeas-dependency.patch +Patch0050: 0050-console-notifications-add-timeout.patch +Patch0051: 0051-Don-t-slurp-unbounded-amounts-of-data-when-invoking-.patch +Patch0052: 0052-Rewrite-journalctl-invocations-replace-grep-tail-pip.patch # '%%autosetup -S git' -> git @@ -133,6 +143,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-python = %{version}-%{release} Requires(pre): shadow-utils +Requires: python-augeas Requires: python-dbus Requires: python-dmidecode Requires: libreport-plugin-ureport >= %{libreport_ver} @@ -195,7 +206,7 @@ GTK+ wizard for convenient bug reporting. Summary: %{name}'s C/C++ addon Group: System Environment/Libraries Requires: cpio -Requires: gdb >= 7.0-3 +Requires: gdb >= 7.8.1-31 Requires: elfutils %if 0%{!?rhel:1} # abrt-action-perform-ccpp-analysis wants to run analyze_RetraceServer: @@ -378,7 +389,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 @@ -1008,6 +1019,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh %changelog +* Tue Feb 24 2015 Matej Habrnal - 2.3.0-4 +- make gdb aware of the abrt's debuginfo dir +- python: load the configuration from correct file +- add missing augeas dependency +- console-notifications: add timeout +- Don't slurp unbounded amounts of data when invoking journalctl +- Resolves: #1177447 + * Mon Nov 10 2014 Jakub Filak - 2.3.0-3 - re-enable GPGCheck: report only signed packages - koops: improve 'reason' text for page faults