ask before sending sensitive data and some minor improvements

This commit is contained in:
Jakub Filak 2012-08-10 13:27:19 +02:00
parent dd6e723b4b
commit 4f72cee7c8
9 changed files with 574 additions and 1 deletions

View File

@ -0,0 +1,29 @@
From 673b451d38aa323a82da1d94718902bb88c56375 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Tue, 7 Aug 2012 11:01:10 +0200
Subject: [PATCH 03/10] fix leaks in list_possible_events()
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
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

View File

@ -0,0 +1,66 @@
From d74fcb70b4b9acec451479303978bcb23673d991 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
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 <vda.linux@googlemail.com>
---
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

View File

@ -0,0 +1,58 @@
From 046a3ceb281888bc2cb026d29e3186b929fcceb7 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
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 <jfilak@redhat.com>
---
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

View File

@ -0,0 +1,103 @@
From 58b2f3df81c46f8596a0a81bd2f8071948ec9238 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
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 <jfilak@redhat.com>
---
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

View File

@ -0,0 +1,62 @@
From 98156aa13a496b83c998f651efd0f7f3f0700c6b Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
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 <jfilak@redhat.com>
---
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

View File

@ -0,0 +1,40 @@
From ac9f6625886d5eb283335d88b45f4bdfccf8a226 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
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 <jfilak@redhat.com>
---
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

View File

@ -0,0 +1,112 @@
From 945e99efc043b3a8ca34615a4bd3f649fd8602c3 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
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 <jfilak@redhat.com>
---
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

View File

@ -0,0 +1,77 @@
From a1479b71b40290ad7faeb72a7ea0fd47324cd300 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
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 <vda.linux@googlemail.com>
---
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

View File

@ -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 <jfilak@redhat.com> 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 <jfilak@redhat.com> 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