diff --git a/.gitignore b/.gitignore index fd245ec..ab83d5f 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/a-a-a-backtrace_better_error_handling.patch b/a-a-a-backtrace_better_error_handling.patch deleted file mode 100644 index b03f707..0000000 --- a/a-a-a-backtrace_better_error_handling.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 4def4f1609679232ea2c457ccc6bc4621184201d -Author: Karel Klic -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); diff --git a/a-a-a_better2.patch b/a-a-a_better2.patch deleted file mode 100644 index eb3ef8a..0000000 --- a/a-a-a_better2.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit 1972460bf7ad803097f8fb669dcb858f6135c7d5 -Author: Karel Klic -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; diff --git a/abrt-1.0.9-hideprefs.patch b/abrt-1.0.9-hideprefs.patch deleted file mode 100644 index 668f092..0000000 --- a/abrt-1.0.9-hideprefs.patch +++ /dev/null @@ -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 @@ - - - gtk-preferences -- True -+ False - True - True - True diff --git a/abrt.spec b/abrt.spec index 5632e6d..5c8039a 100644 --- a/abrt.spec +++ b/abrt.spec @@ -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 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 2.0.0-5 - fixed problem with abrt-action-debuginfo-install rhbz#692064 diff --git a/allow_bz_for_koops.patch b/allow_bz_for_koops.patch new file mode 100644 index 0000000..711cfe9 --- /dev/null +++ b/allow_bz_for_koops.patch @@ -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 diff --git a/cli_analyze_action_select.patch b/cli_analyze_action_select.patch deleted file mode 100644 index c448f0e..0000000 --- a/cli_analyze_action_select.patch +++ /dev/null @@ -1,311 +0,0 @@ -Signed-off-by: Nikola Pajkovsky ---- - 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 diff --git a/dont_continue_if_event_fails.patch b/dont_continue_if_event_fails.patch deleted file mode 100644 index d90dc6a..0000000 --- a/dont_continue_if_event_fails.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit 82ab98c161e01de5a41902ea1961016b4d4bccca -Author: Jiri Moskovcak -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); diff --git a/g_prgname.patch b/g_prgname.patch deleted file mode 100644 index 96c4ec4..0000000 --- a/g_prgname.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit aa08665949da429660dd78a6d26a0fc3cb11d6cd -Author: Jiri Moskovcak -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"); diff --git a/hash_not_in_bz.patch b/hash_not_in_bz.patch deleted file mode 100644 index ec97313..0000000 --- a/hash_not_in_bz.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 42ab4016ea8901108a22233a1b4a44a995e9a194 -Author: Nikola Pajkovsky -Date: Mon Mar 28 14:01:53 2011 +0200 - - Ticket #160 Hash is not present in Bugzilla - - Signed-off-by: Nikola Pajkovsky - -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"); diff --git a/notify_init_name.patch b/notify_init_name.patch deleted file mode 100644 index 184cb2e..0000000 --- a/notify_init_name.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 466f32513e67bf937d42321d1b979c5a477905b6 -Author: Jiri Moskovcak -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; - } - diff --git a/notify_persistence.patch b/notify_persistence.patch deleted file mode 100644 index e3cee74..0000000 --- a/notify_persistence.patch +++ /dev/null @@ -1,153 +0,0 @@ -commit 78304637542f455b4a00ab32c418b00d2ee17781 -Author: Jiri Moskovcak -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 -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); diff --git a/settings_warning.patch b/settings_warning.patch deleted file mode 100644 index f146ef7..0000000 --- a/settings_warning.patch +++ /dev/null @@ -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() diff --git a/sources b/sources index cfd6877..1f0bee7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c4b486d64d0d908f56785e51be756ebc abrt-2.0.0.tar.gz +ead5853a19b070f548a887755fb015f1 abrt-2.0.1.tar.gz diff --git a/split_debuginfo_install.patch b/split_debuginfo_install.patch deleted file mode 100644 index 7da6c11..0000000 --- a/split_debuginfo_install.patch +++ /dev/null @@ -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