diff --git a/0003-fix-leaks-in-list_possible_events.patch b/0003-fix-leaks-in-list_possible_events.patch new file mode 100644 index 0000000..c38c9b3 --- /dev/null +++ b/0003-fix-leaks-in-list_possible_events.patch @@ -0,0 +1,29 @@ +From 673b451d38aa323a82da1d94718902bb88c56375 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Tue, 7 Aug 2012 11:01:10 +0200 +Subject: [PATCH 03/10] fix leaks in list_possible_events() + +Signed-off-by: Jakub Filak +--- + src/lib/run_event.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/lib/run_event.c b/src/lib/run_event.c +index 6b48568..bc04c5e 100644 +--- a/src/lib/run_event.c ++++ b/src/lib/run_event.c +@@ -603,7 +603,11 @@ char *list_possible_events(struct dump_dir *dd, const char *dump_dir_name, const + pfx, pfx_len /* for events with this prefix */ + ); + if (!cmd) ++ { ++ free_rule_list(rule_list); ++ free(event_name); + break; ++ } + free(cmd); + + if (event_name) +-- +1.7.11.2 + diff --git a/0004-Do-not-check-for-analyzer-Kerneloops-when-appending-.patch b/0004-Do-not-check-for-analyzer-Kerneloops-when-appending-.patch new file mode 100644 index 0000000..0254fc2 --- /dev/null +++ b/0004-Do-not-check-for-analyzer-Kerneloops-when-appending-.patch @@ -0,0 +1,66 @@ +From d74fcb70b4b9acec451479303978bcb23673d991 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Thu, 9 Aug 2012 14:29:15 +0200 +Subject: [PATCH 04/10] Do not check for analyzer == "Kerneloops" when + appending "TAINTED" msg + +The check was superfluous + +Signed-off-by: Denys Vlasenko +--- + src/plugins/rhbz.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/src/plugins/rhbz.c b/src/plugins/rhbz.c +index b4a5a06..ea8c09d 100644 +--- a/src/plugins/rhbz.c ++++ b/src/plugins/rhbz.c +@@ -632,7 +632,7 @@ int rhbz_new_bug(struct abrt_xmlrpc *ax, problem_data_t *problem_data, + } + else + { +- if (analyzer && !strcmp(analyzer, "Kerneloops")) ++ if (analyzer && strcmp(analyzer, "Kerneloops") == 0) + strbuf_append_str(buf_summary, "[abrt]"); + else + strbuf_append_strf(buf_summary, "[abrt] %s", package); +@@ -643,8 +643,7 @@ int rhbz_new_bug(struct abrt_xmlrpc *ax, problem_data_t *problem_data, + if (reason) + strbuf_append_strf(buf_summary, ": %s", reason); + +- if (tainted_short && analyzer +- && (strcmp(analyzer, "Kerneloops") == 0)) ++ if (tainted_short) + { + strbuf_append_strf(buf_summary, ": TAINTED %s", tainted_short); + } +@@ -652,7 +651,7 @@ int rhbz_new_bug(struct abrt_xmlrpc *ax, problem_data_t *problem_data, + char *status_whiteboard = xasprintf("abrt_hash:%s", duphash); + + char *full_dsc = NULL; +- if (analyzer && !strcmp(analyzer, "Kerneloops")) ++ if (analyzer && strcmp(analyzer, "Kerneloops") == 0) + { + char *bz_dsc = make_description_koops(problem_data, CD_TEXT_ATT_SIZE_BZ); + full_dsc = xasprintf("libreport version: "VERSION"\n%s", bz_dsc); +@@ -831,7 +830,7 @@ int rhbz_attach_files(struct abrt_xmlrpc *ax, const char *bug_id, + const char *analyzer = problem_data_get_content_or_NULL(problem_data, + FILENAME_ANALYZER); + /* Do not attach anything if analyzer is Kerneloops */ +- if (!strcmp(analyzer, "Kerneloops")) ++ if (strcmp(analyzer, "Kerneloops") == 0) + return 0; + + GHashTableIter iter; +@@ -853,7 +852,7 @@ int rhbz_attach_files(struct abrt_xmlrpc *ax, const char *bug_id, + const unsigned len = strlen(content); + + /* For standard bugs, do not attach backtrace shorter than CD_TEXT_ATT_SIZE_BZ */ +- if (!strcmp(name, FILENAME_BACKTRACE) && len < CD_TEXT_ATT_SIZE_BZ) ++ if (len < CD_TEXT_ATT_SIZE_BZ && strcmp(name, FILENAME_BACKTRACE) == 0) + continue; + + rhbz_attach_blob(ax, name, bug_id, content, len, flags); +-- +1.7.11.2 + diff --git a/0005-trac-660-add-support-for-sendining-sensitive-data-ev.patch b/0005-trac-660-add-support-for-sendining-sensitive-data-ev.patch new file mode 100644 index 0000000..0d75122 --- /dev/null +++ b/0005-trac-660-add-support-for-sendining-sensitive-data-ev.patch @@ -0,0 +1,58 @@ +From 046a3ceb281888bc2cb026d29e3186b929fcceb7 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Wed, 8 Aug 2012 15:58:03 +0200 +Subject: [PATCH 05/10] trac#660: add support for sendining-sensitive-data + event option + +* configuration parser reads a value of the 'sendining-sensitive-data' + xml element +* the default value for this option is false +* the option means that 'an event sends possibly sensitive data somewhere' +* core file is an example of sensitive data +* this option is required for automatic execution of events from event + chain (a user have to get an approval) + +Signed-off-by: Jakub Filak +--- + src/include/event_config.h | 1 + + src/lib/event_xml_parser.c | 5 +++++ + 2 files changed, 6 insertions(+) + +diff --git a/src/include/event_config.h b/src/include/event_config.h +index 15ebf52..0ca3bda 100644 +--- a/src/include/event_config.h ++++ b/src/include/event_config.h +@@ -80,6 +80,7 @@ typedef struct + bool ec_exclude_binary_items; + long ec_minimal_rating; + bool ec_skip_review; ++ bool ec_sending_sensitive_data; + + GList *options; + } event_config_t; +diff --git a/src/lib/event_xml_parser.c b/src/lib/event_xml_parser.c +index cd99784..157b717 100644 +--- a/src/lib/event_xml_parser.c ++++ b/src/lib/event_xml_parser.c +@@ -32,6 +32,7 @@ + #define DEFAULT_VALUE_ELEMENT "default-value" + #define MINIMAL_RATING_ELEMENT "minimal-rating" + #define GUI_REVIEW_ELEMENTS "gui-review-elements" ++#define SENDING_SENSITIVE_DATA_ELEMENT "sending-sensitive-data" + + #define REQUIRES_ELEMENT "requires-items" + #define EXCL_BY_DEFAULT_ELEMENT "exclude-items-by-default" +@@ -423,6 +424,10 @@ static void text(GMarkupParseContext *context, + { + ui->ec_skip_review = !string_to_bool(text_copy); + } ++ else if (strcmp(inner_element, SENDING_SENSITIVE_DATA_ELEMENT) == 0) ++ { ++ ui->ec_sending_sensitive_data = string_to_bool(text_copy); ++ } + } + free(text_copy); + } +-- +1.7.11.2 + diff --git a/0006-trac-660-report-gtk-introduce-generic-ask_yes_no-fun.patch b/0006-trac-660-report-gtk-introduce-generic-ask_yes_no-fun.patch new file mode 100644 index 0000000..4058767 --- /dev/null +++ b/0006-trac-660-report-gtk-introduce-generic-ask_yes_no-fun.patch @@ -0,0 +1,103 @@ +From 58b2f3df81c46f8596a0a81bd2f8071948ec9238 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Wed, 8 Aug 2012 16:59:33 +0200 +Subject: [PATCH 06/10] trac#660: report-gtk: introduce generic ask_yes_no() + function for options + +* the generic ask_yes_no() function shows a standard 'yes/no' dialog + with a checkbox +* if user checks the checkbox the ask_yes_no() function immediately + returns 'yes' in the future calls + +Signed-off-by: Jakub Filak +--- + src/gui-wizard-gtk/wizard.c | 52 ++++++++++++++++++++++++++++----------------- + 1 file changed, 33 insertions(+), 19 deletions(-) + +diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c +index ce7b742..861d922 100644 +--- a/src/gui-wizard-gtk/wizard.c ++++ b/src/gui-wizard-gtk/wizard.c +@@ -310,46 +310,60 @@ static void update_window_title(void) + free(title); + } + +-static void on_toggle_ask_steal_cb(GtkToggleButton *tb, gpointer user_data) ++static void on_toggle_ask_yes_no_save_result_cb(GtkToggleButton *tb, gpointer user_data) + { +- set_user_setting("ask_steal_dir", gtk_toggle_button_get_active(tb) ? "no" : "yes"); ++ set_user_setting(user_data, gtk_toggle_button_get_active(tb) ? "no" : "yes"); + } + +-static bool ask_continue_before_steal(const char *base_dir, const char *dump_dir) ++/* ++ * Function shows a dialog with 'Yes/No' buttons and a check box allowing to ++ * remeber the answer. The answer is stored in configuration file under ++ * 'option_name' key. ++ */ ++static bool ask_yes_no_save_result(const char *message, const char *option_name) + { +- const char *ask_steal_dir = get_user_setting("ask_steal_dir"); ++ const char *ask_result = get_user_setting(option_name); + +- if (ask_steal_dir && string_to_bool(ask_steal_dir) == false) ++ if (ask_result && string_to_bool(ask_result) == false) + return true; + + GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(g_wnd_assistant), +- GTK_DIALOG_DESTROY_WITH_PARENT, +- GTK_MESSAGE_QUESTION, +- GTK_BUTTONS_OK_CANCEL, +- _("Need writable directory, but '%s' is not writable." +- " Move it to '%s' and operate on the moved data?"), +- dump_dir, base_dir +- ); ++ GTK_DIALOG_DESTROY_WITH_PARENT, ++ GTK_MESSAGE_QUESTION, ++ GTK_BUTTONS_YES_NO, ++ "%s", message); + + gint response = GTK_RESPONSE_CANCEL; +- g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(save_dialog_response), &response); ++ g_signal_connect(G_OBJECT(dialog), "response", ++ G_CALLBACK(save_dialog_response), &response); + +- GtkWidget *ask_steal_cb = gtk_check_button_new_with_label(_("Don't ask me again")); ++ GtkWidget *ask_yes_no_cb = gtk_check_button_new_with_label(_("Don't ask me again")); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), +- ask_steal_cb, TRUE, TRUE, 0); +- g_signal_connect(ask_steal_cb, "toggled", G_CALLBACK(on_toggle_ask_steal_cb), NULL); ++ ask_yes_no_cb, TRUE, TRUE, 0); ++ g_signal_connect(ask_yes_no_cb, "toggled", ++ G_CALLBACK(on_toggle_ask_yes_no_save_result_cb), (gpointer)option_name); + + /* check it by default if it's shown for the first time */ +- if (!ask_steal_dir) +- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ask_steal_cb), TRUE); ++ if (!ask_result) ++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ask_yes_no_cb), TRUE); + +- gtk_widget_show(ask_steal_cb); ++ gtk_widget_show(ask_yes_no_cb); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + + return response == GTK_RESPONSE_OK; + } + ++static bool ask_continue_before_steal(const char *base_dir, const char *dump_dir) ++{ ++ char *msg = xasprintf(_("Need writable directory, but '%s' is not writable." ++ " Move it to '%s' and operate on the moved data?"), ++ dump_dir, base_dir); ++ const bool response = ask_yes_no_save_result(msg, "ask_steal_dir"); ++ free(msg); ++ return response; ++} ++ + struct dump_dir *wizard_open_directory_for_writing(const char *dump_dir_name) + { + struct dump_dir *dd = open_directory_for_writing(dump_dir_name, +-- +1.7.11.2 + diff --git a/0007-trac-660-report-gtk-asks-for-permission-to-send-sens.patch b/0007-trac-660-report-gtk-asks-for-permission-to-send-sens.patch new file mode 100644 index 0000000..183f19c --- /dev/null +++ b/0007-trac-660-report-gtk-asks-for-permission-to-send-sens.patch @@ -0,0 +1,62 @@ +From 98156aa13a496b83c998f651efd0f7f3f0700c6b Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Wed, 8 Aug 2012 17:52:00 +0200 +Subject: [PATCH 07/10] trac#660: report-gtk asks for permission to send + sensitive data + +* if the currently process event has configured 'sending-sensitive-data' + report-gtk asks for permission to continue with processing of the + event + +Signed-off-by: Jakub Filak +--- + src/gui-wizard-gtk/wizard.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c +index 861d922..6f540a8 100644 +--- a/src/gui-wizard-gtk/wizard.c ++++ b/src/gui-wizard-gtk/wizard.c +@@ -2028,6 +2028,22 @@ static void on_page_prepare(GtkNotebook *assistant, GtkWidget *page, gpointer us + } + } + ++static bool get_sensitive_data_permission(const char *event_name) ++{ ++ event_config_t *event_cfg = get_event_config(event_name); ++ ++ if (!event_cfg || !event_cfg->ec_sending_sensitive_data) ++ return true; ++ ++ char *msg = xasprintf(_("Event '%s' requires permission to send possibly sensitive data." ++ "\nDo you want to continue?"), ++ event_cfg->screen_name ? event_cfg->screen_name : event_name); ++ const bool response = ask_yes_no_save_result(msg, "ask_send_sensitive_data"); ++ free(msg); ++ ++ return response; ++} ++ + static gint select_next_page_no(gint current_page_no, gpointer data) + { + GtkWidget *page; +@@ -2049,6 +2065,16 @@ static gint select_next_page_no(gint current_page_no, gpointer data) + } + + free(g_event_selected); ++ ++ if (!get_sensitive_data_permission(event)) ++ { ++ g_event_selected = NULL; ++ gtk_label_set_text(g_lbl_event_log, _("Processing was cancelled")); ++ terminate_event_chain(); ++ current_page_no = pages[PAGENO_EVENT_PROGRESS].page_no - 1; ++ goto again; ++ } ++ + g_event_selected = xstrdup(event); + + if (check_event_config(g_event_selected) != 0) +-- +1.7.11.2 + diff --git a/0008-trac-660-report-cli-asks-for-premission-to-send-sens.patch b/0008-trac-660-report-cli-asks-for-premission-to-send-sens.patch new file mode 100644 index 0000000..e635651 --- /dev/null +++ b/0008-trac-660-report-cli-asks-for-premission-to-send-sens.patch @@ -0,0 +1,40 @@ +From ac9f6625886d5eb283335d88b45f4bdfccf8a226 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Wed, 8 Aug 2012 18:23:52 +0200 +Subject: [PATCH 08/10] trac#660: report-cli asks for premission to send + sensitive data + +* if the currently process event has configured 'sending-sensitive-data' + report-cli asks for permission to continue with processing of the + event + +Signed-off-by: Jakub Filak +--- + src/cli/cli-report.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/src/cli/cli-report.c b/src/cli/cli-report.c +index 77ae34a..2f988fa 100644 +--- a/src/cli/cli-report.c ++++ b/src/cli/cli-report.c +@@ -1003,6 +1003,17 @@ int run_events_chain(const char *dump_dir_name, GList *chain) + + if (config) + { ++ if (config->ec_sending_sensitive_data) ++ { ++ char *msg = xasprintf(_("Event '%s' requires permision to send possibly sensitive data." ++ " Do you want to continue?"), ++ config->screen_name ? config->screen_name : event); ++ const bool response = ask_yesno(msg); ++ free(msg); ++ if (!response) ++ break; ++ } ++ + /* can't fail */ + ask_for_missing_settings(event); + +-- +1.7.11.2 + diff --git a/0009-trac-623-dd_opendir-fails-if-time-file-doesn-t-conta.patch b/0009-trac-623-dd_opendir-fails-if-time-file-doesn-t-conta.patch new file mode 100644 index 0000000..23dd24f --- /dev/null +++ b/0009-trac-623-dd_opendir-fails-if-time-file-doesn-t-conta.patch @@ -0,0 +1,112 @@ +From 945e99efc043b3a8ca34615a4bd3f649fd8602c3 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Tue, 31 Jul 2012 17:39:17 +0200 +Subject: [PATCH 09/10] trac#623 : dd_opendir() fails if time file doesn't + contain valid time stamp + +* the old implementation checks only presence of the time file +* now we check validity of the time file + +Signed-off-by: Jakub Filak +--- + src/lib/dump_dir.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 60 insertions(+), 3 deletions(-) + +diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c +index eef01f7..6a44359 100644 +--- a/src/lib/dump_dir.c ++++ b/src/lib/dump_dir.c +@@ -109,6 +109,63 @@ static bool exist_file_dir(const char *path) + return false; + } + ++/* Returns true if the file is not readable or */ ++/* if the file doesn't contain valid unixt time stamp */ ++/* implementation is a compromise between efficiency and accuracy */ ++/* the function gets false negative results for big numbers */ ++static bool not_valid_time_file(const char *filename) ++{ ++ /* Open input file, and parse it. */ ++ int fd = open(filename, O_RDONLY); ++ if (fd < 0) ++ { ++ VERB2 perror_msg("Can't open '%s'", filename); ++ return true; ++ } ++ ++ /* ~ maximal number of digits for positive time stamp string*/ ++ char time_buf[sizeof(time_t) * 3 + 1]; ++ ssize_t rdsz = read(fd, time_buf, sizeof(time_buf)); ++ ++ /* Just reading, so no need to check the returned value. */ ++ close(fd); ++ ++ if (rdsz == -1) ++ { ++ VERB2 perror_msg("Can't read from '%s'", filename); ++ return true; ++ } ++ ++ /* approximate maximal number of digits in timestamp is sizeof(time_t)*3 */ ++ /* buffer has this size + 1 byte for trailing '\0' */ ++ /* if whole size of buffer was read then file is bigger */ ++ /* than string representing maximal time stamp */ ++ if (rdsz == sizeof(time_buf)) ++ { ++ VERB2 log("File '%s' is too long to be valid unix " ++ "time stamp (max size %zdB)", filename, sizeof(time_buf)); ++ return true; ++ } ++ ++ /* Our tools don't put trailing newline into time file, ++ * but we allow such format too: ++ */ ++ if (rdsz > 0 && time_buf[rdsz - 1] == '\n') ++ rdsz--; ++ time_buf[rdsz] = '\0'; ++ ++ /* the value should fit to timestamp number range because of file size */ ++ /* condition above, hence check if the value string consists only from digits */ ++ if (!isdigit_str(time_buf)) ++ { ++ VERB2 log("File '%s' doesn't contain valid unix " ++ "time stamp ('%s')", filename, time_buf); ++ return true; ++ } ++ ++ return false; ++} ++ + /* Return values: + * -1: error (in this case, errno is 0 if error message is already logged) + * 0: failed to lock (someone else has it locked) +@@ -203,7 +260,7 @@ static int dd_lock(struct dump_dir *dd, unsigned sleep_usec, int flags) + if (sleep_usec == WAIT_FOR_OTHER_PROCESS_USLEEP) /* yes */ + { + strcpy(lock_buf + dirname_len, "/"FILENAME_TIME); +- if (access(lock_buf, F_OK) != 0) ++ if (not_valid_time_file(lock_buf)) + { + /* time file doesn't exist. We managed to lock the directory + * which was just created by somebody else, or is almost deleted +@@ -212,7 +269,7 @@ static int dd_lock(struct dump_dir *dd, unsigned sleep_usec, int flags) + */ + strcpy(lock_buf + dirname_len, "/.lock"); + xunlink(lock_buf); +- VERB1 log("Unlocked '%s' (no time file)", lock_buf); ++ VERB1 log("Unlocked '%s' (no or corrupted time file)", lock_buf); + if (--count == 0) + { + errno = EISDIR; /* "this is an ordinary dir, not dump dir" */ +@@ -303,7 +360,7 @@ struct dump_dir *dd_opendir(const char *dir, int flags) + && access(dir, R_OK) == 0 + ) { + char *time_file_name = concat_path_file(dir, FILENAME_TIME); +- if (access(time_file_name, R_OK) != 0) ++ if (not_valid_time_file(time_file_name)) + { + dd_close(dd); + dd = NULL; +-- +1.7.11.2 + diff --git a/0010-wizard-small-changes-to-message-texts-and-one-functi.patch b/0010-wizard-small-changes-to-message-texts-and-one-functi.patch new file mode 100644 index 0000000..9477c58 --- /dev/null +++ b/0010-wizard-small-changes-to-message-texts-and-one-functi.patch @@ -0,0 +1,77 @@ +From a1479b71b40290ad7faeb72a7ea0fd47324cd300 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Fri, 10 Aug 2012 10:32:14 +0200 +Subject: [PATCH 10/10] wizard: small changes to message texts and one + function name + +Signed-off-by: Denys Vlasenko +--- + src/gui-wizard-gtk/wizard.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c +index 6f540a8..5d399f4 100644 +--- a/src/gui-wizard-gtk/wizard.c ++++ b/src/gui-wizard-gtk/wizard.c +@@ -1279,7 +1279,7 @@ static void on_btn_cancel_event(GtkButton *button) + kill(- g_event_child_pid, SIGTERM); + } + +-static bool is_reporting_finished() ++static bool is_processing_finished() + { + return !g_expert_mode && !g_auto_event_list; + } +@@ -1327,7 +1327,7 @@ static char *run_event_gtk_logging(char *log_line, void *param) + VERB1 log("Received a request for termination of processing of event chain. (Request: '%s')", log_line); + terminate_event_chain(); + if (!g_expert_mode) +- evd->success_msg = _("Reporting finished. Thank you!"); ++ evd->success_msg = _("Processing finished."); + } + + return log_line; +@@ -1537,7 +1537,7 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g + /* Inform abrt-gui that it is a good idea to rescan the directory */ + kill(getppid(), SIGCHLD); + +- if (is_reporting_finished()) ++ if (is_processing_finished()) + update_gui_on_finished_reporting(); + else if (retval == 0 && !g_verbose && !g_expert_mode) + on_next_btn_cb(GTK_WIDGET(g_btn_next), NULL); +@@ -1605,7 +1605,7 @@ static void start_event_run(const char *event_name, + free_run_event_state(state); + if (!g_expert_mode) + { +- char *msg = xasprintf(_("Reporting was interrupted. Can't contiue without writable directory. Thank you!")); ++ char *msg = xasprintf(_("Processing interrupted: can't continue without writable directory.")); + gtk_label_set_text(status_label, msg); + free(msg); + terminate_event_chain(); +@@ -1901,10 +1901,10 @@ static void setup_and_start_even_run(const char *event_name) + g_lbl_event_log, + _("Processing..."), + g_expert_mode ? _("Processing failed. You can try another operation if available.") +- : _("Processing failed. Nothing more can be done. Thank you!"), ++ : _("Processing failed."), + /* this event is the last event from the chain */ +- is_reporting_finished() ? _("Reporting finished. Thank you!") +- : _("Processing finished, please proceed to the next step.") ++ is_processing_finished() ? _("Processing finished.") ++ : _("Processing finished, please proceed to the next step.") + ); + } + +@@ -1937,7 +1937,7 @@ static const char *setup_next_processed_event(GList **events_list) + free(g_event_selected); + g_event_selected = NULL; + /* No next event, go to progress page and finish */ +- gtk_label_set_text(g_lbl_event_log, _("Reporting finished. Thank you!")); ++ gtk_label_set_text(g_lbl_event_log, _("Processing finished.")); + update_gui_on_finished_reporting(); + return NULL; + } +-- +1.7.11.2 + diff --git a/libreport.spec b/libreport.spec index d86f3f1..5f0f18a 100644 --- a/libreport.spec +++ b/libreport.spec @@ -5,13 +5,21 @@ Summary: Generic library for reporting various problems Name: libreport Version: 2.0.12 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ Group: System Environment/Libraries URL: https://fedorahosted.org/abrt/ Source: https://fedorahosted.org/released/abrt/%{name}-%{version}.tar.gz Patch1: 0001-don-t-try-to-delete-dump-dir-which-doesn-t-exist-rhb.patch Patch2: 0002-report-gtk-fixed-bug-in-automatic-running-of-next-ev.patch +Patch3: 0003-fix-leaks-in-list_possible_events.patch +Patch4: 0004-Do-not-check-for-analyzer-Kerneloops-when-appending-.patch +Patch5: 0005-trac-660-add-support-for-sendining-sensitive-data-ev.patch +Patch6: 0006-trac-660-report-gtk-introduce-generic-ask_yes_no-fun.patch +Patch7: 0007-trac-660-report-gtk-asks-for-permission-to-send-sens.patch +Patch8: 0008-trac-660-report-cli-asks-for-premission-to-send-sens.patch +Patch9: 0009-trac-623-dd_opendir-fails-if-time-file-doesn-t-conta.patch +Patch10: 0010-wizard-small-changes-to-message-texts-and-one-functi.patch BuildRequires: dbus-devel BuildRequires: gtk3-devel BuildRequires: curl-devel @@ -229,6 +237,14 @@ Plugin to report bugs into anonymous FTP site associated with ticketing system. %setup -q %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build autoconf @@ -401,6 +417,16 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %config(noreplace) %{_sysconfdir}/libreport/events.d/uploader_event.conf %changelog +* Fri Aug 10 2012 Jakub Filak 2.0.12-3 +- wizard: small changes to message texts and one function name +- trac#623: dd_opendir() fails if time file doesn't contain valid time stamp +- trac#660: report-cli asks for premission to send sensitive data +- trac#660: report-gtk asks for permission to send sensitive data +- trac#660: report-gtk: introduce generic ask_yes_no() function for options +- trac#660: add support for sendining-sensitive-data event option +- Do not check for analyzer == "Kerneloops" when appending "TAINTED" msg +- fix leaks in list_possible_events() + * Tue Aug 7 2012 Jakub Filak 2.0.12-2 - report-gtk: fixed bug in automatic running of next event - don't try to delete dump dir which doesn't exist rhbz#799909