update to 2.0.1

This commit is contained in:
Jiri Moskovcak 2011-04-20 15:04:06 +02:00
commit cb93e6bf51
15 changed files with 48 additions and 1030 deletions

1
.gitignore vendored
View file

@ -3,3 +3,4 @@ abrt-1.1.13.tar.gz
/abrt-1.1.14.tar.gz
/abrt-1.1.17.tar.gz
/abrt-2.0.0.tar.gz
/abrt-2.0.1.tar.gz

View file

@ -1,35 +0,0 @@
commit 4def4f1609679232ea2c457ccc6bc4621184201d
Author: Karel Klic <kklic@redhat.com>
Date: Mon Mar 28 18:08:55 2011 +0200
abrt-action-analyze-backtrace: log backtrace parser failure every time; remove dead code
diff --git a/src/plugins/abrt-action-analyze-backtrace.c b/src/plugins/abrt-action-analyze-backtrace.c
index e65b178..b690fc9 100644
--- a/src/plugins/abrt-action-analyze-backtrace.c
+++ b/src/plugins/abrt-action-analyze-backtrace.c
@@ -88,13 +88,7 @@ int main(int argc, char **argv)
char *executable = dd_load_text(dd, FILENAME_EXECUTABLE);
/* Read backtrace */
- /* NB: get_backtrace() closes dd */
char *backtrace_str = dd_load_text(dd, FILENAME_BACKTRACE);
- if (!backtrace_str)
- {
- backtrace_str = xstrdup("");
- log("Backtrace file is missing");
- }
/* Compute backtrace hash */
struct btp_location location;
@@ -110,8 +104,8 @@ int main(int argc, char **argv)
* The parser failed. Compute the UUID from the executable
* and package only. This is not supposed to happen often.
*/
- VERB1 log(_("Backtrace parsing failed for %s"), dump_dir_name);
- VERB1 log("%d:%d: %s", location.line, location.column, location.message);
+ log(_("Backtrace parsing failed for %s"), dump_dir_name);
+ log("%d:%d: %s", location.line, location.column, location.message);
struct strbuf *emptybt = strbuf_new();
strbuf_prepend_str(emptybt, executable);
strbuf_prepend_str(emptybt, package);

View file

@ -1,25 +0,0 @@
commit 1972460bf7ad803097f8fb669dcb858f6135c7d5
Author: Karel Klic <kklic@redhat.com>
Date: Mon Mar 28 18:19:01 2011 +0200
abrt-action-analyze-backtrace: report failure when run on a dump_dir without backtrace
diff --git a/src/plugins/abrt-action-analyze-backtrace.c b/src/plugins/abrt-action-analyze-backtrace.c
index b690fc9..7ae7e47 100644
--- a/src/plugins/abrt-action-analyze-backtrace.c
+++ b/src/plugins/abrt-action-analyze-backtrace.c
@@ -88,7 +88,13 @@ int main(int argc, char **argv)
char *executable = dd_load_text(dd, FILENAME_EXECUTABLE);
/* Read backtrace */
- char *backtrace_str = dd_load_text(dd, FILENAME_BACKTRACE);
+ char *backtrace_str = dd_load_text_ext(dd, FILENAME_BACKTRACE,
+ DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
+ if (!backtrace_str)
+ {
+ dd_close(dd);
+ return 1;
+ }
/* Compute backtrace hash */
struct btp_location location;

View file

@ -1,11 +0,0 @@
--- abrt-1.0.9/src/Gui/ccgui.glade 2010-03-31 10:34:14.000000000 +0200
+++ abrt-1.0.9_hideprefs/src/Gui/ccgui.glade 2010-03-31 21:39:27.653364662 +0200
@@ -102,7 +102,7 @@
<child>
<widget class="GtkImageMenuItem" id="miPreferences">
<property name="label">gtk-preferences</property>
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<property name="always_show_image">True</property>

View file

@ -16,12 +16,12 @@
%if "0%{?_buildid}" != "0"
%define pkg_release 0.%{?_buildid}%{?dist}
%else
%define pkg_release 5%{?dist}
%define pkg_release 1%{?dist}
%endif
Summary: Automatic bug detection and reporting tool
Name: abrt
Version: 2.0.0
Version: 2.0.1
Release: %{?pkg_release}
License: GPLv2+
Group: Applications/System
@ -31,16 +31,7 @@ Source1: abrt.init
Source2: abrt-ccpp.init
Patch0: remove_libreport_python.patch
Patch1: blacklist.patch
Patch2: notify_persistence.patch
Patch3: notify_init_name.patch
Patch4: hash_not_in_bz.patch
Patch5: dont_continue_if_event_fails.patch
Patch6: cli_analyze_action_select.patch
Patch7: a-a-a-backtrace_better_error_handling.patch
Patch8: a-a-a_better2.patch
Patch9: g_prgname.patch
Patch10: settings_warning.patch
Patch11: split_debuginfo_install.patch
Patch2: allow_bz_for_koops.patch
BuildRequires: dbus-devel
BuildRequires: gtk2-devel
BuildRequires: curl-devel
@ -263,7 +254,7 @@ Group: System Environment/Daemons
Requires: abrt-addon-ccpp
Requires: gdb >= 7.0-3
Requires: httpd, mod_wsgi, mod_ssl, python-webob
Requires: mock, xz, elfutils, createrepo
Requires: mock, xz, elfutils, createrepo, rsync
%{?el6:Requires: python-argparse}
Requires(preun): /sbin/install-info
Requires(post): /sbin/install-info
@ -276,17 +267,7 @@ generation service over a network using HTTP protocol.
%setup -q
%patch0 -p1 -b .libreport_py
%patch1 -p1 -b .blacklist
%patch2 -p1 -b .persistence
%patch3 -p1 -b .notify_progname
%patch4 -p1 -b .bz_hash
%patch5 -p1 -b .analyze_fail
%patch6 -p1 -b .cli_analyze_select
%patch7 -p1 -b .error_handling
%patch8 -p1 -b .error_handling2
%patch9 -p1 -b .prgname
# FIXME remove when settings check is implemented
%patch10 -p1 -b .warning
%patch11 -p1 -b .diinstall
%patch2 -p1 -b bz_for_oops
%build
autoconf
@ -309,6 +290,9 @@ install -m 755 %SOURCE2 ${RPM_BUILD_ROOT}/%{_initrddir}/abrt-ccpp
mkdir -p $RPM_BUILD_ROOT/var/cache/abrt-di
mkdir -p $RPM_BUILD_ROOT/var/run/abrt
mkdir -p $RPM_BUILD_ROOT/var/spool/abrt
mkdir -p $RPM_BUILD_ROOT/var/spool/abrt-retrace
mkdir -p $RPM_BUILD_ROOT/var/cache/abrt-retrace
mkdir -p $RPM_BUILD_ROOT/var/log/abrt-retrace
mkdir -p $RPM_BUILD_ROOT/var/spool/abrt-upload
desktop-file-install \
@ -358,6 +342,7 @@ chown -R abrt:abrt %{_localstatedir}/cache/abrt-di
%post retrace-server
/sbin/install-info %{_infodir}/abrt-retrace-server %{_infodir}/dir 2> /dev/null || :
/usr/sbin/usermod -G mock apache 2> /dev/null || :
%preun
if [ "$1" -eq "0" ] ; then
@ -457,6 +442,7 @@ fi
%dir %{_sysconfdir}/%{name}
%dir %{_sysconfdir}/%{name}/plugins
%dir %{_sysconfdir}/%{name}/events.d
%dir %{_sysconfdir}/%{name}/events
#%dir %{_libdir}/%{name}
%{_mandir}/man8/abrtd.8.gz
%{_mandir}/man5/%{name}.conf.5.gz
@ -491,9 +477,10 @@ fi
%defattr(-,root,root,-)
%{_includedir}/abrt/*
%{_libdir}/libabrt*.so
%{_includedir}/btparser/*
%{_libdir}/libbtparser.so
#FIXME: this should go to libreportgtk-devel package
%{_libdir}/libreportgtk.so*
%{_libdir}/libreportgtk.so
%{_libdir}/pkgconfig/*
%doc doc/abrt-plugin doc/howto-write-reporter
@ -534,7 +521,7 @@ fi
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}/plugins/Kerneloops.conf
%{_sysconfdir}/%{name}/events/report_Kerneloops.xml
%{_sysconfdir}/%{name}/events.d/koops_events.conf
%config(noreplace) %{_sysconfdir}/%{name}/events.d/koops_events.conf
%{_mandir}/man7/abrt-KerneloopsReporter.7.gz
%{_bindir}/abrt-dump-oops
%{_bindir}/abrt-action-analyze-oops
@ -549,7 +536,7 @@ fi
%files plugin-mailx
%defattr(-,root,root,-)
%{_sysconfdir}/%{name}/events/report_Mailx.xml
%{_sysconfdir}/%{name}/events.d/mailx_events.conf
%config(noreplace) %{_sysconfdir}/%{name}/events.d/mailx_events.conf
%{_mandir}/man7/abrt-Mailx.7.gz
%{_bindir}/abrt-action-mailx
@ -565,6 +552,7 @@ fi
%files plugin-rhtsupport
%defattr(-,root,root,-)
%{_sysconfdir}/%{name}/events/report_RHTSupport.xml
%config(noreplace) %{_sysconfdir}/%{name}/events.d/rhtsupport_events.conf
# {_mandir}/man7/abrt-RHTSupport.7.gz
%{_bindir}/abrt-action-rhtsupport
@ -578,7 +566,7 @@ fi
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}/plugins/Python.conf
%{_bindir}/abrt-action-analyze-python
%{python_site}/*.py*
%{python_site}/abrt*.py*
%{python_site}/abrt.pth
%files cli
@ -595,12 +583,34 @@ fi
%config(noreplace) %{_sysconfdir}/%{name}/retrace.conf
%config(noreplace) %{_sysconfdir}/httpd/conf.d/retrace_httpd.conf
%config(noreplace) %{_sysconfdir}/yum.repos.d/retrace.repo
%{_bindir}/abrt-retrace-worker
%dir %attr(0775, apache, abrt) %{_localstatedir}/spool/abrt-retrace
%dir %attr(0755, abrt, abrt) %{_localstatedir}/cache/abrt-retrace
%dir %attr(0755, abrt, abrt) %{_localstatedir}/log/abrt-retrace
%caps(cap_setuid=ep) %{_bindir}/abrt-retrace-worker
%{_bindir}/abrt-retrace-cleanup
%{_bindir}/abrt-retrace-reposync
%{_bindir}/coredump2packages
%{python_site}/retrace.py*
%{_datadir}/abrt-retrace/*.py*
%{_datadir}/abrt-retrace/plugins/*.py*
%{_datadir}/abrt-retrace/*.wsgi
%{_infodir}/abrt-retrace-server*
%changelog
* Wed Apr 20 2011 Jiri Moskovcak <jmoskovc@redhat.com> 2.0.1-1
- updated to 2.0.1
- updated translation
- allowed reporting oops to bugzilla
- added warning when the plugin settings are wrong
- added help text in plugins settings
- the plugin settings dialog is translatable
- improved dir rescanning logic in abrt-gui
- fixed icons for child dialogs
- retrace-client: human readable messages instead of http codes
- save envirnment variables when app crashes
- fixed gpg/pgp check
- revert to the old icon
* Fri Apr 15 2011 Jiri Moskovcak <jmoskovc@redhat.com> 2.0.0-5
- fixed problem with abrt-action-debuginfo-install rhbz#692064

7
allow_bz_for_koops.patch Normal file
View file

@ -0,0 +1,7 @@
--- abrt-2.0.1/src/plugins/koops_events.conf 2011-03-30 21:10:14.000000000 +0200
+++ abrt-2.0.1_/src/plugins/koops_events.conf 2011-04-20 14:43:46.460859863 +0200
@@ -9,3 +9,4 @@
# report
EVENT=report_Kerneloops analyzer=Kerneloops abrt-action-kerneloops
+EVENT=report_Bugzilla analyzer=Kerneloops abrt-action-bugzilla

View file

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

View file

@ -1,25 +0,0 @@
commit 82ab98c161e01de5a41902ea1961016b4d4bccca
Author: Jiri Moskovcak <jmoskovc@redhat.com>
Date: Sun Mar 27 18:43:33 2011 +0200
gui-wizard-gtk: don't allow user to continue if analyzer fails
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 31c7bb2..33a6911 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -780,8 +780,12 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
char *msg = xasprintf(evd->end_msg, retval);
gtk_label_set_text(evd->status_label, msg);
free(msg);
- /* Unfreeze assistant */
- gtk_assistant_set_page_complete(g_assistant, evd->page_widget, true);
+ /* Unfreeze assistant
+ * we can't allow user to continue if analyze action fails
+ * i.e: if gdb fails to generate backtrace
+ */
+ if (retval == 0 || (strncmp(evd->event_name, "analyze", strlen("analyze")) != 0))
+ gtk_assistant_set_page_complete(g_assistant, evd->page_widget, true);
/*g_source_remove(evd->event_source_id);*/
close(evd->fd);

View file

@ -1,34 +0,0 @@
commit aa08665949da429660dd78a6d26a0fc3cb11d6cd
Author: Jiri Moskovcak <jmoskovc@redhat.com>
Date: Tue Mar 29 18:10:17 2011 +0200
gui: fixed the prgname trac#180
diff --git a/src/gui-gtk/main.c b/src/gui-gtk/main.c
index 4602012..b3f6bdc 100644
--- a/src/gui-gtk/main.c
+++ b/src/gui-gtk/main.c
@@ -147,6 +147,11 @@ int main(int argc, char **argv)
textdomain(PACKAGE);
#endif
+ /* without this the name is set to argv[0] which confuses
+ * desktops which uses the name to find the corresponding .desktop file
+ * trac#180
+ */
+ g_set_prgname("abrt");
gtk_init(&argc, &argv);
char *env_verbose = getenv("ABRT_VERBOSE");
diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c
index 1cb9e26..2914b30 100644
--- a/src/gui-wizard-gtk/main.c
+++ b/src/gui-wizard-gtk/main.c
@@ -69,6 +69,7 @@ int main(int argc, char **argv)
textdomain(PACKAGE);
#endif
+ g_set_prgname("abrt");
gtk_init(&argc, &argv);
char *env_verbose = getenv("ABRT_VERBOSE");

View file

@ -1,37 +0,0 @@
commit 42ab4016ea8901108a22233a1b4a44a995e9a194
Author: Nikola Pajkovsky <npajkovs@redhat.com>
Date: Mon Mar 28 14:01:53 2011 +0200
Ticket #160 Hash is not present in Bugzilla
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
diff --git a/src/plugins/abrt-action-bugzilla.cpp b/src/plugins/abrt-action-bugzilla.cpp
index abc3fa1..e5e5bc8 100644
--- a/src/plugins/abrt-action-bugzilla.cpp
+++ b/src/plugins/abrt-action-bugzilla.cpp
@@ -299,7 +299,8 @@ void ctx::get_bug_cc(xmlrpc_value* result_xml, struct bug_info* bz)
return;
}
-xmlrpc_value* ctx::call_quicksearch_duphash(const char* component, const char* release, const char* duphash)
+xmlrpc_value* ctx::call_quicksearch_duphash(const char* component,
+ const char* release, const char* duphash)
{
char *query = NULL;
if (!release)
@@ -657,6 +658,14 @@ static void report_to_bugzilla(
const char *component = get_crash_item_content_or_NULL(crash_data, FILENAME_COMPONENT);
const char *duphash = get_crash_item_content_or_NULL(crash_data, FILENAME_DUPHASH);
+ if (!duphash)
+ error_msg_and_die(_("Essential file '%s' is missing, can't continue.."),
+ FILENAME_DUPHASH);
+
+ if (!*duphash)
+ error_msg_and_die(_("Essential file '%s' is empty, can't continue.."),
+ FILENAME_DUPHASH);
+
const char *release = get_crash_item_content_or_NULL(crash_data, FILENAME_OS_RELEASE);
if (!release) /* Old dump dir format compat. Remove in abrt-2.1 */
release = get_crash_item_content_or_NULL(crash_data, "release");

View file

@ -1,19 +0,0 @@
commit 466f32513e67bf937d42321d1b979c5a477905b6
Author: Jiri Moskovcak <jmoskovc@redhat.com>
Date: Mon Mar 28 17:26:00 2011 +0200
applet: fixed the notification program name
diff --git a/src/applet/applet_gtk.c b/src/applet/applet_gtk.c
index 0ba9499..8071ec1 100644
--- a/src/applet/applet_gtk.c
+++ b/src/applet/applet_gtk.c
@@ -355,7 +355,7 @@ struct applet *applet_new(const char* app_name)
applet->ap_menu = create_menu(applet);
}
- notify_init(app_name);
+ notify_init("abrt");
return applet;
}

View file

@ -1,153 +0,0 @@
commit 78304637542f455b4a00ab32c418b00d2ee17781
Author: Jiri Moskovcak <jmoskovc@redhat.com>
Date: Mon Mar 28 15:23:01 2011 +0200
applet: really fixed: don't show status icon when server support persistence trac#127
diff --git a/src/applet/applet_gtk.c b/src/applet/applet_gtk.c
index 78719ef..0ba9499 100644
--- a/src/applet/applet_gtk.c
+++ b/src/applet/applet_gtk.c
@@ -21,26 +21,26 @@
static gboolean persistent_notification;
-#if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7)
+#if defined(NOTIFY_VERSION_MINOR) && (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR >= 6)
static gboolean server_has_persistence (void)
{
- gboolean has;
- GList *caps;
- GList *l;
-
- caps = notify_get_server_caps ();
- if (caps == NULL) {
- fprintf (stderr, "Failed to receive server caps.\n");
- return FALSE;
- }
-
- l = g_list_find_custom (caps, "persistence", (GCompareFunc)strcmp);
- has = l != NULL;
+ gboolean has;
+ GList *caps;
+ GList *l;
+
+ caps = notify_get_server_caps ();
+ if (caps == NULL) {
+ fprintf (stderr, "Failed to receive server caps.\n");
+ return FALSE;
+ }
- g_list_foreach (caps, (GFunc) g_free, NULL);
- g_list_free (caps);
+ l = g_list_find_custom (caps, "persistence", (GCompareFunc)strcmp);
+ has = l != NULL;
- return has;
+ g_list_foreach (caps, (GFunc) g_free, NULL);
+ g_list_free (caps);
+ VERB1 log("notify server %s support pesistence\n", has ? "DOES" : "DOESN'T");
+ return has;
}
#endif
@@ -328,7 +328,7 @@ struct applet *applet_new(const char* app_name)
{
struct applet *applet = (struct applet*)xzalloc(sizeof(struct applet));
applet->ap_daemon_running = true;
-#if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7)
+#if defined(NOTIFY_VERSION_MINOR) && (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR >= 6)
persistent_notification = server_has_persistence();
#endif
@@ -398,11 +398,11 @@ void show_crash_notification(struct applet *applet, const char* crash_dir, const
notify_notification_add_action(notification, "REPORT", _("Report"),
NOTIFY_ACTION_CALLBACK(action_report),
applet, NULL);
- notify_notification_add_action(notification, "OPEN_MAIN_WINDOW", _("Open ABRT"),
+ notify_notification_add_action(notification, "default", _("Show"),
NOTIFY_ACTION_CALLBACK(action_open_gui),
applet, NULL);
- notify_notification_update(notification, _("Warning"), buf, NULL);
+ notify_notification_update(notification, _("A Problem has Occurred"), buf, NULL);
free(buf);
GError *err = NULL;
notify_notification_show(notification, &err);
@@ -429,7 +429,7 @@ void show_msg_notification(struct applet *applet, const char *format, ...)
notify_notification_add_action(notification, "OPEN_MAIN_WINDOW", _("Open ABRT"),
NOTIFY_ACTION_CALLBACK(action_open_gui),
applet, NULL);
- notify_notification_update(notification, _("Warning"), buf, NULL);
+ notify_notification_update(notification, _("A Problem has Occurred"), buf, NULL);
free(buf);
GError *err = NULL;
notify_notification_show(notification, &err);
commit 74eefaaaf84fbb3504881c337e9ee84c5aa4d14c
Author: Jiri Moskovcak <jmoskovc@redhat.com>
Date: Wed Mar 30 16:01:17 2011 +0200
applet: postpone the applet initialization as much as possible related#trac#127
- seems like server_has_persistence() returns false when it's called
at the time of applet start, my guess is that the notifyd service setup
is not finished at this time, so I moved applet init to the time of
the first crash, where all the desktop/notifyd thing should be ready
diff --git a/src/applet/applet.c b/src/applet/applet.c
index a49725b..eee3d10 100644
--- a/src/applet/applet.c
+++ b/src/applet/applet.c
@@ -26,9 +26,16 @@
#include "abrt_dbus.h"
#include "applet_gtk.h"
-
+//This variable is not used anywhere, remove or change to "abrt" and use it
+const char * app_name = "abrt-gui";
static struct applet* applet = NULL;
+/* Initialize GUI stuff. */
+static void init_applet()
+{
+ if (applet == NULL)
+ applet = applet_new(app_name);
+}
static void Crash(DBusMessage* signal)
{
@@ -76,6 +83,7 @@ static void Crash(DBusMessage* signal)
const char* message = _("A crash in the %s package has been detected");
if (package_name[0] == '\0')
message = _("A crash has been detected");
+ init_applet();
//applet->AddEvent(uid, package_name);
set_icon_tooltip(applet, message, package_name);
show_icon(applet);
@@ -118,6 +126,7 @@ static void QuotaExceeded(DBusMessage* signal)
//if (m_pSessionDBus->has_name("com.redhat.abrt.gui"))
// return;
+ init_applet();
show_icon(applet);
show_msg_notification(applet, "%s", str);
}
@@ -198,7 +207,6 @@ static void die_if_dbus_error(bool error_flag, DBusError* err, const char* msg)
int main(int argc, char** argv)
{
- const char * app_name = "abrt-gui";
/* I18n */
setlocale(LC_ALL, "");
#if ENABLE_NLS
@@ -255,10 +263,6 @@ int main(int argc, char** argv)
dbus_bus_add_match(system_conn, "type='signal',path='/com/redhat/abrt'", &err);
die_if_dbus_error(false, &err, "Can't add dbus match");
- /* Initialize GUI stuff.
- * Note: inside CApplet ctor, libnotify hooks session dbus
- * to glib main loop */
- applet = applet_new(app_name);
/* dbus_abrt cannot handle more than one bus, and we don't really need to.
* The only thing we want to do is to announce ourself on session dbus */
DBusConnection* session_conn = dbus_bus_get(DBUS_BUS_SESSION, &err);

View file

@ -1,22 +0,0 @@
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 31c7bb2..e08dc4e 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1268,6 +1268,17 @@ static void add_pages(void)
config_btn = GTK_WIDGET(gtk_builder_get_object(builder, "button_cfg2"));
if (config_btn)
g_signal_connect(G_OBJECT(config_btn), "clicked", G_CALLBACK(on_show_event_list_cb), NULL);
+
+ //hack to warn user about settings - will be removed before F15 GOLD
+ GtkWidget *settings_warning_eb = gtk_event_box_new();
+ GtkWidget *settings_warning_lbl = gtk_label_new(_("Please make sure you configured the reporters."));
+ gtk_container_add(GTK_CONTAINER(settings_warning_eb), settings_warning_lbl);
+ gtk_box_pack_start(GTK_BOX(pages[PAGENO_REPORTER_SELECTOR].page_widget), settings_warning_eb, false, false, 0);
+ GdkColor bg_color;
+ gdk_color_parse("red", &bg_color);
+ gtk_widget_modify_bg(settings_warning_eb, GTK_STATE_NORMAL, &bg_color);
+ gtk_widget_show_all(settings_warning_eb);
+
}
void create_assistant()

View file

@ -1 +1 @@
c4b486d64d0d908f56785e51be756ebc abrt-2.0.0.tar.gz
ead5853a19b070f548a887755fb015f1 abrt-2.0.1.tar.gz

View file

@ -1,328 +0,0 @@
--- /dev/null
+++ b/src/plugins/abrt-action-analyzecore.py
@@ -0,0 +1,184 @@
+#! /usr/bin/python -u
+# -*- coding: utf-8 -*-
+
+# WARNING: python -u means unbuffered I/O without it the messages are
+# passed to the parent asynchronously which looks bad in clients..
+from subprocess import Popen, PIPE
+import sys
+import os
+import getopt
+
+# everything was ok
+RETURN_OK = 0
+# serious problem, should be logged somewhere
+RETURN_FAILURE = 2
+
+
+GETTEXT_PROGNAME = "abrt"
+import locale
+import gettext
+
+_ = lambda x: gettext.lgettext(x)
+
+def init_gettext():
+ try:
+ locale.setlocale(locale.LC_ALL, "")
+ except locale.Error:
+ os.environ['LC_ALL'] = 'C'
+ locale.setlocale(locale.LC_ALL, "")
+ gettext.bind_textdomain_codeset(GETTEXT_PROGNAME, locale.nl_langinfo(locale.CODESET))
+ gettext.bindtextdomain(GETTEXT_PROGNAME, '/usr/share/locale')
+ gettext.textdomain(GETTEXT_PROGNAME)
+
+
+old_stdout = -1
+def mute_stdout():
+ if verbose < 2:
+ global old_stdout
+ old_stdout = sys.stdout
+ sys.stdout = open("/dev/null", "w")
+
+def unmute_stdout():
+ if verbose < 2:
+ if old_stdout != -1:
+ sys.stdout = old_stdout
+ else:
+ print "ERR: unmute called without mute?"
+
+verbose = 0
+def log1(message):
+ """ prints log message if verbosity > 0 """
+ if verbose > 0:
+ print "LOG1:", message
+
+def log2(message):
+ """ prints log message if verbosity > 1 """
+ if verbose > 1:
+ print "LOG2:", message
+
+#eu_unstrip_OUT=`eu-unstrip "--core=$core" -n 2>eu_unstrip.ERR`
+def extract_info_from_core(coredump_name):
+ """
+ Extracts builds with filenames,
+ Returns a list of tuples (build_id, filename)
+ """
+ #OFFSET = 0
+ BUILD_ID = 1
+ LIBRARY = 2
+ #SEP = 3
+ EXECUTABLE = 4
+
+ print _("Analyzing coredump '%s'") % coredump_name
+ eu_unstrip_OUT = Popen(["eu-unstrip","--core=%s" % coredump_name, "-n"], stdout=PIPE, bufsize=-1).communicate()[0]
+ # parse eu_unstrip_OUT and return the list of build_ids
+
+ # eu_unstrip_OUT = ("0x7f42362ca000+0x204000 c4d35d993598a6242f7525d024b5ec3becf5b447@0x7f42362ca1a0 /usr/lib64/libcanberra-gtk.so.0 - libcanberra-gtk.so.0\n"
+ # "0x3afa400000+0x210000 607308f916c13c3ad9ee503008d31fa671ba73ce@0x3afa4001a0 /usr/lib64/libcanberra.so.0 - libcanberra.so.0\n"
+ # "0x3afa400000+0x210000 607308f916c13c3ad9ee503008d31fa671ba73ce@0x3afa4001a0 /usr/lib64/libcanberra.so.0 - libcanberra.so.0\n"
+ # "0x3bc7000000+0x208000 3be016bb723e85779a23e111a8ab1a520b209422@0x3bc70001a0 /usr/lib64/libvorbisfile.so.3 - libvorbisfile.so.3\n"
+ # "0x7f423609e000+0x22c000 87f9c7d9844f364c73aa2566d6cfc9c5fa36d35d@0x7f423609e1a0 /usr/lib64/libvorbis.so.0 - libvorbis.so.0\n"
+ # "0x7f4235e99000+0x205000 b5bc98c125a11b571cf4f2746268a6d3cfa95b68@0x7f4235e991a0 /usr/lib64/libogg.so.0 - libogg.so.0\n"
+ # "0x7f4235c8b000+0x20e000 f1ff6c8ee30dba27e90ef0c5b013df2833da2889@0x7f4235c8b1a0 /usr/lib64/libtdb.so.1 - libtdb.so.1\n"
+ # "0x3bc3000000+0x209000 8ef56f789fd914e8d0678eb0cdfda1bfebb00b40@0x3bc30001a0 /usr/lib64/libltdl.so.7 - libltdl.so.7\n"
+ # "0x7f4231b64000+0x22b000 3ca5b83798349f78b362b1ea51c8a4bc8114b8b1@0x7f4231b641a0 /usr/lib64/gio/modules/libgvfsdbus.so - libgvfsdbus.so\n"
+ # "0x7f423192a000+0x218000 ad024a01ad132737a8cfc7c95beb7c77733a652d@0x7f423192a1a0 /usr/lib64/libgvfscommon.so.0 - libgvfscommon.so.0\n"
+ # "0x7f423192a000+0x218000 ad024a01ad132737a8cfc7c95beb7c77733a652d@0x7f423192a1a0 /usr/lib64/libgvfscommon.so.0 - libgvfscommon.so.0\n"
+ # "0x3bb8e00000+0x20e000 d240ac5755184a95c783bb98a2d05530e0cf958a@0x3bb8e001a0 /lib64/libudev.so.0 - libudev.so.0")
+ #
+ #print eu_unstrip_OUT
+ # we failed to get build ids from the core -> die
+ if not eu_unstrip_OUT:
+ print "Can't get build ids from %s" % coredump_name
+ return RETURN_FAILURE
+
+ lines = eu_unstrip_OUT.split('\n')
+ # using set ensures the unique values
+ build_ids = set()
+ libraries = set()
+ build_ids = set()
+
+ for line in lines:
+ b_ids_line = line.split()
+ if len(b_ids_line) > 2:
+ # [exe] -> the executable itself
+ # linux-vdso.so.1 -> Virtual Dynamic Shared Object
+ if b_ids_line[EXECUTABLE] not in ["linux-vdso.so.1"]:
+ build_id = b_ids_line[BUILD_ID].split('@')[0]
+ build_ids.add(build_id)
+ library = b_ids_line[LIBRARY]
+ libraries.add(library)
+ build_ids.add(build_id)
+ else:
+ log2("skipping line '%s'" % line)
+ log1("Found %i build_ids" % len(build_ids))
+ log1("Found %i libs" % len(libraries))
+ return build_ids
+
+def build_ids_to_path(build_ids):
+ """
+ build_id1=${build_id:0:2}
+ build_id2=${build_id:2}
+ file="usr/lib/debug/.build-id/$build_id1/$build_id2.debug"
+ """
+ return ["/usr/lib/debug/.build-id/%s/%s.debug" % (b_id[:2], b_id[2:]) for b_id in build_ids]
+
+def sigterm_handler(signum, frame):
+ exit(RETURN_OK)
+
+def sigint_handler(signum, frame):
+ print "\n", _("Exiting on user command")
+ exit(RETURN_OK)
+
+import signal
+
+if __name__ == "__main__":
+ # abrt-server can send SIGTERM to abort the download
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ # ctrl-c
+ signal.signal(signal.SIGINT, sigint_handler)
+ core = None
+ cachedir = None
+ tmpdir = None
+ keeprpms = False
+ output_file = "build_ids"
+
+ # localization
+ init_gettext()
+
+ ABRT_VERBOSE = os.getenv("ABRT_VERBOSE")
+ if (ABRT_VERBOSE):
+ try:
+ verbose = int(ABRT_VERBOSE)
+ except:
+ pass
+
+ help_text = _("Usage: %s --core=COREFILE ") % sys.argv[0]
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "vhc:o:", ["help", "core="])
+ except getopt.GetoptError, err:
+ print str(err) # prints something like "option -a not recognized"
+ sys.exit(RETURN_FAILURE)
+
+ for opt, arg in opts:
+ if opt == "-v":
+ verbose += 1
+ elif opt == "-o":
+ output_file = arg
+ elif opt in ("--core", "-c"):
+ core = arg
+ elif opt in ("-h", "--help"):
+ print help_text
+ sys.exit()
+
+ if not core:
+ print _("You have to specify the path to coredump.")
+ print help_text
+ exit(RETURN_FAILURE)
+
+ b_ids = extract_info_from_core(core)
+ if b_ids == RETURN_FAILURE:
+ exit(RETURN_FAILURE)
+ f_build_ids = open(output_file, "w")
+ for bid in b_ids:
+ f_build_ids.write("%s\n" % bid)
+ f_build_ids.close()
diff -urp abrt-2.0.0/src/plugins/abrt-action-install-debuginfo.py abrt-2.0.0_/src/plugins/abrt-action-install-debuginfo.py
--- abrt-2.0.0/src/plugins/abrt-action-install-debuginfo.py 2011-03-25 09:51:45.000000000 +0100
+++ abrt-2.0.0_/src/plugins/abrt-action-install-debuginfo.py 2011-04-13 21:05:23.104976172 +0200
@@ -301,64 +301,6 @@ def log2(message):
if verbose > 1:
print "LOG2:", message
-#eu_unstrip_OUT=`eu-unstrip "--core=$core" -n 2>eu_unstrip.ERR`
-def extract_info_from_core(coredump_name):
- """
- Extracts builds with filenames,
- Returns a list of tuples (build_id, filename)
- """
- #OFFSET = 0
- BUILD_ID = 1
- LIBRARY = 2
- #SEP = 3
- EXECUTABLE = 4
-
- print _("Analyzing coredump '%s'") % coredump_name
- eu_unstrip_OUT = Popen(["eu-unstrip","--core=%s" % coredump_name, "-n"], stdout=PIPE, bufsize=-1).communicate()[0]
- # parse eu_unstrip_OUT and return the list of build_ids
-
- # eu_unstrip_OUT = ("0x7f42362ca000+0x204000 c4d35d993598a6242f7525d024b5ec3becf5b447@0x7f42362ca1a0 /usr/lib64/libcanberra-gtk.so.0 - libcanberra-gtk.so.0\n"
- # "0x3afa400000+0x210000 607308f916c13c3ad9ee503008d31fa671ba73ce@0x3afa4001a0 /usr/lib64/libcanberra.so.0 - libcanberra.so.0\n"
- # "0x3afa400000+0x210000 607308f916c13c3ad9ee503008d31fa671ba73ce@0x3afa4001a0 /usr/lib64/libcanberra.so.0 - libcanberra.so.0\n"
- # "0x3bc7000000+0x208000 3be016bb723e85779a23e111a8ab1a520b209422@0x3bc70001a0 /usr/lib64/libvorbisfile.so.3 - libvorbisfile.so.3\n"
- # "0x7f423609e000+0x22c000 87f9c7d9844f364c73aa2566d6cfc9c5fa36d35d@0x7f423609e1a0 /usr/lib64/libvorbis.so.0 - libvorbis.so.0\n"
- # "0x7f4235e99000+0x205000 b5bc98c125a11b571cf4f2746268a6d3cfa95b68@0x7f4235e991a0 /usr/lib64/libogg.so.0 - libogg.so.0\n"
- # "0x7f4235c8b000+0x20e000 f1ff6c8ee30dba27e90ef0c5b013df2833da2889@0x7f4235c8b1a0 /usr/lib64/libtdb.so.1 - libtdb.so.1\n"
- # "0x3bc3000000+0x209000 8ef56f789fd914e8d0678eb0cdfda1bfebb00b40@0x3bc30001a0 /usr/lib64/libltdl.so.7 - libltdl.so.7\n"
- # "0x7f4231b64000+0x22b000 3ca5b83798349f78b362b1ea51c8a4bc8114b8b1@0x7f4231b641a0 /usr/lib64/gio/modules/libgvfsdbus.so - libgvfsdbus.so\n"
- # "0x7f423192a000+0x218000 ad024a01ad132737a8cfc7c95beb7c77733a652d@0x7f423192a1a0 /usr/lib64/libgvfscommon.so.0 - libgvfscommon.so.0\n"
- # "0x7f423192a000+0x218000 ad024a01ad132737a8cfc7c95beb7c77733a652d@0x7f423192a1a0 /usr/lib64/libgvfscommon.so.0 - libgvfscommon.so.0\n"
- # "0x3bb8e00000+0x20e000 d240ac5755184a95c783bb98a2d05530e0cf958a@0x3bb8e001a0 /lib64/libudev.so.0 - libudev.so.0")
- #
- #print eu_unstrip_OUT
- # we failed to get build ids from the core -> die
- if not eu_unstrip_OUT:
- print "Can't get build ids from %s" % coredump_name
- return RETURN_FAILURE
-
- lines = eu_unstrip_OUT.split('\n')
- # using set ensures the unique values
- build_ids = set()
- libraries = set()
- build_ids = set()
-
- for line in lines:
- b_ids_line = line.split()
- if len(b_ids_line) > 2:
- # [exe] -> the executable itself
- # linux-vdso.so.1 -> Virtual Dynamic Shared Object
- if b_ids_line[EXECUTABLE] not in ["linux-vdso.so.1"]:
- build_id = b_ids_line[BUILD_ID].split('@')[0]
- build_ids.add(build_id)
- library = b_ids_line[LIBRARY]
- libraries.add(library)
- build_ids.add(build_id)
- else:
- log2("skipping line '%s'" % line)
- log1("Found %i build_ids" % len(build_ids))
- log1("Found %i libs" % len(libraries))
- return build_ids
-
def build_ids_to_path(build_ids):
"""
build_id1=${build_id:0:2}
@@ -409,11 +351,12 @@ if __name__ == "__main__":
signal.signal(signal.SIGTERM, sigterm_handler)
# ctrl-c
signal.signal(signal.SIGINT, sigint_handler)
- core = None
+ core = "build_ids"
cachedir = None
tmpdir = None
keeprpms = False
noninteractive = False
+ b_ids = []
# localization
init_gettext()
@@ -441,7 +384,7 @@ if __name__ == "__main__":
verbose += 1
elif opt == "-y":
noninteractive = True
- elif opt in ("--core", "-c"):
+ elif opt in ("-i"):
core = arg
elif opt in ("--cache"):
cachedir = arg
@@ -464,8 +407,11 @@ if __name__ == "__main__":
# for now, we use /tmp...
tmpdir = "/tmp/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
- b_ids = extract_info_from_core(core)
- if b_ids == RETURN_FAILURE:
+ fin = open(core)
+ for line in fin.readlines():
+ b_ids.append(line.strip('\n'))
+
+ if not b_ids:
exit(RETURN_FAILURE)
missing = filter_installed_debuginfos(b_ids, cachedir)
diff -urp abrt-2.0.0/src/plugins/ccpp_events.conf abrt-2.0.0_/src/plugins/ccpp_events.conf
--- abrt-2.0.0/src/plugins/ccpp_events.conf 2011-03-26 15:21:15.000000000 +0100
+++ abrt-2.0.0_/src/plugins/ccpp_events.conf 2011-04-13 21:05:23.105976172 +0200
@@ -5,7 +5,7 @@ EVENT=post-create analyzer=CCpp
EVENT=analyze_LocalGDB analyzer=CCpp backtrace= abrt-action-trim-files -f 4096m:/var/cache/abrt-di
# TODO: can we still specify additional directories to search for debuginfos,
# or was this ability lost with move to python installer?
-EVENT=analyze_LocalGDB analyzer=CCpp backtrace= abrt-action-install-debuginfo --core="$DUMP_DIR/coredump"
+EVENT=analyze_LocalGDB analyzer=CCpp backtrace= abrt-action-analyzecore.py --core="$DUMP_DIR/coredump"; abrt-action-install-debuginfo
EVENT=analyze_LocalGDB analyzer=CCpp backtrace= abrt-action-generate-backtrace
EVENT=analyze_LocalGDB analyzer=CCpp backtrace= abrt-action-analyze-backtrace
EVENT=analyze_RetraceServer analyzer=CCpp backtrace= abrt-retrace-client batch -k --dir "$DUMP_DIR"
diff -urp abrt-2.0.0/src/plugins/Makefile.am abrt-2.0.0_/src/plugins/Makefile.am
--- abrt-2.0.0/src/plugins/Makefile.am 2011-04-13 21:07:17.045976143 +0200
+++ abrt-2.0.0_/src/plugins/Makefile.am 2011-04-13 21:05:23.102976172 +0200
@@ -2,6 +2,7 @@ pluginslibdir = $(PLUGINS_LIB_DIR)
bin_SCRIPTS = \
abrt-action-install-debuginfo.py \
+ abrt-action-analyzecore.py \
abrt-action-list-dsos.py
bin_PROGRAMS = \
@@ -57,7 +58,10 @@ man_MANS = \
abrt-Upload.7 \
abrt-plugins.7
-PYTHON_FILES = abrt-action-install-debuginfo.py abrt-action-list-dsos.py
+PYTHON_FILES = \
+ abrt-action-install-debuginfo.py \
+ abrt-action-list-dsos.py \
+ abrt-action-analyzecore.py
EXTRA_DIST = $(man_MANS) $(PYTHON_FILES)
Only in abrt-2.0.0_/src/plugins: Makefile.am.orig