[abrt/f21] abrt 2.3.0-4

Matej Habrnal mhabrnal at fedoraproject.org
Tue Feb 24 14:03:06 UTC 2015


commit bcb3c1eff186f1b99ad26cd35ed96c6191f27101
Author: Matej Habrnal <mhabrnal at redhat.com>
Date:   Fri Feb 20 17:17:05 2015 +0100

    abrt 2.3.0-4
    
    Signed-off-by: Matej Habrnal <mhabrnal at redhat.com>

 ...-gdb-disable-loading-of-auto-loaded-files.patch | 120 ++++++++++++++
 ...ake-gdb-aware-of-the-abrt-s-debuginfo-dir.patch | 175 +++++++++++++++++++++
 ...-load-the-configuration-from-correct-file.patch |  31 ++++
 0047-vmcore-catch-IOErrors-and-OSErrors.patch      |  41 +++++
 ...ove-original-vmcore-file-in-the-last-step.patch |  43 +++++
 0050-console-notifications-add-timeout.patch       |  25 +++
 ...-unbounded-amounts-of-data-when-invoking-.patch |  29 ++++
 ...rnalctl-invocations-replace-grep-tail-pip.patch |  29 ++++
 abrt.spec                                          |  25 ++-
 9 files changed, 515 insertions(+), 3 deletions(-)
---
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 <jfilak at redhat.com>
+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 <jfilak at redhat.com>
+---
+ 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 <jfilak at redhat.com>
+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 <jkratoch at redhat.com>
+
+Requires: rhbz#1163335
+
+Signed-off-by: Jakub Filak <jfilak at redhat.com>
+---
+ 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 <jfilak at redhat.com>
+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 <jfilak at redhat.com>
+---
+ 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 <jfilak at redhat.com>
+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 <jfilak at redhat.com>
+---
+ 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 <jfilak at redhat.com>
+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 <jfilak at redhat.com>
+---
+ 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 <jfilak at redhat.com>
+Date: Tue, 20 Jan 2015 15:12:05 +0100
+Subject: [PATCH] console-notifications: add timeout
+
+Related to #898
+
+Signed-off-by: Jakub Filak <jfilak at redhat.com>
+---
+ 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 <greg at gregorycollins.net>
+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 <greg at gregorycollins.net>
+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 <mhabrnal at redhat.com> - 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 <jfilak at redhat.com> - 2.3.0-3
 - re-enable GPGCheck: report only signed packages
 - koops: improve 'reason' text for page faults


More information about the scm-commits mailing list