[LIBREPORT PATCH 1/2] add workflow definitions for RHEL
by Jakub Filak
- related to rhbz#922648
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
po/POTFILES.in | 5 +++++
src/workflows/Makefile.am | 18 ++++++++++++++----
src/workflows/report_rhel.conf | 19 +++++++++++++++++++
src/workflows/workflow_RHELCCpp.xml.in | 11 +++++++++++
src/workflows/workflow_RHELKerneloops.xml.in | 10 ++++++++++
src/workflows/workflow_RHELPython.xml.in | 10 ++++++++++
src/workflows/workflow_RHELvmcore.xml.in | 11 +++++++++++
src/workflows/workflow_RHELxorg.xml.in | 9 +++++++++
8 files changed, 89 insertions(+), 4 deletions(-)
create mode 100644 src/workflows/report_rhel.conf
create mode 100644 src/workflows/workflow_RHELCCpp.xml.in
create mode 100644 src/workflows/workflow_RHELKerneloops.xml.in
create mode 100644 src/workflows/workflow_RHELPython.xml.in
create mode 100644 src/workflows/workflow_RHELvmcore.xml.in
create mode 100644 src/workflows/workflow_RHELxorg.xml.in
diff --git a/po/POTFILES.in b/po/POTFILES.in
index effea05..3f10efe 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -48,3 +48,8 @@ src/workflows/workflow_AnacondaFedora.xml.in
src/workflows/workflow_AnacondaUpload.xml.in
src/workflows/workflow_Fedora.xml.in
src/workflows/workflow_Upload.xml.in
+src/workflows/workflow_RHELCCpp.xml.in
+src/workflows/workflow_RHELKerneloops.xml.in
+src/workflows/workflow_RHELPython.xml.in
+src/workflows/workflow_RHELvmcore.xml.in
+src/workflows/workflow_RHELxorg.xml.in
diff --git a/src/workflows/Makefile.am b/src/workflows/Makefile.am
index 82b65ad..17e3f1a 100644
--- a/src/workflows/Makefile.am
+++ b/src/workflows/Makefile.am
@@ -4,13 +4,19 @@ dist_workflows_DATA = \
workflow_Fedora.xml \
workflow_Upload.xml \
workflow_AnacondaFedora.xml \
- workflow_AnacondaUpload.xml
+ workflow_AnacondaUpload.xml \
+ workflow_RHELCCpp.xml \
+ workflow_RHELKerneloops.xml \
+ workflow_RHELPython.xml \
+ workflow_RHELvmcore.xml \
+ workflow_RHELxorg.xml
workflowsconfdir = $(WORKFLOWS_CONF_DIR)
dist_workflowsconf_DATA =\
report_fedora.conf \
- anaconda_event.conf
+ anaconda_event.conf \
+ report_rhel.conf
@INTLTOOL_XML_RULE@
@@ -18,5 +24,9 @@ EXTRA_DIST = \
workflow_Fedora.xml.in \
workflow_Upload.xml.in \
workflow_AnacondaFedora.xml.in \
- workflow_AnacondaUpload.xml.in
-
+ workflow_AnacondaUpload.xml.in \
+ workflow_RHELCCpp.xml.in \
+ workflow_RHELKerneloops.xml.in \
+ workflow_RHELPython.xml.in \
+ workflow_RHELvmcore.xml.in \
+ workflow_RHELxorg.xml.in
diff --git a/src/workflows/report_rhel.conf b/src/workflows/report_rhel.conf
new file mode 100644
index 0000000..db02457
--- /dev/null
+++ b/src/workflows/report_rhel.conf
@@ -0,0 +1,19 @@
+EVENT=workflow_RHELCCPp analyzer=CCpp
+# this is just a meta event which consists of other events
+# the list is defined in the xml file
+
+EVENT=workflow_RHELPython analyzer=Python
+# this is just a meta event which consists of other events
+# the list is defined in the xml file
+
+EVENT=workflow_RHELKerneloops analyzer=Kerneloops
+# this is just a meta event which consists of other events
+# the list is defined in the xml file
+
+EVENT=workflow_RHELvmcore analyzer=vmcore
+# this is just a meta event which consists of other events
+# the list is defined in the xml file
+
+EVENT=workflow_RHELxorg analyzer=xorg
+# this is just a meta event which consists of other events
+# the list is defined in the xml file
diff --git a/src/workflows/workflow_RHELCCpp.xml.in b/src/workflows/workflow_RHELCCpp.xml.in
new file mode 100644
index 0000000..37521cb
--- /dev/null
+++ b/src/workflows/workflow_RHELCCpp.xml.in
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<workflow>
+ <_name>Report to Red Hat</_name>
+ <_description>Process the report using the Red Hat infrastructure</_description>
+
+ <events>
+ <event>collect_*</event>
+ <event>analyze_CCpp</event>
+ <event>report_Bugzilla</event>
+ </events>
+</workflow>
diff --git a/src/workflows/workflow_RHELKerneloops.xml.in b/src/workflows/workflow_RHELKerneloops.xml.in
new file mode 100644
index 0000000..2355db2
--- /dev/null
+++ b/src/workflows/workflow_RHELKerneloops.xml.in
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<workflow>
+ <_name>Report to Red Hat</_name>
+ <_description>Process the report using the Red Hat infrastructure</_description>
+
+ <events>
+ <event>collect_*</event>
+ <event>report_Bugzilla</event>
+ </events>
+</workflow>
diff --git a/src/workflows/workflow_RHELPython.xml.in b/src/workflows/workflow_RHELPython.xml.in
new file mode 100644
index 0000000..2355db2
--- /dev/null
+++ b/src/workflows/workflow_RHELPython.xml.in
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<workflow>
+ <_name>Report to Red Hat</_name>
+ <_description>Process the report using the Red Hat infrastructure</_description>
+
+ <events>
+ <event>collect_*</event>
+ <event>report_Bugzilla</event>
+ </events>
+</workflow>
diff --git a/src/workflows/workflow_RHELvmcore.xml.in b/src/workflows/workflow_RHELvmcore.xml.in
new file mode 100644
index 0000000..3f56a00
--- /dev/null
+++ b/src/workflows/workflow_RHELvmcore.xml.in
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<workflow>
+ <_name>Report to Red Hat</_name>
+ <_description>Process the report using the Red Hat infrastructure</_description>
+
+ <events>
+ <event>analyze_VMcore</event>
+ <event>collect_*</event>
+ <event>report_Bugzilla</event>
+ </events>
+</workflow>
diff --git a/src/workflows/workflow_RHELxorg.xml.in b/src/workflows/workflow_RHELxorg.xml.in
new file mode 100644
index 0000000..db6b5eb
--- /dev/null
+++ b/src/workflows/workflow_RHELxorg.xml.in
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<workflow>
+ <_name>Report to Red Hat</_name>
+ <_description>Process the report using the Red Hat infrastructure</_description>
+
+ <events>
+ <event>report_Bugzilla</event>
+ </events>
+</workflow>
--
1.8.1.4
11 years, 2 months
[ABRT PATCH 1/5] Add more unittests for ignored problem error paths
by Jakub Filak
Related to rhbz#909968 and rhbz#905412
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
tests/ignored_problems.at | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/ignored_problems.at b/tests/ignored_problems.at
index 3013507..a3d2d91 100644
--- a/tests/ignored_problems.at
+++ b/tests/ignored_problems.at
@@ -25,7 +25,7 @@ int main(void)
{
{
unlink(SET_PATH);
- ignored_problems_t *set = ignored_problems_new(xstrdup(xstrdup(SET_PATH)));
+ ignored_problems_t *set = ignored_problems_new(xstrdup(SET_PATH));
ignored_problems_add(set, "foo_blah");
assert(0 == ignored_problems_contains(set, "foo_blah") || "The set contains invalid problem");
@@ -53,6 +53,8 @@ int main(void)
ignored_problems_t *set = ignored_problems_new(xstrdup("/foo/blah"));
ignored_problems_add(set, FIRST_DD_ID);
+ ignored_problems_remove(set, FIRST_DD_ID);
+ assert(0 == ignored_problems_contains(set, FIRST_DD_ID) || !"Invalid file contains a problem");
ignored_problems_free(set);
}
--
1.8.1.4
11 years, 2 months
[ABRT PATCH] added vmcore cli and gui events rhbz#921954
by Jiri Moskovcak
Signed-off-by: Jiri Moskovcak <jmoskovc(a)redhat.com>
---
src/plugins/vmcore_event.conf | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/plugins/vmcore_event.conf b/src/plugins/vmcore_event.conf
index 2346c57..7356c34 100644
--- a/src/plugins/vmcore_event.conf
+++ b/src/plugins/vmcore_event.conf
@@ -13,3 +13,9 @@ EVENT=analyze_VMcore analyzer=vmcore
# report
EVENT=report_Kerneloops analyzer=vmcore
reporter-kerneloops
+
+EVENT=report-gui analyzer=vmcore
+ report-gtk -e analyze_VMcore -e report_uReport -e "collect_*" -e report_Bugzilla -e post_report -- "$DUMP_DIR"
+
+EVENT=report-gui analyzer=vmcore
+ report-cli -e analyze_VMcore -e report_uReport -e "collect_*" -e report_Bugzilla -e post_report -- "$DUMP_DIR"
--
1.8.1.4
11 years, 2 months
[PATCH] tweak 'make rpm' for openSUSE
by Michal Toman
---
abrt.spec.in | 98 +++++++++++++++++++++++++++++++++++--------------
configure.ac | 29 +++++++++++++++
doc/Makefile.am | 2 +
src/plugins/Makefile.am | 10 +++--
4 files changed, 108 insertions(+), 31 deletions(-)
diff --git a/abrt.spec.in b/abrt.spec.in
index f8433c2..23be8b1 100644
--- a/abrt.spec.in
+++ b/abrt.spec.in
@@ -1,26 +1,42 @@
%{!?python_site: %global python_site %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0)")}
# platform-dependent
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-%if 0%{?fedora} >= 14
- %bcond_without systemd
-%else
+
+%if 0%{?fedora:%{fedora} < 14}
%bcond_with systemd
+%else
+ %bcond_without systemd
%endif
-# systemd wasn't set by the code above - so we're on old Fedora or we're not on Fedora at all
-%if %{without systemd}
- %if 0%{?rhel} >= 7
- %bcond_without systemd
- %else
- %bcond_with systemd
- %endif
+%if 0%{?rhel}%{?suse_version}
+ %bcond_with bodhi
+%else
+ %bcond_without bodhi
%endif
%if 0%{?rhel} >= 6
%define desktopvendor redhat
%else
+%if 0%{?suse_version}
+%define desktopvendor suse
+%else
%define desktopvendor fedora
%endif
+%endif
+
+%if 0%{?suse_version}
+%define dbus_devel dbus-1-devel
+%define libjson_devel libjson-devel
+%define nss_devel mozilla-nss-devel
+%define systemd_units systemd
+%define shadow_utils pwdutils
+%else
+%define dbus_devel dbus-devel
+%define libjson_devel json-c-devel
+%define nss_devel nss-devel
+%define systemd_units systemd-units
+%define shadow_utils shadow-utils
+%endif
Summary: Automatic bug detection and reporting tool
Name: abrt
@@ -30,7 +46,7 @@ License: GPLv2+
Group: Applications/System
URL: https://fedorahosted.org/abrt/
Source: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz
-BuildRequires: dbus-devel
+BuildRequires: %{dbus_devel}
BuildRequires: gtk3-devel
BuildRequires: rpm-devel >= 4.6
BuildRequires: desktop-file-utils
@@ -41,20 +57,25 @@ BuildRequires: gettext
BuildRequires: libxml2-devel
BuildRequires: intltool
BuildRequires: libtool
-BuildRequires: nss-devel
+BuildRequires: %{nss_devel}
BuildRequires: asciidoc
BuildRequires: doxygen
BuildRequires: xmlto
BuildRequires: libreport-devel >= 2.1.0
BuildRequires: btparser-devel
+# these only exist on suse
+%if 0%{?suse_version}
+BuildRequires: dbus-1-glib-devel
+Requires: dbus-1-glib
+%endif
Requires: libreport >= 2.1.0
%if %{with systemd}
-Requires: systemd-units
+Requires: %{systemd_units}
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: %{name}-libs = %{version}-%{release}
-Requires(pre): shadow-utils
+Requires(pre): %{shadow_utils}
Obsoletes: abrt-plugin-sqlite3 > 0.0.1
# required for transition from 1.1.13, can be removed after some time
Obsoletes: abrt-plugin-runapp > 0.0.1
@@ -152,9 +173,10 @@ Requires: crash
%description addon-vmcore
This package contains plugin for collecting kernel crash information from vmcore files.
+%if %{with bodhi}
%package plugin-bodhi
Summary: %{name}'s bodhi plugin
-BuildRequires: json-c-devel
+BuildRequires: %{libjson_devel}
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
BuildRequires: libreport-web-devel >= 2.0.10
@@ -163,6 +185,7 @@ Provides: libreport-plugin-bodhi
%description plugin-bodhi
Search for a new updates in bodhi server.
+%endif
%package addon-python
Summary: %{name}'s addon for catching and analyzing Python exceptions
@@ -192,7 +215,10 @@ Requires: %{name} = %{version}-%{release}
Requires: abrt-tui
Requires: abrt-addon-kerneloops
Requires: abrt-addon-ccpp, abrt-addon-python
-Requires: libreport-plugin-bugzilla, libreport-plugin-logger
+Requires: libreport-plugin-logger
+%if 0%{?suse_version}
+Requires: libreport-plugin-bugzilla
+%endif
%description cli
Virtual package to make easy default installation on non-graphical environments.
@@ -216,8 +242,14 @@ Requires: abrt-addon-xorg
Requires: gdb >= 7.0-3
Requires: abrt-gui
Requires: gnome-abrt
+Requires: libreport-plugin-logger
+%if %{with bodhi}
Requires: abrt-plugin-bodhi
-Requires: libreport-plugin-logger, libreport-plugin-bugzilla
+%endif
+%if 0%{?suse_version}
+%else
+Requires: libreport-plugin-bugzilla
+%endif
Requires: libreport-plugin-ureport
Requires: libreport-fedora
#Requires: abrt-plugin-firefox
@@ -256,24 +288,32 @@ problems handled by ABRT in Python.
%build
autoconf
-%if 0%{?fedora} < 18
- %if 0%{?rhel} < 7
+
+%define var_base_dir tmp
+
+CFLAGS="%{optflags} -Werror" %configure \
+%if 0%{?suse_version}
+ --with-systemdsystemunitdir="%{_unitdir}" \
+%endif
+%if %{without bodhi}
+ --without-bodhi \
+%endif
+%if 0%{?rhel:%{rhel} < 7}
%define var_base_dir spool
- CFLAGS="%{optflags} -Werror" %configure --enable-doxygen-docs --with-defaultdumplocation=/var/%{var_base_dir}/abrt --disable-silent-rules
- %else
- %define var_base_dir tmp
- CFLAGS="%{optflags} -Werror" %configure --enable-doxygen-docs --disable-silent-rules
- %endif
-%else
- %define var_base_dir tmp
- CFLAGS="%{optflags} -Werror" %configure --enable-doxygen-docs --disable-silent-rules
+ --with-defaultdumplocation=/var/%{var_base_dir}/abrt
%endif
+ --enable-doxygen-docs \
+ --disable-silent-rules
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir}
+make install DESTDIR=$RPM_BUILD_ROOT \
+ mandir=%{_mandir} \
+ dbusabrtdocdir=%{_defaultdocdir}/%{name}-dbus-%{version}/html/ \
+ example_pythondir=%{_defaultdocdir}/%{name}-python-%{version}/examples
+
%find_lang %{name}
# remove all .la and .a files
@@ -664,10 +704,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files desktop
%defattr(-,root,root,-)
+%if %{with bodhi}
%files plugin-bodhi
%defattr(-,root,root,-)
%{_bindir}/abrt-bodhi
%{_mandir}/man1/abrt-bodhi.1.gz
+%endif
%files dbus
%defattr(-,root,root,-)
diff --git a/configure.ac b/configure.ac
index 9c6b9c7..8b33670 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,3 +1,20 @@
+# copy-pasted from libreport
+# ABRT_PARSE_WITH(PACKAGE)
+# -----------------------
+# For use in AC_ARG_WITH action-if-found, for packages default ON.
+# * Set NO_PACKAGE=YesPlease for --without-PACKAGE
+# * Unset NO_PACKAGE for --with-PACKAGE without ARG
+AC_DEFUN([ABRT_PARSE_WITH],
+ [m4_pushdef([ABRT_UC_PACKAGE], m4_toupper([$1]))dnl
+ if test "$withval" = "no"; then
+ NO_[]ABRT_UC_PACKAGE=YesPlease
+ elif test "$withval" = "yes"; then
+ NO_[]ABRT_UC_PACKAGE=
+ else
+ NO_[]ABRT_UC_PACKAGE=
+ fi
+ m4_popdef([ABRT_UC_PACKAGE])])
+
AC_INIT([abrt],
m4_esyscmd([cat ./abrt-version]),
[crash-catcher(a)fedorahosted.org])
@@ -161,6 +178,18 @@ AC_SUBST(EVENTS_DIR)
AC_SUBST(DEFAULT_DUMP_LOCATION)
AC_SUBST(DEFAULT_DUMP_DIR_MODE)
+AC_ARG_WITH(bodhi,
+AS_HELP_STRING([--with-bodhi],[use Bodhi plugin (default is YES)]),
+ABRT_PARSE_WITH([bodhi]))
+
+if test -z "$NO_BODHI"
+then
+PKG_CHECK_MODULES([JSON_C], [json])
+AM_CONDITIONAL(BUILD_BODHI, true)
+else
+AM_CONDITIONAL(BUILD_BODHI, false)
+fi dnl end NO_BODHI
+
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
diff --git a/doc/Makefile.am b/doc/Makefile.am
index ea3b47e..0f89599 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -18,7 +18,9 @@ MAN1_TXT += abrt-cli.txt
MAN1_TXT += abrt-action-save-package-data.txt
MAN1_TXT += abrt-install-ccpp-hook.txt
MAN1_TXT += abrt-action-analyze-vmcore.txt
+if BUILD_BODHI
MAN1_TXT += abrt-bodhi.txt
+endif
MAN1_TXT += abrt-action-analyze-ccpp-local.txt
MAN5_TXT =
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index 33f201d..11672ae 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -22,8 +22,11 @@ bin_PROGRAMS = \
abrt-action-generate-core-backtrace \
abrt-action-analyze-backtrace \
abrt-retrace-client \
- abrt-dedup-client \
- abrt-bodhi
+ abrt-dedup-client
+
+if BUILD_BODHI
+bin_PROGRAMS += abrt-bodhi
+endif
libexec_PROGRAMS = abrt-action-install-debuginfo-to-abrt-cache
@@ -279,6 +282,7 @@ abrt_dedup_client_SOURCES = \
$(BTPARSER_LIBS) \
$(NSS_LIBS)
+if BUILD_BODHI
abrt_bodhi_SOURCES = \
bodhi.c
abrt_bodhi_CPPFLAGS = \
@@ -295,7 +299,7 @@ abrt_bodhi_SOURCES = \
$(RPM_LIBS) \
$(LIBREPORT_LIBS) \
$(LIBREPORT_WEB_LIBS)
-
+endif
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
--
1.8.1.4
11 years, 2 months
[ABRT PATCH 1/2] introduce helpers for management of list of ignored problems
by Jakub Filak
- the current implementation stores a set of ignored problems in a csv
file
- each ignored problem corresponds to a single line in the file
- each line has the following format 'PROBLEM ID;UUID;DUPHASH'
- the matching function returns logical true if any line value equals to
the corresponding problem value
- related to rhbz#909968 and rhbz#905412
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/include/libabrt.h | 56 +++++++++
src/lib/Makefile.am | 3 +-
src/lib/ignored_problems.c | 274 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 332 insertions(+), 1 deletion(-)
create mode 100644 src/lib/ignored_problems.c
diff --git a/src/include/libabrt.h b/src/include/libabrt.h
index 16008b1..75e4d64 100644
--- a/src/include/libabrt.h
+++ b/src/include/libabrt.h
@@ -139,6 +139,62 @@ problem_data_t *get_problem_data_dbus(const char *problem_dir_path);
*/
GList *get_problems_over_dbus(bool authorize);
+/**
+ @struct ignored_problems
+ @brief An opaque structure holding a list of ignored problems
+*/
+typedef struct ignored_problems ignored_problems_t;
+
+/**
+ @brief Initializes a new instance of ignored problems
+
+ @param file_path A malloced string hodling a path to a file containing the list of ignored problems. Function takes ownership of the malloced memory, whic will be freed in ignored_problems_free()
+ @see ignored_problems_free()
+ @return Fully initialized instance of ignored problems struct which must be destroyed by ignored_problems_free()
+*/
+ignored_problems_t *ignored_problems_new(char *file_path);
+
+/**
+ @brief Destroys an instance of ignored problems
+
+ This function never fails. Supports the common behaviour where it accepts
+ NULL pointers.
+
+ @param set A destroyed instance
+*/
+void ignored_problems_free(ignored_problems_t *set);
+
+/**
+ @brief Adds a problem to the ignored problems
+
+ This function never fails. All errors will be logged.
+
+ @param set An instance of ignored problems to which the problem will be added
+ @param problem_id An identfier of a problem which will be added to an ignored set
+*/
+void ignored_problems_add(ignored_problems_t *set, const char *problem_id);
+
+/**
+ @brief Removes a problem from the ignored problems
+
+ This function never fails. All errors will be logged.
+
+ @param set An instance of ignored problems from which the problem will be added
+ @param problem_id An identifier of a problem which will be removed from an ignored problems struct
+*/
+void ignored_problems_remove(ignored_problems_t *set, const char *problem_id);
+
+/**
+ @brief Checks if a problem is in the ignored problems
+
+ This function never fails. All errors will be logged. If any error occures,
+ the function returns 0 value.
+
+ @param set An instance of ignored problems in which the problem will be searched
+ @param problem_id An identfier of a problem
+ @return Non 0 value if the problem is ignored; otherwise returns 0 value.
+*/
+bool ignored_problems_contains(ignored_problems_t *set, const char *problem_id);
#ifdef __cplusplus
}
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 89ce517..4b1ddb9 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -12,7 +12,8 @@ libabrt_la_SOURCES = \
abrt_glib.c \
migrate_dirs.c \
check_recent_crash_file.c \
- problem_api.c
+ problem_api.c \
+ ignored_problems.c
libabrt_la_CPPFLAGS = \
-I$(srcdir)/../include \
diff --git a/src/lib/ignored_problems.c b/src/lib/ignored_problems.c
new file mode 100644
index 0000000..454f1f3
--- /dev/null
+++ b/src/lib/ignored_problems.c
@@ -0,0 +1,274 @@
+/*
+ Copyright (C) 2013 ABRT Team
+ Copyright (C) 2013 RedHat inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "libabrt.h"
+
+#define IGN_COLUMN_DELIMITER ';'
+#define IGN_TEMP_FILE_TEMPLATE "/tmp/abrt_ignored_problems_XXXXXX"
+#define IGN_DD_OPEN_FLAGS (DD_OPEN_READONLY | DD_FAIL_QUIETLY_ENOENT | DD_FAIL_QUIETLY_EACCES)
+#define IGN_DD_LOAD_TEXT_FLAGS (DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE | DD_FAIL_QUIETLY_ENOENT | DD_FAIL_QUIETLY_EACCES)
+
+struct ignored_problems
+{
+ char *ign_set_file_path;
+};
+
+ignored_problems_t *ignored_problems_new(char *set_file_path)
+{
+ ignored_problems_t *set = (ignored_problems_t *)xmalloc(sizeof(*set));
+ set->ign_set_file_path = set_file_path;
+
+ return set;
+}
+
+void ignored_problems_free(ignored_problems_t *set)
+{
+ if (NULL == set)
+ return;
+
+ free(set->ign_set_file_path);
+ free(set);
+}
+
+static bool ignored_problems_eq(ignored_problems_t *set,
+ const char *problem_id, const char *uuid, const char *duphash,
+ char *line, unsigned line_num)
+{
+ char *ignored = line;
+ char *ignored_end = strchr(ignored, IGN_COLUMN_DELIMITER);
+
+ if (ignored_end != NULL)
+ ignored_end[0] = '\0';
+
+ if (strcmp(problem_id, ignored) == 0)
+ {
+ VERB1 log("Ignored id equals to '%s'", problem_id);
+ return true;
+ }
+
+ if (ignored_end == NULL)
+ {
+ VERB1 log("Missing UUID as 2nd column at line %d in ignored problems file '%s'",
+ line_num, set->ign_set_file_path);
+ return false;
+ }
+
+ ignored_end[0] = IGN_COLUMN_DELIMITER;
+ ignored = ignored_end + 1;
+ ignored_end = strchr(ignored, IGN_COLUMN_DELIMITER);
+
+ if (ignored_end != NULL)
+ ignored_end[0] = '\0';
+
+ if (uuid != NULL && strcmp(uuid, ignored) == 0)
+ {
+ VERB1 log("Ignored uuid '%s' equals uuid from of problem '%s'", ignored, problem_id);
+ return true;
+ }
+
+ if (ignored_end == NULL)
+ {
+ VERB1 log("Missing DUPHASH as 3rd column at line %d in ignored problems file '%s'",
+ line_num, set->ign_set_file_path);
+
+ return false;
+ }
+
+ ignored_end[0] = IGN_COLUMN_DELIMITER;
+ ignored = ignored_end + 1;
+
+ if (duphash != NULL && strcmp(duphash, ignored) == 0)
+ {
+ VERB1 log("Ignored uuid '%s' equals uuid from of problem '%s'", ignored, problem_id);
+ return true;
+ }
+
+ return false;
+}
+
+void ignored_problems_add(ignored_problems_t *set, const char *problem_id)
+{
+ if (ignored_problems_contains(set, problem_id))
+ {
+ VERB1 log("Not adding problem '%s' to ignored problems", problem_id);
+ return;
+ }
+
+ struct dump_dir *dd = dd_opendir(problem_id, IGN_DD_OPEN_FLAGS);
+
+ if (!dd)
+ {
+ VERB1 log("Can't add the problem '%s' to the ignored problems because of " \
+ "an error while opening the problem", problem_id);
+
+ return;
+ }
+
+ FILE *fp = fopen(set->ign_set_file_path, "a");
+ if (!fp)
+ {
+ VERB1 perror_msg("Can't open the ignored problems '%s' and add the problem '%s'",
+ set->ign_set_file_path, problem_id);
+
+ dd_close(dd);
+ return;
+ }
+
+ char *uuid = dd_load_text_ext(dd, FILENAME_UUID, IGN_DD_LOAD_TEXT_FLAGS);
+ char *duphash = dd_load_text_ext(dd, FILENAME_DUPHASH, IGN_DD_LOAD_TEXT_FLAGS);
+
+ fprintf(fp, "%s;%s;%s\n", problem_id, (uuid ? uuid : ""),
+ (duphash ? duphash : ""));
+
+ free(duphash);
+ free(uuid);
+ fclose(fp);
+ dd_close(dd);
+}
+
+void ignored_problems_remove(ignored_problems_t *set, const char *problem_id)
+{
+ if (false == ignored_problems_contains(set, problem_id))
+ {
+ VERB1 log("Not removing problem '%s' from ignored problems", problem_id);
+ return;
+ }
+
+ VERB1 log("Removing problem '%s' from ignored problems", problem_id);
+
+ char *uuid = NULL;
+ char *duphash = NULL;
+ struct dump_dir *dd = dd_opendir(problem_id, IGN_DD_OPEN_FLAGS);
+
+ if (dd)
+ {
+ uuid = dd_load_text_ext(dd, FILENAME_UUID, IGN_DD_LOAD_TEXT_FLAGS);
+ duphash = dd_load_text_ext(dd, FILENAME_DUPHASH, IGN_DD_LOAD_TEXT_FLAGS);
+ }
+ else
+ {
+ VERB1 log("Can't use neither UUID nor DUPHASH for identification of " \
+ "the problem '%s' to remove it from the ignored problems " \
+ "becuase of an error while opennig the problem", problem_id);
+ }
+
+ FILE *fp = fopen(set->ign_set_file_path, "r");
+ if (!fp)
+ {
+ VERB1 perror_msg("Can't open the ignored problems '%s' and determine " \
+ "if the problem '%s' belongs to it",
+ set->ign_set_file_path, problem_id);
+ if (dd)
+ {
+ free(uuid);
+ free(duphash);
+ dd_close(dd);
+ }
+ return;
+ }
+
+ char result_name[] = IGN_TEMP_FILE_TEMPLATE;
+ int result = mkstemp(result_name);
+
+ unsigned line_num = 0;
+ char *line;
+ while ((line = xmalloc_fgetline(fp)) != NULL)
+ {
+ ++line_num;
+
+ if (!ignored_problems_eq(set, problem_id, uuid, duphash, line, line_num))
+ {
+ ssize_t len = strlen(line);
+ line[len] = '\n';
+ full_write(result, line, len + 1);
+ }
+
+ free(line);
+ }
+
+ close(result);
+ fclose(fp);
+
+ if (dd)
+ {
+ free(duphash);
+ free(uuid);
+ dd_close(dd);
+ }
+
+ if (rename(result_name, set->ign_set_file_path) < 0)
+ {
+ VERB1 perror_msg("Can't remove remove the problem '%s' from the ignored " \
+ "problems '%s' because an error while moving an updated " \
+ "file '%s'",
+ problem_id, set->ign_set_file_path, result_name);
+ }
+}
+
+bool ignored_problems_contains(ignored_problems_t *set, const char *problem_id)
+{
+ struct dump_dir *dd = dd_opendir(problem_id, IGN_DD_OPEN_FLAGS);
+
+ if (!dd)
+ {
+ VERB1 log("Can't determine if the problem '%s' belongs to the ignored " \
+ "problems because of an error while opening the problem",
+ problem_id);
+
+ return false;
+ }
+
+ FILE *fp = fopen(set->ign_set_file_path, "r");
+ if (!fp)
+ {
+ VERB1 perror_msg("Can't open the ignored problems '%s' and determine " \
+ "if the problem '%s' belongs to it",
+ set->ign_set_file_path, problem_id);
+
+ dd_close(dd);
+ return false;
+ }
+
+ char *uuid = dd_load_text_ext(dd, FILENAME_UUID, IGN_DD_LOAD_TEXT_FLAGS);
+ char *duphash = dd_load_text_ext(dd, FILENAME_DUPHASH, IGN_DD_LOAD_TEXT_FLAGS);
+
+ bool result = false;
+ unsigned line_num = 0;
+ while (result == false)
+ {
+ char *line = xmalloc_fgetline(fp);
+
+ if (line == NULL)
+ break;
+
+ ++line_num;
+
+ if (ignored_problems_eq(set, problem_id, uuid, duphash, line, line_num))
+ result = true;
+
+ free(line);
+ }
+
+ free(duphash);
+ free(uuid);
+ fclose(fp);
+ dd_close(dd);
+
+ return result;
+}
--
1.8.1.4
11 years, 2 months
faf design feedback
by Martin Milata
Hi,
this is a feedback for the faf design notes currently located at
https://github.com/abrt/faf/wiki
In general I like the idea of having the functionality split into
several types of modules. Some minor suggestions, mostly regarding
the ureport format:
* The next points follow the guideline that if something can be computed on
the server then let's do it there. We have greater control over the server
side than the clients (and use higher-level language => faster development).
* I'm not sure whether the list(s) of packages should be considered part of
the OS or the problem (or split among both) but in any way the metadata
available for a package depend on the OS. Personally, I don't see an
advantage in assigning roles (interpreter, package, related package) to the
packages on the client side - this can probably be done on the server.
So my suggestion is to have single list of packages in the report. What
packages are included in the report is determined by the OS type (e.g. for
fedora, always include the kernel and selinux-policy; for debian, include
the suggested/recommended packages) and the problem (e.g. for ccpp crash
include packages of all the libraries involved; for python crashes include
packages of all the modules involved and the python interpreter, ...).
* I'd suggest representing the packages as dictionaries with keys dependent on
the OS as opposed to single string. There's some code in satyr for checking
RPM integrity (whether packaged files were modified) so I guess it may be
useful for us in fedora? We may have to keep track from which repo the
package comes in distributions that allow custom repositories.
* Regarding the module interfaces, I guess it's probably quite early to design
definitive versions, I suppose we'll find the actual required methods during
implementation:) I can imagine that OS plugin method for getting files in a
package and a problem plugin method for finding a package responsible for
the crash could be useful.
Random thought regarding retracing: stack frame from report may expand to
multiple source code level stack frames due to function inlining (or do we
do that already?).
* Random thought regarding ccpp crashes: allow reports without stack traces,
certain crashes may damage stack so it cannot be unwound and I guess we are
interested in those crashes as well.
Anyway, below is my proposal of what a ccpp (haven't given much thought to
other crash types) ureport2 can look like and further below is a ureport that
satyr currently produces. I've added some comments inline. Most changes are
cosmetic and should be treated as opinion regarding the bike shed color [1]
than anything else:) But then again, if you design nice and flexible data
structures, it's easier to build good code around them ...
== proposed example of ureport 2 ==
{
"ureport_version": 2,
"reporter": {
"name": "ABRT",
"version": "2.0.20"
}
"reason": "Killed by SIGSEGV", # is this useful? probably not on the server but we should
# present some human-readable string on the client side
# i'd remove the "custom" key and move its contents to the top level, it's not useful imho
"os": {
"type": "fedora", # this key (as well as problem.type) can be moved to the top level
# doesn't really matter
"version": "16",
"arch": "x86_64",
"packages": [
{ "name": "kernel",
"version": ...,
"release": ...,
"architecture": ...,
"epoch": ...,
"install_time": ...,
"modified": false, # package integrity check?
},
{ "name": "glibc", ... },
{ "name": "selinux-policy", ... },
{ "name": "coreutils", ...}
],
"selinux-mode": "enforcing"
}
"problem": {
"type": "ccpp", # or core/binary/whatever
"core_stacktrace": { # or just stacktrace
"signal": 11, # or "SEGV"
"executable": "/bin/sleep",
"threads": [ # thread numbers not useful, imo ... neither their ordering
{ "frames": [ # we may have other per-thread info (signal?)
{ "build_id": "fedcba", .... }, # frame numbers not important, only the ordering
{ "build_id": "789456", .... } # for suggested frame contents, see the satyr report below
],
"crash_thread": true
}
]
}
}
}
== what satyr currently generates ==
{ "ureport_version": 2
, "report_type": "core"
, "reporter": { "name": "satyr"
, "version": "0.1"
}
, "user_root": false # not sure if os-specific or problem-specific
, "user_local": true # but probably useful
, "os": { "name": "Fedora"
, "version": "17"
, "architecture": "x86_64"
}
, "component": "will-crash" # redundant, can be determined on the server
# based on core stacktrace executable
, "rpm_packages": [ { "name": "glibc"
, "epoch": 0
, "version": "2.15"
, "release": "58.fc17"
, "architecture": "x86_64"
, "install_time": 1349344996
}
, { "name": "will-crash"
, "epoch": 0
, "version": "0.2"
, "release": "1.fc17"
, "architecture": "x86_64"
, "install_time": 1349344996
} ]
, "core_stacktrace": { "signal": 0
, "crash_thread": 0
, "executable": "/usr/bin/will_segfault"
, "threads":
[ { "frames":
[ { "address": 4195358
, "build_id": "b5965f39c22d9d6ae1cc6b64db43c19d959f318e"
, "build_id_offset": 1054
, "file_name": "/usr/bin/will_segfault"
, "fingerprint": "27fec48d69579748149aa1a5456ea2d906ff5744"
}
, { "address": 237190125365
, "build_id": "cc10c72da62c93033e227ffbe2670f2c4fbbde1a"
, "build_id_offset": 137013
, "function_name": "__libc_start_main"
, "file_name": "/usr/lib64/libc-2.15.so"
, "fingerprint": "075acda5d3230e115cf7c88597eaba416bdaa6bb"
} ]
} ]
}
}
Hope some of this makes sense,
Martin
[1] http://bikeshed.com/
11 years, 2 months
[PATCH] tweak spec for openSUSE
by Michal Toman
---
gnome-abrt.spec.in | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/gnome-abrt.spec.in b/gnome-abrt.spec.in
index b28bc93..5dd0a0d 100644
--- a/gnome-abrt.spec.in
+++ b/gnome-abrt.spec.in
@@ -4,6 +4,20 @@
# ! Noarch package ... caused by libreport wrappers shared library
# ! no binaries in $PATH ... caused by gnome-abrt python script in /usr/bin
+%if 0%{?suse_version}
+%define dbus_python dbus-1-python
+%define pygobject3 python-gobject
+%define pygobject3_devel python-gobject-devel
+%define python_devel python-devel
+%define python_inotify python-pyinotify
+%else
+%define dbus_python dbus-python
+%define pygobject3 pygobject3
+%define pygobject3_devel pygobject3-devel
+%define python_devel python2-devel
+%define python_inotify python-inotify
+%endif
+
Name: gnome-abrt
Version: @GNOME_ABRT_VERSION@
Release: 1%{?dist}
@@ -17,17 +31,17 @@ Source0: https://github.com/downloads/jfilak/abrt-gnome-oops/%{name}-%{versio
BuildRequires: intltool
BuildRequires: gettext
BuildRequires: libtool
-BuildRequires: python2-devel
+BuildRequires: %{python_devel}
BuildRequires: desktop-file-utils
BuildRequires: asciidoc
BuildRequires: xmlto
-BuildRequires: pygobject3-devel
+BuildRequires: %{pygobject3_devel}
BuildRequires: libreport-gtk-devel > 2.0.20
BuildRequires: gtk3-devel
-Requires: python-inotify
-Requires: pygobject3
-Requires: dbus-python
+Requires: %{python_inotify}
+Requires: %{pygobject3}
+Requires: %{dbus_python}
Requires: xdg-utils
%description
--
1.8.1.4
11 years, 2 months
[LIBREPORT PATCH] report-gtk: don't clear warnings after reporting is finished
by Jakub Filak
- closes rhbz#919536
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/gui-wizard-gtk/wizard.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 1210051..5f4db93 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -2389,7 +2389,17 @@ static void on_page_prepare(GtkNotebook *assistant, GtkWidget *page, gpointer us
// pages[PAGENO_REVIEW_DATA].page_widget == page
//);
- clear_warnings();
+ /* If processing is finished and if it was terminated because of an error
+ * the event progress page is selected. So, it does not make sense to show
+ * the next step button and we MUST NOT clear warnings.
+ */
+ if (!is_processing_finished())
+ {
+ /* some pages hide it, so restore it to it's default */
+ show_next_step_button();
+ clear_warnings();
+ }
+
gtk_widget_hide(g_btn_onfail);
/* Save text fields if changed */
/* Must be called before any GUI operation because the following two
@@ -2398,8 +2408,6 @@ static void on_page_prepare(GtkNotebook *assistant, GtkWidget *page, gpointer us
save_items_from_notepad();
save_text_from_text_view(g_tv_comment, FILENAME_COMMENT);
- //some pages hide it, so restore it to it's default
- show_next_step_button();
if (pages[PAGENO_SUMMARY].page_widget == page)
{
--
1.8.1.4
11 years, 2 months
[ABRT PATCH] abrt-ccpp: try to read hs_err.log from crash's CWD
by Jakub Filak
- it is expected that this may fail in some particular cases but the
failure is not critical a the hook will pass it
- closes #622
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/hooks/abrt-hook-ccpp.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
index ff476f5..0708d25 100644
--- a/src/hooks/abrt-hook-ccpp.c
+++ b/src/hooks/abrt-hook-ccpp.c
@@ -803,6 +803,18 @@ int main(int argc, char** argv)
char *java_log = xasprintf("/tmp/jvm-%lu/hs_error.log", (long)pid);
int src_fd = open(java_log, O_RDONLY);
free(java_log);
+
+ /* If we couldn't open the error log in /tmp directory we can try to
+ * read the log from the current directory. It may produce AVC, it
+ * may produce some error log but all these are expected.
+ */
+ if (src_fd < 0)
+ {
+ java_log = xasprintf("%s/hs_err_pid%lu.log", user_pwd, (long)pid);
+ src_fd = open(java_log, O_RDONLY);
+ free(java_log);
+ }
+
if (src_fd >= 0)
{
strcpy(path + path_len, "/hs_err.log");
--
1.8.1.4
11 years, 2 months
[LIBREPORT PATCH] add the proxy options to the addvanced section of event configurations
by Jakub Filak
- closes #126
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/plugins/report_Bugzilla.xml.in | 10 ++++++++++
src/plugins/report_EmergencyAnalysis.xml.in | 17 +++++++++++++++++
src/plugins/report_Kerneloops.xml.in | 12 ++++++++++++
src/plugins/report_RHTSupport.xml.in | 12 ++++++++++++
src/plugins/report_Uploader.xml.in | 17 +++++++++++++++++
src/plugins/report_uReport.xml.in | 12 ++++++++++++
6 files changed, 80 insertions(+)
diff --git a/src/plugins/report_Bugzilla.xml.in b/src/plugins/report_Bugzilla.xml.in
index 8151d32..eb361ab 100644
--- a/src/plugins/report_Bugzilla.xml.in
+++ b/src/plugins/report_Bugzilla.xml.in
@@ -40,6 +40,16 @@
<allow-empty>yes</allow-empty>
<_note-html>Specify this only if you modified your /etc/system-release file</_note-html>
</option>
+ <option type="text" name="http_proxy">
+ <_label>HTTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTP</_note-html>
+ </option>
+ <option type="text" name="HTTPS_PROXY">
+ <_label>HTTPS Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTPS</_note-html>
+ </option>
</advanced-options>
</options>
</event>
diff --git a/src/plugins/report_EmergencyAnalysis.xml.in b/src/plugins/report_EmergencyAnalysis.xml.in
index 0f12495..3fb2bd2 100644
--- a/src/plugins/report_EmergencyAnalysis.xml.in
+++ b/src/plugins/report_EmergencyAnalysis.xml.in
@@ -17,5 +17,22 @@
<allow-empty>no</allow-empty>
<default-value>https://retrace.fedoraproject.org/faf/dumpdirs/new/</default-value>
</option>
+ <advanced-options>
+ <option type="text" name="http_proxy">
+ <_label>HTTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTP</_note-html>
+ </option>
+ <option type="text" name="HTTPS_PROXY">
+ <_label>HTTPS Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTPS</_note-html>
+ </option>
+ <option type="text" name="FTP_PROXY">
+ <_label>FTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for FTP</_note-html>
+ </option>
+ </advanced-options>
</options>
</event>
diff --git a/src/plugins/report_Kerneloops.xml.in b/src/plugins/report_Kerneloops.xml.in
index 09acacc..d19b4ff 100644
--- a/src/plugins/report_Kerneloops.xml.in
+++ b/src/plugins/report_Kerneloops.xml.in
@@ -18,5 +18,17 @@
<_description>Oops server url</_description>
<default-value>http://oops.kernel.org/submitoops.php</default-value>
</option>
+ <advanced-options>
+ <option type="text" name="http_proxy">
+ <_label>HTTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTP</_note-html>
+ </option>
+ <option type="text" name="HTTPS_PROXY">
+ <_label>HTTPS Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTPS</_note-html>
+ </option>
+ </advanced-options>
</options>
</event>
diff --git a/src/plugins/report_RHTSupport.xml.in b/src/plugins/report_RHTSupport.xml.in
index aa44d69..e040d8f 100644
--- a/src/plugins/report_RHTSupport.xml.in
+++ b/src/plugins/report_RHTSupport.xml.in
@@ -33,5 +33,17 @@
<_description>Check SSL key validity</_description>
<default-value>yes</default-value>
</option>
+ <advanced-options>
+ <option type="text" name="http_proxy">
+ <_label>HTTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTP</_note-html>
+ </option>
+ <option type="text" name="HTTPS_PROXY">
+ <_label>HTTPS Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTPS</_note-html>
+ </option>
+ </advanced-options>
</options>
</event>
diff --git a/src/plugins/report_Uploader.xml.in b/src/plugins/report_Uploader.xml.in
index cd90e9e..df01e21 100644
--- a/src/plugins/report_Uploader.xml.in
+++ b/src/plugins/report_Uploader.xml.in
@@ -19,5 +19,22 @@
<_note-html>Examples:
ftp://[user[:pass]@]host/dir/[file.tar.gz]
scp://[user[:pass]@]host/dir/[file.tar.gz]
file:///dir/[file.tar.gz]</_note-html>
<default-value></default-value>
</option>
+ <advanced-options>
+ <option type="text" name="http_proxy">
+ <_label>HTTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTP</_note-html>
+ </option>
+ <option type="text" name="HTTPS_PROXY">
+ <_label>HTTPS Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTPS</_note-html>
+ </option>
+ <option type="text" name="FTP_PROXY">
+ <_label>FTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for FTP</_note-html>
+ </option>
+ </advanced-options>
</options>
</event>
diff --git a/src/plugins/report_uReport.xml.in b/src/plugins/report_uReport.xml.in
index 374369a..3a38971 100644
--- a/src/plugins/report_uReport.xml.in
+++ b/src/plugins/report_uReport.xml.in
@@ -18,5 +18,17 @@
<_description>Check SSL key validity</_description>
<default-value>yes</default-value>
</option>
+ <advanced-options>
+ <option type="text" name="http_proxy">
+ <_label>HTTP Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTP</_note-html>
+ </option>
+ <option type="text" name="HTTPS_PROXY">
+ <_label>HTTPS Proxy</_label>
+ <allow-empty>yes</allow-empty>
+ <_note-html>Sets the proxy server to use for HTTPS</_note-html>
+ </option>
+ </advanced-options>
</options>
</event>
--
1.8.1.4
11 years, 2 months