update to 2.0.7

This commit is contained in:
Jiri Moskovcak 2011-11-04 14:16:15 +01:00
parent a83be6e846
commit 67fcf5755b
8 changed files with 44 additions and 446 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
/libreport-2.0.4.tar.gz
/libreport-2.0.5.tar.gz
/libreport-2.0.6.tar.gz
/libreport-2.0.7.tar.gz

View File

@ -1,228 +0,0 @@
From fbcf816140baa534e390fc7d4124189a3d406659 Mon Sep 17 00:00:00 2001
Message-Id: <fbcf816140baa534e390fc7d4124189a3d406659.1317979211.git.npajkovs@redhat.com>
From: Nikola Pajkovsky <npajkovs@redhat.com>
Date: Wed, 5 Oct 2011 15:50:20 +0200
Subject: [PATCH] refuse reporting when *not-reportable* file exist
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
---
src/cli/cli-report.c | 20 +++++++++++++++++++
src/gui-wizard-gtk/wizard.c | 40 +++++++++++++++++++++++++++++++------
src/include/internal_libreport.h | 3 +-
src/lib/kernel-tainted.c | 25 ++++++++++++-----------
src/report-newt/report-newt.c | 21 +++++++++++++++++++
5 files changed, 89 insertions(+), 20 deletions(-)
diff --git a/src/cli/cli-report.c b/src/cli/cli-report.c
index 0011ebc..c8fa672 100644
--- a/src/cli/cli-report.c
+++ b/src/cli/cli-report.c
@@ -750,6 +750,26 @@ int report(const char *dump_dir_name, int flags)
if (!dd)
return -1;
+ char *not_reportable = dd_load_text_ext(dd, FILENAME_NOT_REPORTABLE, 0
+ | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE
+ | DD_FAIL_QUIETLY_ENOENT
+ | DD_FAIL_QUIETLY_EACCES);
+
+ if (not_reportable)
+ {
+ char *reason = dd_load_text_ext(dd, FILENAME_REASON, 0
+ | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
+ char *t = xasprintf("%s%s%s",
+ not_reportable ?: "",
+ not_reportable ? ": " : "",
+ reason ?: _("(no description)"));
+
+ dd_close(dd);
+ error_msg("%s", t);
+ free(t);
+ xfunc_die();
+ }
+
if (!(flags & CLI_REPORT_ONLY))
{
char *analyze_events_as_lines = list_possible_events(dd, NULL, "analyze");
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 0279f83..8bdc8d1 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1032,7 +1032,16 @@ void update_gui_state_from_problem_data(void)
gtk_window_set_title(GTK_WINDOW(g_assistant), g_dump_dir_name);
const char *reason = get_problem_item_content_or_NULL(g_cd, FILENAME_REASON);
- gtk_label_set_text(g_lbl_cd_reason, reason ? reason : _("(no description)"));
+ const char *not_reportable = get_problem_item_content_or_NULL(g_cd,
+ FILENAME_NOT_REPORTABLE);
+
+ char *t = xasprintf("%s%s%s",
+ not_reportable ?: "",
+ not_reportable ? ": " : "",
+ reason ?: _("(no description)"));
+
+ gtk_label_set_text(g_lbl_cd_reason, t);
+ free(t);
gtk_list_store_clear(g_ls_details);
struct cd_stats stats = { 0 };
@@ -2281,12 +2290,21 @@ static void add_pages()
error_msg_and_die("Can't load %s: %s", g_glade_file, error->message);
}
+ struct dump_dir *dd = dd_opendir(g_dump_dir_name, DD_OPEN_READONLY | DD_FAIL_QUIETLY_EACCES);
+ if (!dd)
+ return;
+ char *not_reportable = dd_load_text_ext(dd, FILENAME_NOT_REPORTABLE, 0
+ | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE
+ | DD_FAIL_QUIETLY_ENOENT
+ | DD_FAIL_QUIETLY_EACCES);
+ dd_close(dd);
+
int i;
int page_no = 0;
for (i = 0; page_names[i] != NULL; i++)
{
char *delim = strrchr(page_names[i], '_');
- if (delim != NULL)
+ if (!not_reportable && delim)
{
if (g_report_only && (strncmp(delim + 1, "report", strlen("report"))) != 0)
{
@@ -2308,10 +2326,14 @@ static void add_pages()
gtk_assistant_set_page_complete(g_assistant, page, true);
gtk_assistant_set_page_title(g_assistant, page, pages[i].title);
- gtk_assistant_set_page_type(g_assistant, page, pages[i].type);
+ if (not_reportable && i == 0)
+ gtk_assistant_set_page_type(g_assistant, pages[i].page_widget, GTK_ASSISTANT_PAGE_SUMMARY);
+ else
+ gtk_assistant_set_page_type(g_assistant, page, pages[i].type);
VERB1 log("added page: %s", page_names[i]);
}
+ free(not_reportable);
/* Set pointers to objects we might need to work with */
g_lbl_cd_reason = GTK_LABEL( gtk_builder_get_object(builder, "lbl_cd_reason"));
@@ -2369,10 +2391,14 @@ static void add_pages()
/* Add "Close" button */
GtkWidget *w;
- w = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- g_signal_connect(w, "clicked", G_CALLBACK(gtk_main_quit), NULL);
- gtk_widget_show(w);
- gtk_assistant_add_action_widget(g_assistant, w);
+ if (!not_reportable)
+ {
+ w = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ g_signal_connect(w, "clicked", G_CALLBACK(gtk_main_quit), NULL);
+ gtk_widget_show(w);
+ gtk_assistant_add_action_widget(g_assistant, w);
+ }
+
/* and hide "Cancel" button - "Close" is a better name for what we want */
gtk_assistant_commit(g_assistant);
diff --git a/src/include/internal_libreport.h b/src/include/internal_libreport.h
index 67a7ea3..5fc09c3 100644
--- a/src/include/internal_libreport.h
+++ b/src/include/internal_libreport.h
@@ -581,7 +581,7 @@ int delete_dump_dir_possibly_using_abrtd(const char *dump_dir_name);
struct dump_dir *steal_directory(const char *base_dir, const char *dump_dir_name);
#define kernel_tainted_short libreport_kernel_tainted_short
-char *kernel_tainted_short(unsigned tainted);
+char *kernel_tainted_short(const char *kernel_bt);
#define kernel_tainted_long libreport_kernel_tainted_long
GList *kernel_tainted_long(unsigned tainted);
@@ -635,6 +635,7 @@ GList *kernel_tainted_long(unsigned tainted);
*/
#define FILENAME_REPORTED_TO "reported_to"
#define FILENAME_EVENT_LOG "event_log"
+#define FILENAME_NOT_REPORTABLE "not-reportable"
// Not stored as files, added "on the fly":
#define CD_DUMPDIR "Directory"
diff --git a/src/lib/kernel-tainted.c b/src/lib/kernel-tainted.c
index 3595408..217587c 100644
--- a/src/lib/kernel-tainted.c
+++ b/src/lib/kernel-tainted.c
@@ -18,6 +18,12 @@
*/
#include "internal_libreport.h"
+/* reading /proc/sys/kernel/tainted file after an oops is ALWAYS going
+ * to show it as tainted.
+ *
+ * https://bugzilla.redhat.com/show_bug.cgi?id=724838
+ */
+
/* From RHEL6 kernel/panic.c: */
static const int tnts_short[] = {
'P' ,
@@ -106,21 +112,16 @@ static const char *const tnts_long[] = {
"Tech_preview",
};
-char *kernel_tainted_short(unsigned tainted)
+char *kernel_tainted_short(const char *kernel_bt)
{
- char *tnt = xzalloc(ARRAY_SIZE(tnts_short) + 1);
- int i = 0;
- while (tainted)
- {
- if (0x1 & tainted)
- tnt[i] = tnts_short[i];
- else
- tnt[i] = '-';
- ++i;
- tainted >>= 1;
- }
+ /* example of flags: |G B | */
+ char *tainted = strstr(kernel_bt, "Tainted: ");
+ if (!tainted)
+ return NULL;
+ /* 12 == count of flags */
+ char *tnt = xstrndup(tainted + strlen("Tainted: "), 12);
return tnt;
}
diff --git a/src/report-newt/report-newt.c b/src/report-newt/report-newt.c
index b8dddbc..02f75c8 100644
--- a/src/report-newt/report-newt.c
+++ b/src/report-newt/report-newt.c
@@ -318,6 +318,27 @@ static int report(const char *dump_dir_name)
if (!(dd = dd_opendir(dump_dir_name, 0)))
return -1;
events_as_lines = list_possible_events(dd, NULL, "report");
+
+ char *not_reportable = dd_load_text_ext(dd, FILENAME_NOT_REPORTABLE, 0
+ | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE
+ | DD_FAIL_QUIETLY_ENOENT
+ | DD_FAIL_QUIETLY_EACCES);
+
+ if (not_reportable)
+ {
+ char *reason = dd_load_text_ext(dd, FILENAME_REASON, 0
+ | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
+ char *t = xasprintf("%s%s%s",
+ not_reportable ?: "",
+ not_reportable ? ": " : "",
+ reason ?: _("(no description)"));
+
+ dd_close(dd);
+ newtWinMessage(_("Error"), _("Ok"), "%s", t);
+ free(t);
+ return -1;
+ }
+
dd_close(dd);
reporters = get_available_reporters(events_as_lines);
--
1.7.7.rc0.70.g82660

View File

@ -1,47 +0,0 @@
From 6b8ba25bd3caf0065805197a3b10e2697164ae3b Mon Sep 17 00:00:00 2001
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Thu, 29 Sep 2011 17:51:20 +0200
Subject: [PATCH 1/4] report-newt: add option to display version (rhbz#741590)
---
src/report-newt/report-newt.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/src/report-newt/report-newt.c b/src/report-newt/report-newt.c
index b8cc020..b8dddbc 100644
--- a/src/report-newt/report-newt.c
+++ b/src/report-newt/report-newt.c
@@ -357,18 +357,29 @@ int main(int argc, char **argv)
enum {
OPT_o = 1 << 0, // report only
OPT_r = 1 << 1,
+ OPT_V = 1 << 2,
};
/* Keep enum above and order of options below in sync! */
struct options program_options[] = {
OPT_BOOL('o', "report-only", NULL, _("Skip analyze steps, go through report steps only")),
OPT_BOOL('d', "delete", NULL, _("Remove DIR after reporting")),
+ OPT_BOOL('V', "version", NULL, _("Display version and exit")),
OPT_END()
};
unsigned opts = parse_opts(argc, argv, program_options, program_usage_string);
argv += optind;
- if (!argv[0] || argv[1] || !(opts & OPT_o)) /* zero or >1 arguments */
+ /* zero or >1 arguments with -o, or >0 arguments with -V */
+ if (!(opts & (OPT_o | OPT_V)) ||
+ ((opts & OPT_o) && (!argv[0] || argv[1])) ||
+ ((opts & OPT_V) && argv[0]))
show_usage_and_die(program_usage_string, program_options);
+ if (opts & OPT_V)
+ {
+ printf("%s "VERSION"\n", g_progname);
+ return 0;
+ }
+
dump_dir_name = argv[0];
/* Get settings */
--
1.7.6.4

View File

@ -1,57 +0,0 @@
From 123741b4e05a23fda1767b5f78a5f1022877d6c7 Mon Sep 17 00:00:00 2001
From: Jiri Moskovcak <jmoskovc@redhat.com>
Date: Fri, 30 Sep 2011 09:31:27 +0200
Subject: [PATCH 2/4] free the string not the strbuf
---
src/gui-wizard-gtk/wizard.c | 18 ++++++++++--------
1 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 3b06425..0279f83 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -691,8 +691,9 @@ static void analyze_rb_was_toggled(GtkButton *button, gpointer user_data)
static void report_tb_was_toggled(GtkButton *button, gpointer user_data)
{
char *event_name = (char *)user_data;
- struct strbuf *reporters_string = strbuf_new();
- struct strbuf *reporters_event_string = strbuf_new();
+ struct strbuf *reporters_strbuf = strbuf_new();
+ struct strbuf *reporters_event_strbuf = strbuf_new();
+ char * reporters_string;
/* if ((button && user_data)
* prevents sigsegv which would happen when call from
@@ -735,21 +736,22 @@ static void report_tb_was_toggled(GtkButton *button, gpointer user_data)
while (li != NULL)
{
event_config_t *cfg = get_event_config(li->data);
- strbuf_append_strf(reporters_event_string,
+ strbuf_append_strf(reporters_event_strbuf,
"%s%s",
- (reporters_event_string->len != 0 ? ", " : ""),
+ (reporters_event_strbuf->len != 0 ? ", " : ""),
(li->data ? li->data : "")
);
- strbuf_append_strf(reporters_string,
+ strbuf_append_strf(reporters_strbuf,
"%s%s",
- (reporters_string->len != 0 ? ", " : ""),
+ (reporters_strbuf->len != 0 ? ", " : ""),
(cfg->screen_name ? cfg->screen_name : li->data)
);
li = g_list_next(li);
}
- g_reporter_events_selected = strbuf_free_nobuf(reporters_event_string);
- gtk_label_set_text(g_lbl_reporters, strbuf_free_nobuf(reporters_string));
+ g_reporter_events_selected = strbuf_free_nobuf(reporters_event_strbuf);
+ reporters_string = strbuf_free_nobuf(reporters_strbuf);
+ gtk_label_set_text(g_lbl_reporters, reporters_string);
free(reporters_string); //we can, gtk copies the string
}
--
1.7.6.4

View File

@ -1,33 +0,0 @@
From fff24fb47435200ce6b51de9c43fe0c6d61c93d0 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <dvlasenk@redhat.com>
Date: Fri, 30 Sep 2011 19:13:48 +0200
Subject: [PATCH 3/4] reporter-mailx: set sendwait=1 in environment.
This might improve error detection in sending emails
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
---
src/plugins/reporter-mailx.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/plugins/reporter-mailx.c b/src/plugins/reporter-mailx.c
index 8e5ff41..ae7f774 100644
--- a/src/plugins/reporter-mailx.c
+++ b/src/plugins/reporter-mailx.c
@@ -99,6 +99,13 @@ static void create_and_send_email(
args = append_str_to_vector(args, &arg_size, email_from);
args = append_str_to_vector(args, &arg_size, email_to);
+ /* This makes (some versions of) mailx to wait for child process to finish,
+ * and to report its exit code, not useless "always 0" exit code.
+ * Sadly, usually this still doesn't help. See:
+ * https://bugzilla.redhat.com/show_bug.cgi?id=740895
+ */
+ putenv((char*)"sendwait=1");
+
log(_("Sending an email..."));
exec_and_feed_input(dsc, args);
--
1.7.6.4

View File

@ -1,66 +0,0 @@
From 57eb0c7c569ef06831ea90777f89920c96ee33b9 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <dvlasenk@redhat.com>
Date: Fri, 30 Sep 2011 19:15:10 +0200
Subject: [PATCH 4/4] reporter-mailx: use Bugzilla's output format. Closes
rhbz#717321.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
---
src/include/internal_libreport.h | 5 +++--
src/lib/make_descr.c | 2 ++
src/plugins/reporter-mailx.c | 3 ++-
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/include/internal_libreport.h b/src/include/internal_libreport.h
index afaf911..67a7ea3 100644
--- a/src/include/internal_libreport.h
+++ b/src/include/internal_libreport.h
@@ -548,8 +548,9 @@ char *make_description(problem_data_t *problem_data, char **names_to_skip, unsig
char* make_description_bz(problem_data_t *problem_data);
#define make_description_logger libreport_make_description_logger
char* make_description_logger(problem_data_t *problem_data);
-#define make_description_mailx libreport_make_description_mailx
-char* make_description_mailx(problem_data_t *problem_data);
+//UNUSED
+//#define make_description_mailx libreport_make_description_mailx
+//char* make_description_mailx(problem_data_t *problem_data);
#define parse_release_for_bz libreport_parse_release_for_bz
void parse_release_for_bz(const char *pRelease, char **product, char **version);
diff --git a/src/lib/make_descr.c b/src/lib/make_descr.c
index 7034526..2a6a973 100644
--- a/src/lib/make_descr.c
+++ b/src/lib/make_descr.c
@@ -184,6 +184,7 @@ char *make_description(problem_data_t *problem_data, char **names_to_skip, unsig
return strbuf_free_nobuf(buf_dsc);
}
+#ifdef UNUSED
char* make_description_mailx(problem_data_t *problem_data)
{
struct strbuf *buf_dsc = strbuf_new();
@@ -227,6 +228,7 @@ char* make_description_mailx(problem_data_t *problem_data)
return strbuf_free_nobuf(buf_dsc);
}
+#endif
/* Items we don't want to include to bz / logger */
static const char *const blacklisted_items[] = {
diff --git a/src/plugins/reporter-mailx.c b/src/plugins/reporter-mailx.c
index ae7f774..f7d9cde 100644
--- a/src/plugins/reporter-mailx.c
+++ b/src/plugins/reporter-mailx.c
@@ -75,7 +75,8 @@ static void create_and_send_email(
unsigned arg_size = 0;
args = append_str_to_vector(args, &arg_size, "/bin/mailx");
- char *dsc = make_description_mailx(problem_data);
+ //char *dsc = make_description_mailx(problem_data);
+ char *dsc = make_description_bz(problem_data);
if (send_binary_data)
{
--
1.7.6.4

View File

@ -4,17 +4,12 @@
Summary: Generic library for reporting various problems
Name: libreport
Version: 2.0.6
Release: 2%{?dist}
Version: 2.0.7
Release: 1%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: https://fedorahosted.org/abrt/
Source: https://fedorahosted.org/released/abrt/%{name}-%{version}.tar.gz
Patch0: 0001-report-newt-add-option-to-display-version-rhbz-74159.patch
Patch1: 0002-free-the-string-not-the-strbuf.patch
Patch2: 0003-reporter-mailx-set-sendwait-1-in-environment.patch
Patch3: 0004-reporter-mailx-use-Bugzilla-s-output-format.-Closes-.patch
Patch4: 0001-refuse-reporting-when-not-reportable-file-exist.patch
BuildRequires: dbus-devel
BuildRequires: gtk2-devel
BuildRequires: curl-devel
@ -155,6 +150,18 @@ Obsoletes: report-plugin-bugzilla < 0.23-1
Provides: report-config-bugzilla-redhat-com = 0.23-1
Obsoletes: report-config-bugzilla-redhat-com < 0.23-1
%if 0%{?fedora}
%package plugin-bodhi
Summary: %{name}'s bodhi plugin
BuildRequires: json-c-devel
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires: PackageKit
%description plugin-bodhi
Search for a new updates in bodhi server
%endif
%description plugin-bugzilla
Plugin to report bugs into the bugzilla.
@ -195,18 +202,13 @@ Plugin to report bugs into anonymous FTP site associated with ticketing system.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%build
mkdir -p m4
test -r m4/aclocal.m4 || touch m4/aclocal.m4
autoconf
automake
%configure
%configure --enable-gtk3
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
CFLAGS="-fno-strict-aliasing"
@ -229,6 +231,9 @@ rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
%clean
rm -rf $RPM_BUILD_ROOT
%check
make check
%post gtk
/sbin/ldconfig
# update icon cache
@ -254,12 +259,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%dir %{_sysconfdir}/%{name}/
%dir %{_sysconfdir}/%{name}/events.d/
%dir %{_sysconfdir}/%{name}/events/
%dir %{_sysconfdir}/%{name}/plugins/
%config(noreplace) %{_sysconfdir}/%{name}/report_event.conf
%{_libdir}/libreport.so.*
%{_libdir}/libabrt_dbus.so.*
%{_libdir}/libabrt_web.so.*
%exclude %{_libdir}/libabrt_web.so
%{_bindir}/report
%{_mandir}/man5/report_event.conf.5*
%files devel
@ -325,6 +330,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_mandir}/man*/reporter-mailx.*
%{_bindir}/reporter-mailx
%if 0%{?fedora}
%files plugin-bodhi
%defattr(-,root,root,-)
%{_bindir}/abrt-bodhi
%config(noreplace) %{_sysconfdir}/libreport/events.d/bodhi_event.conf
%{_sysconfdir}/libreport/events/analyze_LocalGDB_Bodhi.xml
%endif
%files plugin-bugzilla
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/libreport/plugins/bugzilla.conf
@ -356,6 +369,21 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%config(noreplace) %{_sysconfdir}/libreport/events.d/uploader_event.conf
%changelog
* Fri Nov 04 2011 Jiri Moskovcak <jmoskovc@redhat.com> 2.0.7-1
- new version
- added support for bodhi (preview)
- dropped unused patches
- reporter-bugzilla/rhts: add code to prevent duplicate reporting. Closes rhbz#727494 (dvlasenk@redhat.com)
- wizard: search thru all items + tabbed details rhbz#748457 (jmoskovc@redhat.com)
- wizard: add "I don't know what caused this problem" checkbox. Closes rhbz#712508 (dvlasenk@redhat.com)
- reporter-bugzilla: add optional 'Product' parameter. Closes rhbz#665210 (dvlasenk@redhat.com)
- rhbz#728190 - man pages contain suspicious version string (npajkovs@redhat.com)
- reporter-print: expand leading ~/ if present. Closes rhbz#737991 (dvlasenk@redhat.com)
- reporter-rhtsupport: ask rs/problems endpoint before creating new case. (working on rhbz#677052) (dvlasenk@redhat.com)
- reporter-mailx: use Bugzilla's output format. Closes rhbz#717321. (dvlasenk@redhat.com)
- report-newt: add option to display version (rhbz#741590) (mlichvar@redhat.com)
- Resolves: #727494 #748457 #712508 #665210 rhbz#728190 #737991 #677052 #717321 #741590
* Fri Oct 07 2011 Nikola Pajkovsky <npajkovs@redhat.com> 2.0.6-2
- refuse reporting when not reportable file exist

View File

@ -1 +1 @@
177d401ae2a78cc983fb1a930254564f libreport-2.0.6.tar.gz
d0f33f419dccca6fbec3142964c8ba56 libreport-2.0.7.tar.gz