public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Filak <jfilak@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/abrt] update-2.17.8: New upstream release 2.6.0
Date: Mon, 03 Aug 2026 10:23:09 GMT [thread overview]
Message-ID: <178575258936.1.8260480091568163738.rpms-abrt-a8bf279ba20b@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/abrt
Branch : update-2.17.8
Commit : a8bf279ba20b944cbe3f98da82f64c7f996dc5e9
Author : Jakub Filak <jfilak@redhat.com>
Date : 2015-06-10T08:32:19+02:00
Stats : +45/-2347 in 16 file(s)
URL : https://src.fedoraproject.org/rpms/abrt/c/a8bf279ba20b944cbe3f98da82f64c7f996dc5e9?branch=update-2.17.8
Log:
New upstream release 2.6.0
---
diff --git a/.gitignore b/.gitignore
index 11dfa5d..34d6c46 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,3 +41,4 @@ abrt-1.1.13.tar.gz
/abrt-2.4.0.tar.gz
/abrt-2.5.0.tar.gz
/abrt-2.5.1.tar.gz
+/abrt-2.6.0.tar.gz
diff --git a/0004-applet-switch-to-D-Bus-methods.patch b/0004-applet-switch-to-D-Bus-methods.patch
deleted file mode 100644
index ee6d7c5..0000000
--- a/0004-applet-switch-to-D-Bus-methods.patch
+++ /dev/null
@@ -1,427 +0,0 @@
-From a2977b0fe023a896c3006f27ee2b148690dff24a Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Wed, 8 Apr 2015 08:23:03 +0200
-Subject: [PATCH] applet: switch to D-Bus methods
-
-This patch is a part of our efforts to make abrt-applet independent on
-the backend.
-
-This patch converts all data manipulation functions to D-Bus calls, so
-the notifications are made of data obtained through D-Bus.
-
-The reporting still relies on file system access, though.
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- src/applet/applet.c | 181 ++++++++++++++++++++++++++++-----------------
- src/include/libabrt.h | 16 ++++
- src/lib/problem_api_dbus.c | 61 +++++++++++----
- 3 files changed, 174 insertions(+), 84 deletions(-)
-
-diff --git a/src/applet/applet.c b/src/applet/applet.c
-index 7b58f6e..4df69fc 100644
---- a/src/applet/applet.c
-+++ b/src/applet/applet.c
-@@ -120,6 +120,7 @@ typedef struct problem_info {
- bool reported;
- bool was_announced;
- bool is_writable;
-+ int time;
- } problem_info_t;
-
- static void push_to_deferred_queue(problem_info_t *pi)
-@@ -137,6 +138,59 @@ static const char *problem_info_get_command_line(problem_info_t *pi)
- return problem_data_get_content_or_NULL(pi->problem_data, FILENAME_CMDLINE);
- }
-
-+static int problem_info_get_time(problem_info_t *pi)
-+{
-+ if (pi->time == -1)
-+ {
-+ const char *time_str = problem_data_get_content_or_NULL(pi->problem_data, FILENAME_TIME);
-+
-+ if (time_str == NULL)
-+ error_msg_and_die("BUG: Problem info has data without the element time");
-+
-+ pi->time = atoi(time_str);
-+ }
-+
-+ return pi->time;
-+}
-+
-+static const char **problem_info_get_env(problem_info_t *pi)
-+{
-+ if (pi->envp == NULL)
-+ {
-+ const char *env_str = problem_data_get_content_or_NULL(pi->problem_data, FILENAME_ENVIRON);
-+ pi->envp = (env_str != NULL) ? g_strsplit (env_str, "\n", -1) : NULL;
-+ }
-+
-+ return (const char **)pi->envp;
-+}
-+
-+static int problem_info_get_pid(problem_info_t *pi)
-+{
-+ if (pi->pid == -1)
-+ {
-+ const char *pid_str = problem_data_get_content_or_NULL(pi->problem_data, FILENAME_PID);
-+ pi->pid = (pid_str != NULL) ? atoi (pid_str) : -1;
-+ }
-+
-+ return pi->pid;
-+}
-+
-+static int problem_info_get_count(problem_info_t *pi)
-+{
-+ if (pi->count == -1)
-+ {
-+ const char *count_str = problem_data_get_content_or_NULL(pi->problem_data, FILENAME_COUNT);
-+ pi->count = count_str ? atoi(count_str) : 1;
-+ }
-+
-+ return pi->count;
-+}
-+
-+static bool problem_info_is_reported(problem_info_t *pi)
-+{
-+ return problem_data_get_content_or_NULL(pi->problem_data, FILENAME_REPORTED_TO) != NULL;
-+}
-+
- static void problem_info_set_dir(problem_info_t *pi, const char *dir)
- {
- problem_data_add_text_noteditable(pi->problem_data, CD_DUMPDIR, dir);
-@@ -176,6 +230,9 @@ static problem_info_t *problem_info_new(const char *dir)
- {
- problem_info_t *pi = g_new0(problem_info_t, 1);
- pi->refcount = 1;
-+ pi->time = -1;
-+ pi->pid = -1;
-+ pi->count = -1;
- pi->problem_data = problem_data_new();
- problem_info_set_dir(pi, dir);
- return pi;
-@@ -194,8 +251,6 @@ static void problem_info_unref(gpointer data)
- return;
-
- problem_data_free(pi->problem_data);
-- if (pi->envp)
-- g_strfreev(pi->envp);
- g_free(pi);
- }
-
-@@ -556,7 +611,7 @@ static void notify_problem_list(GList *problems)
- continue;
- }
-
-- app = problem_create_app_from_env ((const char **)pi->envp, pi->pid);
-+ app = problem_create_app_from_env (problem_info_get_env(pi), problem_info_get_pid(pi));
-
- if (!app)
- app = problem_create_app_from_cmdline (problem_info_get_command_line(pi));
-@@ -572,7 +627,7 @@ static void notify_problem_list(GList *problems)
- gboolean is_packaged = pi->is_packaged;
- gboolean is_running_again = is_app_running(app);
- gboolean is_current_user = !pi->foreign;
-- gboolean already_reported = (pi->count > 1);
-+ gboolean already_reported = problem_info_get_count(pi) > 1;
-
- gboolean report_button = FALSE;
- gboolean restart_button = FALSE;
-@@ -914,14 +969,22 @@ static void Crash(GVariant *parameters)
- if (foreign_problem && !g_user_is_admin)
- return;
-
-- struct dump_dir *dd = dd_opendir(dir, DD_OPEN_READONLY);
-- char *command_line = dd_load_text_ext(dd, FILENAME_CMDLINE, DD_FAIL_QUIETLY_ENOENT | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
-- char *count_str = dd_load_text_ext(dd, FILENAME_COUNT, DD_FAIL_QUIETLY_ENOENT | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
-- guint count = count_str ? atoi(count_str) : 1;
-- g_free(count_str);
-- char *env = dd_load_text_ext(dd, FILENAME_ENVIRON, DD_FAIL_QUIETLY_ENOENT | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
-- char *pid = dd_load_text_ext(dd, FILENAME_PID, DD_FAIL_QUIETLY_ENOENT | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
-- dd_close(dd);
-+ static const char *elements[] = {
-+ FILENAME_CMDLINE,
-+ FILENAME_COUNT,
-+ FILENAME_UUID,
-+ FILENAME_DUPHASH,
-+ FILENAME_COMPONENT,
-+ FILENAME_ENVIRON,
-+ FILENAME_PID,
-+ NULL,
-+ };
-+
-+ problem_info_t *pi = problem_info_new(dir);
-+ fill_problem_data_over_dbus(dir, elements, pi->problem_data);
-+
-+ pi->foreign = foreign_problem;
-+ pi->is_packaged = (package_name != NULL);
-
- /*
- * Can't append dir to the seen list because of directory stealing
-@@ -929,24 +992,6 @@ static void Crash(GVariant *parameters)
- * append_dirlist(dir);
- *
- */
--
-- problem_info_t *pi = problem_info_new(dir);
-- if (uuid != NULL && uuid[0] != '\0')
-- problem_data_add_text_noteditable(pi->problem_data, FILENAME_UUID, uuid);
-- if (duphash != NULL && duphash[0] != '\0')
-- problem_data_add_text_noteditable(pi->problem_data, FILENAME_DUPHASH, duphash);
-- if (package_name != NULL && package_name[0] != '\0')
-- problem_data_add_text_noteditable(pi->problem_data, FILENAME_COMPONENT, package_name);
-- if (command_line != NULL)
-- problem_data_add_text_noteditable(pi->problem_data, FILENAME_CMDLINE, command_line);
-- pi->foreign = foreign_problem;
-- pi->count = count;
-- pi->is_packaged = (package_name != NULL);
-- pi->envp = (env != NULL) ? g_strsplit (env, "\n", -1) : NULL;
-- pi->pid = (pid != NULL) ? atoi (pid) : -1;
-- free(command_line);
-- free(env);
-- free(pid);
- show_problem_notification(pi);
- }
-
-@@ -970,6 +1015,19 @@ name_acquired_handler (GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
- {
-+ static const char *elements[] = {
-+ FILENAME_CMDLINE,
-+ FILENAME_COUNT,
-+ FILENAME_UUID,
-+ FILENAME_DUPHASH,
-+ FILENAME_COMPONENT,
-+ FILENAME_UID,
-+ FILENAME_TIME,
-+ FILENAME_REPORTED_TO,
-+ FILENAME_NOT_REPORTABLE,
-+ NULL
-+ };
-+
- /* If some new dirs appeared since our last run, let user know it */
- GList *new_dirs = NULL;
- GList *notify_list = NULL;
-@@ -980,58 +1038,45 @@ name_acquired_handler (GDBusConnection *connection,
- /* Age limit = now - 3 days */
- const unsigned long min_born_time = (unsigned long)(time_before_ndays(3));
-
-- while (new_dirs)
-+ for ( ; new_dirs != NULL; new_dirs = g_list_next(new_dirs))
- {
-- struct dump_dir *dd = dd_opendir((char *)new_dirs->data, DD_OPEN_READONLY);
-- if (dd == NULL)
-+ const char *problem_id = (const char *)new_dirs->data;
-+ problem_info_t *pi = problem_info_new(problem_id);
-+
-+ if (fill_problem_data_over_dbus(problem_id, elements, pi->problem_data) != 0)
- {
-- log_notice("'%s' is not a dump dir - ignoring\n", (char *)new_dirs->data);
-- new_dirs = g_list_next(new_dirs);
-+ log_notice("'%s' is not a dump dir - ignoring\n", problem_id);
-+ problem_info_unref(pi);
- continue;
- }
-
-- if (dd->dd_time < min_born_time)
-+ /* TODO: add a filter for only complete problems to GetProblems D-Bus method */
-+ if (!dbus_problem_is_complete(problem_id))
- {
-- log_notice("Ignoring outdated problem '%s'", (char *)new_dirs->data);
-- goto next;
-+ log_notice("Ignoring incomplete problem '%s'", problem_id);
-+ problem_info_unref(pi);
-+ continue;
- }
-
-- if (!problem_dump_dir_is_complete(dd))
-+ /* TODO: add a filter for max-old reported problems to GetProblems D-Bus method */
-+ if (problem_info_get_time(pi) < min_born_time)
- {
-- log_notice("Ignoring incomplete problem '%s'", (char *)new_dirs->data);
-- goto next;
-+ log_notice("Ignoring outdated problem '%s'", problem_id);
-+ problem_info_unref(pi);
-+ continue;
- }
-
-- if (!dd_exist(dd, FILENAME_REPORTED_TO))
-+ /* TODO: add a filter for not-yet reported problems to GetProblems D-Bus method */
-+ if (problem_info_is_reported(pi))
- {
-- problem_info_t *pi = problem_info_new(new_dirs->data);
-- const char *elements[] = {FILENAME_UUID, FILENAME_DUPHASH, FILENAME_COMPONENT, FILENAME_NOT_REPORTABLE, FILENAME_CMDLINE};
--
-- for (size_t i = 0; i < sizeof(elements)/sizeof(*elements); ++i)
-- {
-- char * const value = dd_load_text_ext(dd, elements[i],
-- DD_FAIL_QUIETLY_ENOENT | DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
-- if (value)
-- problem_data_add_text_noteditable(pi->problem_data, elements[i], value);
-- free(value);
-- }
--
-- /* Can't be foreign because if the problem is foreign then the
-- * dd_opendir() call failed few lines above and the problem is ignored.
-- * */
-- pi->foreign = false;
--
-- notify_list = g_list_prepend(notify_list, pi);
-- }
-- else
-- {
-- log_notice("Ignoring already reported problem '%s'", (char *)new_dirs->data);
-+ log_notice("Ignoring already reported problem '%s'", problem_id);
-+ problem_info_unref(pi);
-+ continue;
- }
-
--next:
-- dd_close(dd);
--
-- new_dirs = g_list_next(new_dirs);
-+ /* Can't be foreig because new_dir_exists() returns only own problems */
-+ pi->foreign = false;
-+ notify_list = g_list_prepend(notify_list, pi);
- }
-
- if (notify_list)
-diff --git a/src/include/libabrt.h b/src/include/libabrt.h
-index 19ad4a8..07dc172 100644
---- a/src/include/libabrt.h
-+++ b/src/include/libabrt.h
-@@ -164,6 +164,15 @@ int chown_dir_over_dbus(const char *problem_dir_path);
- int test_exist_over_dbus(const char *problem_id, const char *element_name);
-
- /**
-+ @brief Checks whether the problem corresponding to the given ID is complete
-+
-+ Might require authorization
-+
-+ @return Positive number if such the proble is complete, 0 if doesn't and negative number if an error occurs.
-+ */
-+int dbus_problem_is_complete(const char *problem_id);
-+
-+/**
- @ Returns value of the given element name
-
- Might require authorization
-@@ -182,6 +191,13 @@ char *load_text_over_dbus(const char *problem_id, const char *element_name);
- int delete_problem_dirs_over_dbus(const GList *problem_dir_paths);
-
- /**
-+ @brief Fetches given problem elements for specified problem id
-+
-+ @return on failures returns non zero value and emits error message
-+*/
-+int fill_problem_data_over_dbus(const char *problem_dir_path, const char **elements, problem_data_t *problem_data);
-+
-+/**
- @brief Fetches problem information for specified problem id
-
- @return problem_data_t or NULL on failure
-diff --git a/src/lib/problem_api_dbus.c b/src/lib/problem_api_dbus.c
-index 5148932..ce5c47b 100644
---- a/src/lib/problem_api_dbus.c
-+++ b/src/lib/problem_api_dbus.c
-@@ -101,23 +101,21 @@ int delete_problem_dirs_over_dbus(const GList *problem_dir_paths)
- return 0;
- }
-
--problem_data_t *get_problem_data_dbus(const char *problem_dir_path)
-+int fill_problem_data_over_dbus(const char *problem_id, const char **elements, problem_data_t *problem_data)
- {
- INITIALIZE_LIBABRT();
-
- GDBusProxy *proxy = get_dbus_proxy();
- if (!proxy)
-- return NULL;
-+ return -1;
-
-- GVariantBuilder *builder = g_variant_builder_new(G_VARIANT_TYPE("as"));
-- g_variant_builder_add(builder, "s", FILENAME_TIME );
-- g_variant_builder_add(builder, "s", FILENAME_REASON );
-- g_variant_builder_add(builder, "s", FILENAME_NOT_REPORTABLE);
-- g_variant_builder_add(builder, "s", FILENAME_COMPONENT );
-- g_variant_builder_add(builder, "s", FILENAME_EXECUTABLE );
-- g_variant_builder_add(builder, "s", FILENAME_REPORTED_TO );
-- GVariant *params = g_variant_new("(sas)", problem_dir_path, builder);
-- g_variant_builder_unref(builder);
-+ GVariantBuilder *args_builder = g_variant_builder_new(G_VARIANT_TYPE("as"));
-+
-+ for (const char **iter = elements; *iter; ++iter)
-+ g_variant_builder_add(args_builder, "s", *iter);
-+
-+ GVariant *params = g_variant_new("(sas)", problem_id, args_builder);
-+ g_variant_builder_unref(args_builder);
-
- GError *error = NULL;
- GVariant *result = g_dbus_proxy_call_sync(proxy,
-@@ -130,20 +128,46 @@ problem_data_t *get_problem_data_dbus(const char *problem_dir_path)
-
- if (error)
- {
-- error_msg(_("Can't get problem data from abrt-dbus: %s"), error->message);
-+ error_msg(_("D-Bus GetInfo method call failed: %s"), error->message);
- g_error_free(error);
-- return NULL;
-+ return -2;
- }
-
-- problem_data_t *pd = problem_data_new();
-+
- char *key, *val;
- GVariantIter *iter;
- g_variant_get(result, "(a{ss})", &iter);
- while (g_variant_iter_loop(iter, "{ss}", &key, &val))
-+ problem_data_add_text_noteditable(problem_data, key, val);
-+
-+ g_variant_unref(result);
-+
-+ return 0;
-+}
-+
-+problem_data_t *get_problem_data_dbus(const char *problem_dir_path)
-+{
-+ INITIALIZE_LIBABRT();
-+
-+ static const char *elements[] = {
-+ FILENAME_TIME,
-+ FILENAME_REASON,
-+ FILENAME_NOT_REPORTABLE,
-+ FILENAME_COMPONENT,
-+ FILENAME_EXECUTABLE,
-+ FILENAME_REPORTED_TO,
-+ NULL,
-+ };
-+
-+ problem_data_t *pd = problem_data_new();
-+
-+ if (fill_problem_data_over_dbus(problem_dir_path, elements, pd) != 0)
- {
-- problem_data_add_text_noteditable(pd, key, val);
-+ error_msg(_("Can't get problem data from abrt-dbus"));
-+ problem_data_free(pd);
-+ return NULL;
- }
-- g_variant_unref(result);
-+
- return pd;
- }
-
-@@ -259,6 +283,11 @@ int test_exist_over_dbus(const char *problem_id, const char *element_name)
- return retval;
- }
-
-+int dbus_problem_is_complete(const char *problem_id)
-+{
-+ return test_exist_over_dbus(problem_id, FILENAME_COUNT);
-+}
-+
- char *load_text_over_dbus(const char *problem_id, const char *element_name)
- {
- INITIALIZE_LIBABRT();
---
-2.4.1
-
diff --git a/0005-lib-add-new-kernel-taint-flags.patch b/0005-lib-add-new-kernel-taint-flags.patch
deleted file mode 100644
index 555c5a5..0000000
--- a/0005-lib-add-new-kernel-taint-flags.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From e52d14214bd356f31856a5ab63ef14a60d318364 Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Tue, 5 May 2015 10:46:06 +0200
-Subject: [PATCH] lib: add new kernel taint flags
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- src/lib/kernel.c | 16 +++++++++++-----
- 1 file changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/src/lib/kernel.c b/src/lib/kernel.c
-index af43ae0..dde3d28 100644
---- a/src/lib/kernel.c
-+++ b/src/lib/kernel.c
-@@ -632,8 +632,14 @@ char *koops_extract_version(const char *linepointer)
- * 'W' - Taint on warning.
- * 'C' - modules from drivers/staging are loaded.
- * 'I' - Working around severe firmware bug.
-+ * 'O' - Out-of-tree module has been loaded.
-+ * 'E' - Unsigned module has been loaded.
-+ * 'L' - A soft lockup has previously occurred.
-+ * 'K' - Kernel has been live patched.
-+ *
-+ * Compatibility flags from older versions and downstream sources:
- * 'H' - Hardware is unsupported.
-- * T - Tech_preview
-+ * 'T' - Tech_preview
- */
-
- #if 0 /* unused */
-@@ -658,7 +664,7 @@ char *kernel_tainted_short(const char *kernel_bt)
- return NULL;
-
- tainted += strlen("Tainted: ");
-- /* 13 == current count of known flags */
-+ /* 17 + 2 == current count of known flags */
- /* http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=kernel/panic.c;hb=HEAD */
- /* 26 the maximal sane count of flags because of alphabet limits */
- unsigned sz = 26 + 1;
-@@ -701,14 +707,14 @@ static const char *const tnts_long[] = {
- /* B */ "System has hit bad_page.",
- /* C */ "Modules from drivers/staging are loaded.",
- /* D */ "Kernel has oopsed before",
-- /* E */ NULL,
-+ /* E */ "Unsigned module has been loaded."
- /* F */ "Module has been forcibly loaded.",
- /* G */ "Proprietary module has not been loaded.",
- /* H */ NULL,
- /* I */ "Working around severe firmware bug.",
- /* J */ NULL,
-- /* K */ NULL,
-- /* L */ NULL,
-+ /* K */ "Kernel has been live patched.",
-+ /* L */ "A soft lockup has previously occurred.",
- /* M */ "System experienced a machine check exception.",
- /* N */ NULL,
- /* O */ "Out-of-tree module has been loaded.",
---
-2.4.1
-
diff --git a/0006-upload-validate-and-sanitize-uploaded-dump-directori.patch b/0006-upload-validate-and-sanitize-uploaded-dump-directori.patch
deleted file mode 100644
index 6823b33..0000000
--- a/0006-upload-validate-and-sanitize-uploaded-dump-directori.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 3746b7627218438ae7d781fc8b18a221454e9091 Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Mon, 20 Apr 2015 15:15:40 +0200
-Subject: [PATCH] upload: validate and sanitize uploaded dump directories
-
-It was discovered that, when moving problem reports from
-/var/spool/abrt-upload to /var/spool/abrt or /var/tmp/abrt,
-abrt-handle-upload does not verify that the new problem directory
-has appropriate permissions and does not contain symbolic links. A
-crafted problem report exposes other parts of abrt to attack, and
-the abrt-handle-upload script allows to overwrite arbitrary files.
-
-Acknowledgement:
-
-This issue was discovered by Florian Weimer of Red Hat Product Security.
-
-Related: #1212953
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- src/daemon/abrt-handle-upload.in | 78 +++++++++++++++++++++++++++++++++++-----
- 1 file changed, 70 insertions(+), 8 deletions(-)
-
-diff --git a/src/daemon/abrt-handle-upload.in b/src/daemon/abrt-handle-upload.in
-index 45ba72d..e812ef0 100755
---- a/src/daemon/abrt-handle-upload.in
-+++ b/src/daemon/abrt-handle-upload.in
-@@ -10,6 +10,7 @@ import getopt
- import tempfile
- import shutil
- import datetime
-+import grp
-
- from reportclient import set_verbosity, error_msg_and_die, error_msg, log
-
-@@ -36,12 +37,77 @@ def init_gettext():
-
- import problem
-
--def write_str_to(filename, s):
-- fd = os.open(filename, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, @DEFAULT_DUMP_DIR_MODE@ | stat.S_IROTH)
-+def write_str_to(filename, s, uid, gid, mode):
-+ fd = os.open(filename, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, mode)
- if fd >= 0:
-+ os.fchown(fd, uid, gid)
- os.write(fd, s)
- os.close(fd)
-
-+
-+def validate_transform_move_and_notify(uploaded_dir_path, problem_dir_path, dest=None):
-+ fsuid = 0
-+ fsgid = 0
-+
-+ try:
-+ gabrt = grp.getgrnam("abrt")
-+ fsgid = gabrt.gr_gid
-+ except KeyError as ex:
-+ error_msg("Failed to get GID of 'abrt' (using 0 instead): {0}'".format(str(ex)))
-+
-+ try:
-+ # give the uploaded directory to 'root:abrt' or 'root:root'
-+ os.chown(uploaded_dir_path, fsuid, fsgid)
-+ # set the right permissions for this machine
-+ # (allow the owner and the group to access problem elements,
-+ # the default dump dir mode lacks x bit for both)
-+ os.chmod(uploaded_dir_path, @DEFAULT_DUMP_DIR_MODE@ | stat.S_IXUSR | stat.S_IXGRP)
-+
-+ # sanitize problem elements
-+ for item in os.listdir(uploaded_dir_path):
-+ apath = os.path.join(uploaded_dir_path, item)
-+ if os.path.islink(apath):
-+ # remove symbolic links
-+ os.remove(apath)
-+ elif os.path.isdir(apath):
-+ # remove directories
-+ shutil.rmtree(apath)
-+ elif os.path.isfile(apath):
-+ # set file ownership to 'root:abrt' or 'root:root'
-+ os.chown(apath, fsuid, fsgid)
-+ # set the right file permissions for this machine
-+ os.chmod(apath, @DEFAULT_DUMP_DIR_MODE@)
-+ else:
-+ # remove things that are neither files, symlinks nor directories
-+ os.remove(apath)
-+ except OSError as ex:
-+ error_msg("Removing uploaded dir '{0}': '{1}'".format(uploaded_dir_path, str(ex)))
-+ try:
-+ shutil.rmtree(uploaded_dir_path)
-+ except OSError as ex2:
-+ error_msg_and_die("Failed to clean up dir '{0}': '{1}'".format(uploaded_dir_path, str(ex2)))
-+ return
-+
-+ # overwrite remote if it exists
-+ remote_path = os.path.join(uploaded_dir_path, "remote")
-+ write_str_to(remote_path, "1", fsuid, fsgid, @DEFAULT_DUMP_DIR_MODE@)
-+
-+ # abrtd would increment count value and abrt-server refuses to process
-+ # problem directories containing 'count' element when PrivateReports is on.
-+ count_path = os.path.join(uploaded_dir_path, "count")
-+ if os.path.exists(count_path):
-+ # overwrite remote_count if it exists
-+ remote_count_path = os.path.join(uploaded_dir_path, "remote_count")
-+ os.rename(count_path, remote_count_path)
-+
-+ if not dest:
-+ dest = problem_dir_path
-+
-+ shutil.move(uploaded_dir_path, dest)
-+
-+ problem.notify_new_path(problem_dir_path)
-+
-+
- if __name__ == "__main__":
-
- # Helper: exit with cleanup
-@@ -177,21 +243,17 @@ if __name__ == "__main__":
- # or one or more complete problem data directories.
- # Checking second possibility first.
- if (os.path.exists(tempdir+"/analyzer") or os.path.exists(tempdir+"/type")) and os.path.exists(tempdir+"/time"):
-- write_str_to(tempdir+"/remote", "1")
-- shutil.move(tempdir, abrt_dir)
-- problem.notify_new_path(abrt_dir+"/"+os.path.basename(tempdir))
-+ validate_transform_move_and_notify(tempdir, abrt_dir+"/"+os.path.basename(tempdir), dest=abrt_dir)
- else:
- for d in os.listdir(tempdir):
- if not os.path.isdir(tempdir+"/"+d):
- continue
-- write_str_to(tempdir+"/"+d+"/remote", "1")
- dst = abrt_dir+"/"+d
- if os.path.exists(dst):
- dst += "."+str(os.getpid())
- if os.path.exists(dst):
- continue
-- shutil.move(tempdir+"/"+d, dst)
-- problem.notify_new_path(dst)
-+ validate_transform_move_and_notify(tempdir+"/"+d, dst)
-
- die_exitcode = 0
- # This deletes working_dir (== delete_on_exit)
---
-2.4.1
-
diff --git a/0008-a-a-s-p-d-add-new-known-interpreter-to-conf-file.patch b/0008-a-a-s-p-d-add-new-known-interpreter-to-conf-file.patch
deleted file mode 100644
index 7a254b7..0000000
--- a/0008-a-a-s-p-d-add-new-known-interpreter-to-conf-file.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 7d5be427e208e565ee16a7f34be64acb781fb2f9 Mon Sep 17 00:00:00 2001
-From: Matej Habrnal <mhabrnal@redhat.com>
-Date: Mon, 18 May 2015 08:45:48 +0200
-Subject: [PATCH] a-a-s-p-d: add new known interpreter to conf file
-
-There were new bugzillas opened with wrong component 'python3' because of a new
-version of python (3.4). We don't want to blame the interpreters but the
-running scripts.
-
-close #965
-
-Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
----
- src/daemon/abrt-action-save-package-data.conf | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
-index 33cef8f..27b9607 100644
---- a/src/daemon/abrt-action-save-package-data.conf
-+++ b/src/daemon/abrt-action-save-package-data.conf
-@@ -18,4 +18,4 @@ ProcessUnpackaged = yes
- BlackListedPaths = /usr/share/doc/*, */example*, /usr/bin/nspluginviewer
-
- # interpreters names
--Interpreters = python2, python2.7, python, python3, python3.3, perl, perl5.16.2
-+Interpreters = python2, python2.7, python, python3, python3.3, python3.4, python3.5, perl, perl5.16.2
---
-2.4.1
-
diff --git a/0010-applet-fix-problem-info-double-free.patch b/0010-applet-fix-problem-info-double-free.patch
deleted file mode 100644
index 256ba04..0000000
--- a/0010-applet-fix-problem-info-double-free.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 65c24bb248b9b7b2e33e8b0ba9e3e06ffde4b291 Mon Sep 17 00:00:00 2001
-From: Matej Habrnal <mhabrnal@redhat.com>
-Date: Mon, 18 May 2015 15:46:59 +0200
-Subject: [PATCH] applet: fix problem info double free
-
-There was a double free when an action function was called.
-Problem info is freed when the notification is destroyed because the free
-function is registred when the action is added
-(notify_notification_add_action()). So the problem_info_unref() function in the
-action function is moreover and causes the double free problem.
-
-Related to rhbz#1211644
-
-Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
----
- src/applet/applet.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/applet/applet.c b/src/applet/applet.c
-index 4df69fc..c00f7e3 100644
---- a/src/applet/applet.c
-+++ b/src/applet/applet.c
-@@ -501,7 +501,6 @@ static void action_report(NotifyNotification *notification, gchar *action, gpoin
- problem_info_t *pi = (problem_info_t *)user_data;
- if (problem_info_get_dir(pi))
- fork_exec_gui(problem_info_get_dir(pi));
-- problem_info_unref(pi);
- }
-
- static void action_restart(NotifyNotification *notification, gchar *action, gpointer user_data)
-@@ -528,7 +527,6 @@ static void action_restart(NotifyNotification *notification, gchar *action, gpoi
- err->message);
- }
- g_object_unref (app);
-- problem_info_unref(pi);
- }
-
- static void on_notify_close(NotifyNotification *notification, gpointer user_data)
---
-2.4.1
-
diff --git a/0011-cli-do-not-exit-with-segfault-if-dbus-fails.patch b/0011-cli-do-not-exit-with-segfault-if-dbus-fails.patch
deleted file mode 100644
index c17e33e..0000000
--- a/0011-cli-do-not-exit-with-segfault-if-dbus-fails.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 82957a3390188509921ec16bddc27f2aeeb01b8d Mon Sep 17 00:00:00 2001
-From: Matej Habrnal <mhabrnal@redhat.com>
-Date: Mon, 4 May 2015 10:35:25 +0200
-Subject: [PATCH] cli: do not exit with segfault if dbus fails
-
-There was a segfault when we ran 'abrt-cli list' and dbus failed.
-
-Related to rhbz#1217901
-
-Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
----
- src/cli/list.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/cli/list.c b/src/cli/list.c
-index c0c819d..31d1835 100644
---- a/src/cli/list.c
-+++ b/src/cli/list.c
-@@ -142,6 +142,8 @@ int cmd_list(int argc, const char **argv)
- parse_opts(argc, (char **)argv, program_options, program_usage_string);
-
- vector_of_problem_data_t *ci = fetch_crash_infos();
-+ if (ci == NULL)
-+ return 1;
-
- g_ptr_array_sort_with_data(ci, &cmp_problem_data, (char *) FILENAME_LAST_OCCURRENCE);
-
---
-2.4.1
-
diff --git a/0013-abrt-auto-reporting-require-rhtsupport.conf-file-onl.patch b/0013-abrt-auto-reporting-require-rhtsupport.conf-file-onl.patch
deleted file mode 100644
index 5fec7d9..0000000
--- a/0013-abrt-auto-reporting-require-rhtsupport.conf-file-onl.patch
+++ /dev/null
@@ -1,589 +0,0 @@
-From 0b8955a845f7a28a090bfe07d33a0acf161526e2 Mon Sep 17 00:00:00 2001
-From: Matej Habrnal <mhabrnal@redhat.com>
-Date: Fri, 24 Apr 2015 15:37:15 +0200
-Subject: [PATCH] abrt-auto-reporting: require rhtsupport.conf file only on
- RHEL
-
-abrt-auto-reporting required the rhtsupport.conf on Fedora and CentOS but the conf
-file do not exists in those systems.
-
-Resolves abrt/abrt#957
-
-Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
----
- configure.ac | 11 +++
- doc/Makefile.am | 13 +++-
- doc/abrt-auto-reporting-authenticated.txt | 106 ++++++++++++++++++++++++++++
- doc/abrt-auto-reporting-unauthenticated.txt | 71 +++++++++++++++++++
- doc/abrt-auto-reporting.txt | 106 ----------------------------
- src/daemon/abrt-auto-reporting.c | 71 ++++++++++++++-----
- 6 files changed, 254 insertions(+), 124 deletions(-)
- create mode 100644 doc/abrt-auto-reporting-authenticated.txt
- create mode 100644 doc/abrt-auto-reporting-unauthenticated.txt
- delete mode 100644 doc/abrt-auto-reporting.txt
-
-diff --git a/configure.ac b/configure.ac
-index acd0d32..6962d2c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -296,6 +296,17 @@ AC_ARG_ENABLE(suggest-autoreporting,
-
- AM_CONDITIONAL(SUGGEST_AUTOREPORTING, test "$enable_suggest_autoreporting" = "yes")
-
-+# Authenticated autoreporting
-+
-+AC_ARG_ENABLE(authenticated-autoreporting,
-+ AS_HELP_STRING([--enable-authenticated-autoreporting],
-+ [enable authenticated autoreporting]),
-+ [enable_authenticated_autoreporting=$enableval],
-+ [enable_authenticated_autoreporting=no]
-+)
-+
-+AM_CONDITIONAL(AUTHENTICATED_AUTOREPORTING, test "$enable_authenticated_autoreporting" = "yes")
-+
- # Make satyr use GDB or elfutils/libunwind for unwinding?
-
- AC_ARG_ENABLE([native-unwinder],
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index 6efd6d6..3e7499c 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -78,6 +78,17 @@ man1_MANS = ${MAN1_TXT:%.txt=%.1}
- man5_MANS = ${MAN5_TXT:%.txt=%.5} ${MAN5_PREFORMATTED}
- man8_MANS = ${MAN8_TXT:%.txt=%.8}
-
-+MAN_SOURCE =
-+MAN_SOURCE = abrt-auto-reporting-authenticated.txt
-+MAN_SOURCE = abrt-auto-reporting-unauthenticated.txt
-+
-+if AUTHENTICATED_AUTOREPORTING
-+abrt-auto-reporting.txt: abrt-auto-reporting-authenticated.txt
-+else
-+abrt-auto-reporting.txt: abrt-auto-reporting-unauthenticated.txt
-+endif
-+ cp $< $@
-+
- %.1 %.5 %.8: %.xml
- $(XMLTO_SILENT) xmlto man $< 2>&1 | sed '/Note/d'
-
-@@ -86,6 +97,6 @@ man8_MANS = ${MAN8_TXT:%.txt=%.8}
- --conf-file ../asciidoc.conf \
- -aabrt_version=$(PACKAGE_VERSION) -o $@ $<
-
--EXTRA_DIST = $(MAN1_TXT) $(MAN5_TXT) $(MAN8_TXT) $(MAN5_PREFORMATTED)
-+EXTRA_DIST = $(MAN1_TXT) $(MAN5_TXT) $(MAN8_TXT) $(MAN5_PREFORMATTED) $(MAN_SOURCE)
-
- CLEANFILES = ${MAN1_TXT:%.txt=%.1} ${MAN5_TXT:%.txt=%.5} ${MAN8_TXT:%.txt=%.8}
-diff --git a/doc/abrt-auto-reporting-authenticated.txt b/doc/abrt-auto-reporting-authenticated.txt
-new file mode 100644
-index 0000000..2a27945
---- /dev/null
-+++ b/doc/abrt-auto-reporting-authenticated.txt
-@@ -0,0 +1,106 @@
-+abrt-auto-reporting(1)
-+======================
-+
-+NAME
-+----
-+abrt-auto-reporting - Get or modify the auto reporting option values
-+
-+SYNOPSIS
-+--------
-+'abrt-auto-reporting' [-v] [ enabled | yes | 1 | on | disabled | no | 0 | off ]
-+ [ [--anonymous] |
-+ [--username USERNAME [--password PASSWORD] ] |
-+ [--certificate SOURCE] ]
-+
-+DESCRIPTION
-+-----------
-+Reads the configuration from abrt.conf and saves the changes to the same file.
-+
-+The changes will take effect immediately without necessity to restart any ABRT
-+process and will be persistent.
-+
-+'disabled'::
-+ User have to report the detect problems manually
-+
-+'enabled'::
-+ ABRT uploads an uReport which was generated for a detected problem
-+ immediately after the detection phase.
-+
-+Reads and saves the authentication configuration options in
-+/etc/libreport/plugins/ureport.conf and /etc/libreport/plugins/rhtsupport.conf
-+
-+uReport description
-+~~~~~~~~~~~~~~~~~~~
-+ABRT supports uReports for four types of crashes: crashes of C/C++ programs
-+that result in a core dump, uncaught Python exceptions, uncaught Java
-+exceptions and kernel oopses.
-+
-+Each uReport generally contains a stack trace, or multiple stack traces in the
-+case of multi-threaded C/C++ and Java programs. The stack trace only describes
-+the call stack of the program at the time of the crash and does not contain
-+contents of any variables.
-+
-+Every uReport also contains identification of the operating system, versions of
-+the RPM packages involved in the crash, and whether the program ran under a
-+root user.
-+
-+There are also items specific to each crash type:
-+
-+C/C++ crashes::
-+ these are path to the executable and signal delivered to the program,
-+
-+Python exceptions::
-+ there is the type of the exception (without the error message, which may
-+ contain sensitive data),
-+
-+for kernel oopses::
-+ these are list of loaded kernel modules, list of taint flags, and full text
-+ of the kernel oops.
-+
-+The authenticated uReports also contains *hostname* and *machineid* to enable a
-+server side filtering at https://access.redhat.com/.
-+
-+The authenticated uReports have the benefit of rich server replies which may
-+include a solution for the submitted crash. The authentication is done using
-+either Red Hat Subscription Certificates or Red Hat Customer Portal
-+credentials.
-+
-+'Warning':
-+The full text of a kernel oops might contain information like the
-+identification of the host hardware type. You should disable the autoreporting
-+feature if you do not want to share this information with Red Hat.
-+
-+
-+OPTIONS
-+-------
-+-v, --verbose::
-+ Be more verbose. Can be given multiple times.
-+
-+-a, --anonymous::
-+ Turns the authentication off by clearing both 'SSLClientAuth' and 'HTTPAuth'
-+ configuration options in /etc/libreport/plugins/ureport.conf
-+
-+-u, --username USERNAME::
-+ Turns HTTP Authentication on by setting 'HTTPAuth' configuration option to
-+ *rhts-credentials* in /etc/libreport/plugins/ureport.conf and storing
-+ USERNAME and PASSWORD in /etc/libreport/plugins/rhtsupport.conf
-+ Also turns the SSL Client Authentication off, because these methods cannot
-+ be used together.
-+
-+-p, --password PASSWORD::
-+ Password for HTTP Authentication. If not provided, a prompt asking for it
-+ will be issued.
-+
-+-c, --certificate SOURCE::
-+ Turns SSL Client Authentication on by setting 'SSLClientAuth' configuration
-+ option to SOURCE in /etc/libreport/plugins/ureport.conf.
-+ Also turns the HTTP Authentication off, because these methods cannot
-+ be used together.
-+
-+SEE ALSO
-+--------
-+abrt.conf(5), ureport.conf(5), rhtsupport.conf(5)
-+
-+AUTHORS
-+-------
-+* ABRT team
-diff --git a/doc/abrt-auto-reporting-unauthenticated.txt b/doc/abrt-auto-reporting-unauthenticated.txt
-new file mode 100644
-index 0000000..320c803
---- /dev/null
-+++ b/doc/abrt-auto-reporting-unauthenticated.txt
-@@ -0,0 +1,71 @@
-+abrt-auto-reporting(1)
-+======================
-+
-+NAME
-+----
-+abrt-auto-reporting - Get or modify the auto reporting option values
-+
-+SYNOPSIS
-+--------
-+'abrt-auto-reporting' [-v] [ enabled | yes | 1 | on | disabled | no | 0 | off ]
-+
-+DESCRIPTION
-+-----------
-+Reads the configuration from abrt.conf and saves the changes to the same file.
-+
-+The changes will take effect immediately without necessity to restart any ABRT
-+process and will be persistent.
-+
-+'disabled'::
-+ User have to report the detect problems manually
-+
-+'enabled'::
-+ ABRT uploads an uReport which was generated for a detected problem
-+ immediately after the detection phase.
-+
-+uReport description
-+~~~~~~~~~~~~~~~~~~~
-+ABRT supports uReports for four types of crashes: crashes of C/C++ programs
-+that result in a core dump, uncaught Python exceptions, uncaught Java
-+exceptions and kernel oopses.
-+
-+Each uReport generally contains a stack trace, or multiple stack traces in the
-+case of multi-threaded C/C++ and Java programs. The stack trace only describes
-+the call stack of the program at the time of the crash and does not contain
-+contents of any variables.
-+
-+Every uReport also contains identification of the operating system, versions of
-+the RPM packages involved in the crash, and whether the program ran under a
-+root user.
-+
-+There are also items specific to each crash type:
-+
-+C/C++ crashes::
-+ these are path to the executable and signal delivered to the program,
-+
-+Python exceptions::
-+ there is the type of the exception (without the error message, which may
-+ contain sensitive data),
-+
-+for kernel oopses::
-+ these are list of loaded kernel modules, list of taint flags, and full text
-+ of the kernel oops.
-+
-+'Warning':
-+The full text of a kernel oops might contain information like the
-+identification of the host hardware type. You should disable the autoreporting
-+feature if you do not want to share this information with Red Hat.
-+
-+
-+OPTIONS
-+-------
-+-v, --verbose::
-+ Be more verbose. Can be given multiple times.
-+
-+SEE ALSO
-+--------
-+abrt.conf(5)
-+
-+AUTHORS
-+-------
-+* ABRT team
-diff --git a/doc/abrt-auto-reporting.txt b/doc/abrt-auto-reporting.txt
-deleted file mode 100644
-index 2a27945..0000000
---- a/doc/abrt-auto-reporting.txt
-+++ /dev/null
-@@ -1,106 +0,0 @@
--abrt-auto-reporting(1)
--======================
--
--NAME
------
--abrt-auto-reporting - Get or modify the auto reporting option values
--
--SYNOPSIS
----------
--'abrt-auto-reporting' [-v] [ enabled | yes | 1 | on | disabled | no | 0 | off ]
-- [ [--anonymous] |
-- [--username USERNAME [--password PASSWORD] ] |
-- [--certificate SOURCE] ]
--
--DESCRIPTION
-------------
--Reads the configuration from abrt.conf and saves the changes to the same file.
--
--The changes will take effect immediately without necessity to restart any ABRT
--process and will be persistent.
--
--'disabled'::
-- User have to report the detect problems manually
--
--'enabled'::
-- ABRT uploads an uReport which was generated for a detected problem
-- immediately after the detection phase.
--
--Reads and saves the authentication configuration options in
--/etc/libreport/plugins/ureport.conf and /etc/libreport/plugins/rhtsupport.conf
--
--uReport description
--~~~~~~~~~~~~~~~~~~~
--ABRT supports uReports for four types of crashes: crashes of C/C++ programs
--that result in a core dump, uncaught Python exceptions, uncaught Java
--exceptions and kernel oopses.
--
--Each uReport generally contains a stack trace, or multiple stack traces in the
--case of multi-threaded C/C++ and Java programs. The stack trace only describes
--the call stack of the program at the time of the crash and does not contain
--contents of any variables.
--
--Every uReport also contains identification of the operating system, versions of
--the RPM packages involved in the crash, and whether the program ran under a
--root user.
--
--There are also items specific to each crash type:
--
--C/C++ crashes::
-- these are path to the executable and signal delivered to the program,
--
--Python exceptions::
-- there is the type of the exception (without the error message, which may
-- contain sensitive data),
--
--for kernel oopses::
-- these are list of loaded kernel modules, list of taint flags, and full text
-- of the kernel oops.
--
--The authenticated uReports also contains *hostname* and *machineid* to enable a
--server side filtering at https://access.redhat.com/.
--
--The authenticated uReports have the benefit of rich server replies which may
--include a solution for the submitted crash. The authentication is done using
--either Red Hat Subscription Certificates or Red Hat Customer Portal
--credentials.
--
--'Warning':
--The full text of a kernel oops might contain information like the
--identification of the host hardware type. You should disable the autoreporting
--feature if you do not want to share this information with Red Hat.
--
--
--OPTIONS
---------
---v, --verbose::
-- Be more verbose. Can be given multiple times.
--
---a, --anonymous::
-- Turns the authentication off by clearing both 'SSLClientAuth' and 'HTTPAuth'
-- configuration options in /etc/libreport/plugins/ureport.conf
--
---u, --username USERNAME::
-- Turns HTTP Authentication on by setting 'HTTPAuth' configuration option to
-- *rhts-credentials* in /etc/libreport/plugins/ureport.conf and storing
-- USERNAME and PASSWORD in /etc/libreport/plugins/rhtsupport.conf
-- Also turns the SSL Client Authentication off, because these methods cannot
-- be used together.
--
---p, --password PASSWORD::
-- Password for HTTP Authentication. If not provided, a prompt asking for it
-- will be issued.
--
---c, --certificate SOURCE::
-- Turns SSL Client Authentication on by setting 'SSLClientAuth' configuration
-- option to SOURCE in /etc/libreport/plugins/ureport.conf.
-- Also turns the HTTP Authentication off, because these methods cannot
-- be used together.
--
--SEE ALSO
----------
--abrt.conf(5), ureport.conf(5), rhtsupport.conf(5)
--
--AUTHORS
---------
--* ABRT team
-diff --git a/src/daemon/abrt-auto-reporting.c b/src/daemon/abrt-auto-reporting.c
-index 0fffeb6..b608c9b 100644
---- a/src/daemon/abrt-auto-reporting.c
-+++ b/src/daemon/abrt-auto-reporting.c
-@@ -64,6 +64,7 @@ set_abrt_reporting(map_string_t *conf, const char *opt_value)
- return 1;
- }
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- static int
- set_ureport_http_auth(map_string_t *conf, const char *opt_value)
- {
-@@ -134,6 +135,7 @@ set_rhts_credentials(map_string_t *conf, const char *username, const char *passw
- /* No changes needed -> success */
- return 1;
- }
-+#endif
-
- static const char *
- get_abrt_reporting(map_string_t *conf)
-@@ -143,6 +145,7 @@ get_abrt_reporting(map_string_t *conf)
- return REPORTING_STATES[index][0];
- }
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- static const char *
- get_ureport_http_auth(map_string_t *conf)
- {
-@@ -154,6 +157,7 @@ get_ureport_client_auth(map_string_t *conf)
- {
- return get_map_string_item_or_NULL(conf, UREPORT_CLIENT_AUTH_OPTION);
- }
-+#endif
-
- int main(int argc, char *argv[])
- {
-@@ -171,57 +175,78 @@ int main(int argc, char *argv[])
- textdomain(PACKAGE);
- #endif
-
-+#define PROGRAM_USAGE_MIDDLE_PART \
-+ "\n" \
-+ "Get or modify a value of the auto-reporting option. The changes will take\n" \
-+ "effect immediately and will be persistent.\n" \
-+ "\n" \
-+ ""STATE_MANUAL":\n" \
-+ "User have to report the detect problems manually\n" \
-+ "\n" \
-+ ""STATE_AUTO":\n" \
-+ "ABRT uploads an uReport which was generated for a detected problem\n" \
-+ "immediately after the detection phase. uReport generally contains a stack\n" \
-+ "trace which only describes the call stack of the program at the time of the\n" \
-+ "crash and does not contain contents of any variables. Every uReport also\n" \
-+ "contains identification of the operating system, versions of the RPM packages\n" \
-+ "involved in the crash, and whether the program ran under a root user.\n" \
-+ "\n"
-+
- abrt_init(argv);
-+#if AUTHENTICATED_AUTOREPORTING != 0
- const char *program_usage_string = _(
- "& [ "STATE_MANUAL" | "STATE_AUTO" | yes | no | 1 | 0 ] \\\n"
- " [[--anonymous] | [--username USERNAME [--password PASSWORD]] | [--certificate SOURCE]]\n"
-- "\n"
-- "Get or modify a value of the auto-reporting option. The changes will take\n"
-- "effect immediately and will be persistent.\n"
-- "\n"
-- ""STATE_MANUAL":\n"
-- "User have to report the detect problems manually\n"
-- "\n"
-- ""STATE_AUTO":\n"
-- "ABRT uploads an uReport which was generated for a detected problem\n"
-- "immediately after the detection phase. uReport generally contains a stack\n"
-- "trace which only describes the call stack of the program at the time of the\n"
-- "crash and does not contain contents of any variables. Every uReport also\n"
-- "contains identification of the operating system, versions of the RPM packages\n"
-- "involved in the crash, and whether the program ran under a root user.\n"
-- "\n"
-+ PROGRAM_USAGE_MIDDLE_PART
- "See abrt-auto-reporting(1), reporter-ureport(1) and reporter-rhtsupport(1)\n"
- "for more details.\n"
- );
-+#else
-+ const char *program_usage_string = _(
-+ "& [ "STATE_MANUAL" | "STATE_AUTO" | yes | no | 1 | 0 ]\n"
-+ PROGRAM_USAGE_MIDDLE_PART
-+ "See abrt-auto-reporting(1) and reporter-ureport(1) for more details.\n"
-+ );
-+#endif
-
- enum {
- OPT_v = 1 << 0,
-+#if AUTHENTICATED_AUTOREPORTING != 0
- OPT_a = 1 << 1,
- OPT_u = 1 << 2,
- OPT_p = 1 << 3,
- OPT_c = 1 << 4,
-+#endif
- };
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- int anonymous = 0;
- const char *username = NULL;
- const char *password = NULL;
- const char *certificate = NULL;
-+#endif
-
- /* Keep enum above and order of options below in sync! */
- struct options program_options[] = {
- OPT__VERBOSE(&g_verbose),
-+#if AUTHENTICATED_AUTOREPORTING != 0
- OPT_BOOL ( 'a', "anonymous", &anonymous, _("Turns the authentication off")),
- OPT_STRING( 'u', "username", &username, "USERNAME", _("Red Hat Support user name")),
- OPT_STRING( 'p', "password", &password, "PASSWORD", _("Red Hat Support password, if not given, a prompt for it will be issued")),
- OPT_STRING( 'c', "certificate", &certificate, "SOURCE", _("uReport SSL certificate paths or certificate type")),
-+#endif
- OPT_END()
- };
-
-- const unsigned opts = parse_opts(argc, argv, program_options, program_usage_string);
-+#if AUTHENTICATED_AUTOREPORTING != 0
-+ const unsigned opts =
-+#endif
-+ parse_opts(argc, argv, program_options, program_usage_string);
-
- argv += optind;
- argc -= optind;
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- if ((opts & OPT_p) && !(opts & OPT_u))
- {
- error_msg(_("You also need to specify --username for --password"));
-@@ -246,6 +271,7 @@ int main(int argc, char *argv[])
- show_usage_and_die(program_usage_string, program_options);
- }
-
-+#endif
- if (argc > 1)
- {
- error_msg(_("Invalid number of arguments"));
-@@ -275,20 +301,25 @@ int main(int argc, char *argv[])
- int exit_code = EXIT_FAILURE;
-
- map_string_t *conf = new_map_string();
-+#if AUTHENTICATED_AUTOREPORTING != 0
- map_string_t *rhts_conf = new_map_string();
- map_string_t *rhts_conf_bck = NULL;
-+#endif
- map_string_t *ureport_conf = new_map_string();
- map_string_t *ureport_conf_bck = NULL;
-
- if (!load_abrt_conf_file(CONF_NAME, conf))
- goto finito;
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- if (!load_plugin_conf_file(RHTS_NAME, rhts_conf, false))
- goto finito;
-+#endif
-
- if (!load_plugin_conf_file(UREPORT_NAME, ureport_conf, false))
- goto finito;
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- if ((opts & OPT_a))
- {
- ureport_conf_bck = clone_map_string(ureport_conf);
-@@ -334,11 +365,13 @@ int main(int argc, char *argv[])
- goto finito;
- }
-
-+#endif
- if (argc == 0)
- {
- printf("%s", get_abrt_reporting(conf));
- exit_code = EXIT_SUCCESS;
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- if (g_verbose >= 1)
- {
- const char *tmp = get_ureport_http_auth(ureport_conf);
-@@ -350,7 +383,7 @@ int main(int argc, char *argv[])
- else
- printf(" %s", _("anonymous auto reporting"));
- }
--
-+#endif
- putchar('\n');
-
- goto finito;
-@@ -363,16 +396,20 @@ int main(int argc, char *argv[])
- if (ureport_conf_bck != NULL)
- save_plugin_conf_file(UREPORT_NAME, ureport_conf_bck);
-
-+#if AUTHENTICATED_AUTOREPORTING != 0
- if (rhts_conf_bck != NULL)
- save_plugin_conf_file(RHTS_NAME, rhts_conf_bck);
-+#endif
- }
-
-
- finito:
- free_map_string(ureport_conf);
- free_map_string(ureport_conf_bck);
-+#if AUTHENTICATED_AUTOREPORTING != 0
- free_map_string(rhts_conf);
- free_map_string(rhts_conf_bck);
-+#endif
- free_map_string(conf);
- return exit_code;
- }
---
-2.4.1
-
diff --git a/0015-abrt-action-list-dsos-do-not-decode-not-existing-obj.patch b/0015-abrt-action-list-dsos-do-not-decode-not-existing-obj.patch
deleted file mode 100644
index c1a15f4..0000000
--- a/0015-abrt-action-list-dsos-do-not-decode-not-existing-obj.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From c17cb1999357d9be51b8118661a8f35569c66dd0 Mon Sep 17 00:00:00 2001
-From: Matej Habrnal <mhabrnal@redhat.com>
-Date: Thu, 14 May 2015 16:27:02 +0200
-Subject: [PATCH] abrt-action-list-dsos: do not decode not existing object
-
-If you build a package using 'make rpm', there is no vendor param in it.
-So this is the reason why the Decode method was called on None object.
-
-Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
----
- src/plugins/abrt-action-list-dsos | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/plugins/abrt-action-list-dsos b/src/plugins/abrt-action-list-dsos
-index f4a1536..a3078a5 100644
---- a/src/plugins/abrt-action-list-dsos
-+++ b/src/plugins/abrt-action-list-dsos
-@@ -82,10 +82,15 @@ if __name__ == "__main__":
- if outname:
- outfile = xopen(outname, "w")
- outname = None
-+
-+ vendor = h[rpm.RPMTAG_VENDOR]
-+ if vendor != None:
-+ verdor = vendor.decode('utf-8')
-+
- outfile.write("%s %s (%s) %s\n" %
- (path,
- h[rpm.RPMTAG_NEVRA].decode('utf-8'),
-- h[rpm.RPMTAG_VENDOR].decode('utf-8'),
-+ verdor,
- h[rpm.RPMTAG_INSTALLTIME])
- )
-
---
-2.4.1
-
diff --git a/0016-doc-polkit-Spelling-grammar-fixes.patch b/0016-doc-polkit-Spelling-grammar-fixes.patch
deleted file mode 100644
index ef8b8a4..0000000
--- a/0016-doc-polkit-Spelling-grammar-fixes.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From e3df315b18f833bb44eb8aadeefc2ad932f39f97 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
-Date: Tue, 19 May 2015 09:29:28 +0300
-Subject: [PATCH] doc, polkit: Spelling/grammar fixes
-
----
- doc/design | 6 +++---
- doc/problems-service/org.freedesktop.Problems.xml.in | 4 ++--
- doc/project/abrt.tex | 14 +++++++-------
- src/dbus/abrt_polkit.policy | 4 ++--
- 4 files changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/doc/design b/doc/design
-index a9ce040..f214caf 100644
---- a/doc/design
-+++ b/doc/design
-@@ -37,7 +37,7 @@ to a dedicated server(s) for processing (backtrace, etc).
-
- Design
-
--Abrt design should be flexible enough to accomodate all
-+Abrt design should be flexible enough to accommodate all
- of the above usage scenarios.
-
- Since currently we do not know how to dump oops on demand,
-@@ -70,7 +70,7 @@ uses inotify to watch for crashes. Instead the programs which create crashes
- can trigger their initial ("post-create") processing themselves]
-
- Crashes conceptually go through "events" in their lives.
--Apart from "post-create" event decribed above, they may have
-+Apart from "post-create" event described above, they may have
- "analyze" event, "report[_FOO]" events,
- and arbitrarily-named other events.
- abrt-handle-crashdump tool can be used to "run" an event on a directory,
-@@ -124,7 +124,7 @@ Done:
- * Make abrt-gui start abrtd on demand, so that abrt-gui can be started
- even if abrtd does not run at the moment.
- * make kerneloops plugin into separate daemon (convert it to a hook
-- and get rid of "cron plugins" which are wrong idea since the begining)
-+ and get rid of "cron plugins" which are wrong idea since the beginning)
- * make C/C++ hook to be started by init script
- * add "include FILE" feature to abrt_event.conf
-
-diff --git a/doc/problems-service/org.freedesktop.Problems.xml.in b/doc/problems-service/org.freedesktop.Problems.xml.in
-index 118d4b2..b791bdb 100644
---- a/doc/problems-service/org.freedesktop.Problems.xml.in
-+++ b/doc/problems-service/org.freedesktop.Problems.xml.in
-@@ -53,7 +53,7 @@
- <varlistentry>
- <term>uid</term>
- <listitem>
-- <para>Only a user with root priviledges can pass this field. For all other users the field is filled by caller's uid.</para>
-+ <para>Only a user with root privileges can pass this field. For all other users the field is filled by caller's uid.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
-@@ -309,7 +309,7 @@ for prblmid in problems.GetProblems():
- </arg>
-
- <arg type='x' name='timestamp_from' direction='in'>
-- <tp:docstring>Beginnig of required time range.</tp:docstring>
-+ <tp:docstring>Beginning of required time range.</tp:docstring>
- </arg>
-
- <arg type='x' name='timestamp_to' direction='in'>
-diff --git a/doc/project/abrt.tex b/doc/project/abrt.tex
-index 9e7724e..03b5705 100644
---- a/doc/project/abrt.tex
-+++ b/doc/project/abrt.tex
-@@ -194,7 +194,7 @@ information regarding their interests, involvement.
- {\textbf{Package Maintainers}
- \nodepart{second} \vspace{-5mm}
- \begin{itemize} \itemsep1pt \parskip0pt \parsep0pt
-- \item Fixing most frequently occured bugs
-+ \item Fixing most frequently occurred bugs
- \item Fixing bugs where the bug is well described
- \end{itemize}
- };
-@@ -265,7 +265,7 @@ Highlight important reports
- In-depth bug fixing
- -------------------
-
--Collect core-dump for frequently occured reports
-+Collect core-dump for frequently occurred reports
-
- Retrace coredumps on demand
-
-@@ -570,7 +570,7 @@ components.
- Red Hat Bugzilla.
- \end{description}
- \item[Data Storage] Database and file storage for data required for
-- the analysis, evaluation, adn processing of reports and problems.
-+ the analysis, evaluation, and processing of reports and problems.
- \begin{description}
- \item[LLVM bitcode] We store LLVM bitcode of every binary and
- dynamic library compiled from C/C++ source code.
-@@ -582,8 +582,8 @@ components.
- \begin{tikzpicture}
- \umlclass[x=-4,y=0]{problem}{
- id : PRIMARY KEY \\
--first occurence : TIMESTAMP NOT NULL \\
--last occurence : TIMESTAMP NOT NULL \\
-+first occurrence : TIMESTAMP NOT NULL \\
-+last occurrence : TIMESTAMP NOT NULL \\
- }{}
-
- \umlclass[x=4,y=-2]{problem report}{
-@@ -616,8 +616,8 @@ Part of reports is populated from $\mu$reports.
- \umlclass[x=-4,y=0]{report}{
- id : PRIMARY KEY AUTOINCREMENT \\
- type : ENUM (USERSPACE, KERNEL, PYTHON, SELINUX) \\
--first occurence : TIMESTAMP \\
--last occurence : TIMESTAMP \\
-+first occurrence : TIMESTAMP \\
-+last occurrence : TIMESTAMP \\
- count : INT \\
- component id : FOREIGN KEY \\
- problem id : FOREIGN KEY
-diff --git a/src/dbus/abrt_polkit.policy b/src/dbus/abrt_polkit.policy
-index a3425d9..2c75233 100644
---- a/src/dbus/abrt_polkit.policy
-+++ b/src/dbus/abrt_polkit.policy
-@@ -17,7 +17,7 @@ Copyright (c) 2012 ABRT Team <crash-catcher@fedorahosted.com>
- <!-- by default only root can see other users problems -->
- <action id="org.freedesktop.problems.getall">
- <description>Get problems from all users</description>
-- <message>Reading others problems requires authentication</message>
-+ <message>Reading other users' problems requires authentication</message>
- <defaults>
- <allow_any>auth_admin</allow_any>
- <allow_active>auth_admin_keep</allow_active>
-@@ -28,7 +28,7 @@ Copyright (c) 2012 ABRT Team <crash-catcher@fedorahosted.com>
- <!-- by default only root can access configuration -->
- <action id="com.redhat.problems.configuration.update">
- <description>Set value of configuration properties</description>
-- <message>Update configuration values reuquires authentication</message>
-+ <message>Updating configuration values requires authentication</message>
- <defaults>
- <allow_any>auth_admin</allow_any>
- <allow_active>auth_admin_keep</allow_active>
---
-2.4.1
-
diff --git a/0018-applet-migrate-Autoreporting-options-to-GSettings.patch b/0018-applet-migrate-Autoreporting-options-to-GSettings.patch
deleted file mode 100644
index db67e55..0000000
--- a/0018-applet-migrate-Autoreporting-options-to-GSettings.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 70b2e6981b667d5cfb31f894527e16f3eeed14c9 Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Fri, 15 May 2015 14:45:40 +0200
-Subject: [PATCH] applet: migrate Autoreporting options to GSettings
-
-Read the option's value from the app's configuration file, update the
-gnome setting if needed and remove the option from the app's
-configuration file in order to skip the migration at next start.
-
-Related to #966
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- src/applet/applet.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 55 insertions(+), 5 deletions(-)
-
-diff --git a/src/applet/applet.c b/src/applet/applet.c
-index 4df69fc..b534839 100644
---- a/src/applet/applet.c
-+++ b/src/applet/applet.c
-@@ -36,6 +36,10 @@
- #include "libabrt.h"
- #include "problem_api.h"
-
-+#define APP_NAME "abrt-applet"
-+#define GS_SCHEMA_ID_PRIVACY "org.gnome.desktop.privacy"
-+#define GS_PRIVACY_OPT_AUTO_REPORTING "report-technical-problems"
-+
- /* libnotify action keys */
- #define A_REPORT_REPORT "REPORT"
- #define A_RESTART_APPLICATION "RESTART"
-@@ -55,15 +59,60 @@ static bool is_autoreporting_enabled(void)
- GSettings *settings;
- gboolean ret;
-
-- settings = g_settings_new ("org.gnome.desktop.privacy");
-- ret = g_settings_get_boolean (settings, "report-technical-problems");
-+ settings = g_settings_new (GS_SCHEMA_ID_PRIVACY);
-+ ret = g_settings_get_boolean (settings, GS_PRIVACY_OPT_AUTO_REPORTING);
- g_object_unref (settings);
- return ret;
- }
-
-+static void migrate_auto_reporting_to_gsettings(void)
-+{
-+#define OPT_NAME "AutoreportingEnabled"
-+ map_string_t *settings = new_map_string();
-+ if (!load_app_conf_file(APP_NAME, settings))
-+ goto finito;
-+
-+ /* Silently ignore not configured options */
-+ int sv_logmode = logmode;
-+ /* but only if we run in silent mode (no -v on command line) */
-+ logmode = g_verbose == 0 ? 0 : sv_logmode;
-+
-+ int auto_reporting = 0;
-+ int configured = try_get_map_string_item_as_bool(settings, OPT_NAME, &auto_reporting);
-+
-+ logmode = sv_logmode;
-+
-+ if (!configured)
-+ goto finito;
-+
-+ /* Enable the GS option if AutoreportingEnabled is true because the user
-+ * turned the Autoreporting in abrt-applet in a before GS.
-+ *
-+ * Do not disable the GS option if AutoreportingEvent is false because the
-+ * GS option is false by default, thus disabling would revert the user's
-+ * decision to automatically report technical problems.
-+ */
-+ if (auto_reporting)
-+ {
-+ GSettings *settings = g_settings_new(GS_SCHEMA_ID_PRIVACY);
-+ g_settings_set_boolean(settings, GS_PRIVACY_OPT_AUTO_REPORTING, TRUE);
-+ g_object_unref(settings);
-+ }
-+
-+ remove_map_string_item(settings, OPT_NAME);
-+ save_app_conf_file(APP_NAME, settings);
-+
-+ log("Successfully migrated "APP_NAME":"OPT_NAME" to "GS_SCHEMA_ID_PRIVACY":"GS_PRIVACY_OPT_AUTO_REPORTING);
-+
-+#undef OPT_NAME
-+finito:
-+ free_map_string(settings);
-+ return;
-+}
-+
- static const char *get_autoreport_event_name(void)
- {
-- load_user_settings("abrt-applet");
-+ load_user_settings(APP_NAME);
- const char *configured = get_user_setting("AutoreportingEvent");
- return configured ? configured : g_settings_autoreporting_event;
- }
-@@ -554,7 +603,7 @@ static NotifyNotification *new_warn_notification(const char *body)
-
- notify_notification_set_urgency(notification, NOTIFY_URGENCY_NORMAL);
- notify_notification_set_timeout(notification, NOTIFY_EXPIRES_DEFAULT);
-- notify_notification_set_hint(notification, "desktop-entry", g_variant_new_string("abrt-applet"));
-+ notify_notification_set_hint(notification, "desktop-entry", g_variant_new_string(APP_NAME));
-
- return notification;
- }
-@@ -1147,13 +1196,14 @@ int main(int argc, char** argv)
- /*unsigned opts =*/ parse_opts(argc, argv, program_options, program_usage_string);
-
- migrate_to_xdg_dirs();
-+ migrate_auto_reporting_to_gsettings();
-
- export_abrt_envvars(0);
- msg_prefix = g_progname;
-
- load_abrt_conf();
- load_event_config_data();
-- load_user_settings("abrt-applet");
-+ load_user_settings(APP_NAME);
-
- /* Initialize our (dbus_abrt) machinery by filtering
- * for signals:
---
-2.4.1
-
diff --git a/0019-config-UI-read-glade-from-a-local-file-first.patch b/0019-config-UI-read-glade-from-a-local-file-first.patch
deleted file mode 100644
index 4381744..0000000
--- a/0019-config-UI-read-glade-from-a-local-file-first.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From eb1e45a1e8070bee6ba44f325f7dd0ca8900dc77 Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Sat, 16 May 2015 06:46:17 +0200
-Subject: [PATCH] config UI: read glade from a local file first
-
-If you read the system file first, you won't be able to the application
-from a development directory.
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- src/configuration-gui/abrt-config-widget.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/configuration-gui/abrt-config-widget.c b/src/configuration-gui/abrt-config-widget.c
-index 664180d..2c75429 100644
---- a/src/configuration-gui/abrt-config-widget.c
-+++ b/src/configuration-gui/abrt-config-widget.c
-@@ -221,14 +221,14 @@ abrt_config_widget_init(AbrtConfigWidget *self)
- self->priv->builder = gtk_builder_new();
- gtk_builder_set_translation_domain(self->priv->builder, GETTEXT_PACKAGE);
-
-- gtk_builder_add_from_file(self->priv->builder, ABRT_UI_DIR "/" UI_FILE_NAME, &error);
-+ gtk_builder_add_from_file(self->priv->builder, UI_FILE_NAME, &error);
- if(error != NULL) {
-- g_warning("Failed to load '%s': %s", ABRT_UI_DIR "/" UI_FILE_NAME, error->message);
-+ log_debug("Failed to load '%s': %s", UI_FILE_NAME, error->message);
- g_error_free(error);
- error = NULL;
-- gtk_builder_add_from_file(self->priv->builder, UI_FILE_NAME, &error);
-+ gtk_builder_add_from_file(self->priv->builder, ABRT_UI_DIR "/" UI_FILE_NAME, &error);
- if(error != NULL) {
-- g_warning("Failed to load '%s': %s", UI_FILE_NAME, error->message);
-+ g_warning("Failed to load '%s': %s", ABRT_UI_DIR "/" UI_FILE_NAME, error->message);
- g_error_free(error);
- return;
- }
---
-2.4.1
-
diff --git a/0020-config-UI-enable-options-without-config-files.patch b/0020-config-UI-enable-options-without-config-files.patch
deleted file mode 100644
index 5dd83fd..0000000
--- a/0020-config-UI-enable-options-without-config-files.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 5d544028c3dd3f4af9d4da83a4c57d2c05c09014 Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Sat, 16 May 2015 06:51:09 +0200
-Subject: [PATCH] config UI: enable options without config files
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- src/configuration-gui/abrt-config-widget.c | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/src/configuration-gui/abrt-config-widget.c b/src/configuration-gui/abrt-config-widget.c
-index 2c75429..8bfc269 100644
---- a/src/configuration-gui/abrt-config-widget.c
-+++ b/src/configuration-gui/abrt-config-widget.c
-@@ -175,10 +175,13 @@ on_switch_activate(GObject *object,
- GParamSpec *spec,
- AbrtConfigWidget *config)
- {
-+ AbrtConfigWidgetOption *option = g_object_get_data(G_OBJECT(object), "abrt-option");
-+ if (option->config == NULL)
-+ return;
-+
- const gboolean state = gtk_switch_get_active(GTK_SWITCH(object));
- const char *const val = state ? "yes" : "no";
-
-- AbrtConfigWidgetOption *option = g_object_get_data(G_OBJECT(object), "abrt-option");
- log_debug("%s : %s", option->name, val);
- abrt_app_configuration_set_value(option->config, option->name, val);
- abrt_app_configuration_save(option->config);
-@@ -191,7 +194,11 @@ update_option_current_value(AbrtConfigWidget *self, enum AbrtOptions opid)
- assert((opid >= _ABRT_OPT_BEGIN_ && opid < _ABRT_OPT_END_) || !"Out of range Option ID value");
-
- AbrtConfigWidgetOption *option = &(self->priv->options[opid]);
-- const char *val = abrt_app_configuration_get_value(option->config, option->name);
-+
-+ const char *val = NULL;
-+ if (option->config != NULL)
-+ val = abrt_app_configuration_get_value(option->config, option->name);
-+
- option->current_value = val ? string_to_bool(val) : option->default_value;
- }
-
-@@ -209,6 +216,9 @@ connect_switch_with_option(AbrtConfigWidget *self, enum AbrtOptions opid, const
- g_object_set_data(G_OBJECT(gsw), "abrt-option", option);
- g_signal_connect(G_OBJECT(gsw), "notify::active",
- G_CALLBACK(on_switch_activate), self);
-+
-+ if (option->config == NULL)
-+ gtk_widget_set_sensitive(GTK_WIDGET(gsw), FALSE);
- }
-
- static void
---
-2.4.1
-
diff --git a/0021-config-UI-Automatic-reporting-from-GSettings.patch b/0021-config-UI-Automatic-reporting-from-GSettings.patch
deleted file mode 100644
index 29a8abd..0000000
--- a/0021-config-UI-Automatic-reporting-from-GSettings.patch
+++ /dev/null
@@ -1,602 +0,0 @@
-From abdedafd3a530ad4baa992010a3cfc87645d98d1 Mon Sep 17 00:00:00 2001
-From: Jakub Filak <jfilak@redhat.com>
-Date: Sat, 16 May 2015 06:51:37 +0200
-Subject: [PATCH] config UI: Automatic reporting from GSettings
-
-If Privacy panels exists:
- Make the widget insensitive because the user can only read its value.
- Add a button launching Privacy panel.
-Else:
- Read/write the GSettings and show a warning about modifying the
- GSettings.
-
-Signed-off-by: Jakub Filak <jfilak@redhat.com>
----
- po/POTFILES.in | 1 +
- src/configuration-gui/abrt-config-widget.c | 201 +++++++++++++++++++++++--
- src/configuration-gui/abrt-config-widget.glade | 82 ++++------
- 3 files changed, 217 insertions(+), 67 deletions(-)
-
-diff --git a/po/POTFILES.in b/po/POTFILES.in
-index 0da1396..8c31438 100644
---- a/po/POTFILES.in
-+++ b/po/POTFILES.in
-@@ -3,6 +3,7 @@
- # Please keep this file sorted alphabetically.
- src/applet/abrt-applet.desktop.in
- src/applet/applet.c
-+src/configuration-gui/abrt-config-widget.c
- src/configuration-gui/abrt-config-widget.glade
- src/configuration-gui/system-config-abrt.c
- src/configuration-gui/main.c
-diff --git a/src/configuration-gui/abrt-config-widget.c b/src/configuration-gui/abrt-config-widget.c
-index 8bfc269..c9b0b02 100644
---- a/src/configuration-gui/abrt-config-widget.c
-+++ b/src/configuration-gui/abrt-config-widget.c
-@@ -21,6 +21,8 @@
- #endif
-
- #include "abrt-config-widget.h"
-+#include <satyr/utils.h>
-+#include <gio/gdesktopappinfo.h>
-
- #include "libabrt.h"
- #include <assert.h>
-@@ -32,19 +34,36 @@
-
- #define UI_FILE_NAME "abrt-config-widget.glade"
-
-+/* AbrtConfigWidgetPrivate:
-+ * + AbrtConfigWidgetOption == "abrt-option" of GtkSwitch
-+ * + AbrtConfigWidgetOption == "abrt-option" of GtkSwitch
-+ * + ...
-+ *
-+ * + AbrtAppConfiguration == config of AbrtConfigWidgetOption
-+ * + AbrtAppConfiguration == config of AbrtConfigWidgetOption
-+ * + ...
-+ */
-+
-+/* This structure represents either an ABRT configuration file or a GSettings
-+ * schema.
-+ */
- typedef struct {
-- char *app_name;
-- map_string_t *settings;
-+ char *app_name; ///< e.g abrt-applet, org.gnome.desktop.privacy
-+ map_string_t *settings; ///< ABRT configuration file
-+ GSettings *glib_settings; ///< GSettings
- } AbrtAppConfiguration;
-
-+/* This structure represents a single switch.
-+ */
- typedef struct {
-- const char *name;
-+ const char *name; ///< e.g. ask_steal_dir, report-technical-problems
- GtkSwitch *widget;
- gboolean default_value;
- gboolean current_value;
- AbrtAppConfiguration *config;
- } AbrtConfigWidgetOption;
-
-+/* Each configuration option has its own number. */
- enum AbrtOptions
- {
- _ABRT_OPT_BEGIN_,
-@@ -60,11 +79,15 @@ enum AbrtOptions
- _ABRT_OPT_END_,
- };
-
-+/* This structure holds private data of AbrtConfigWidget
-+ */
- struct AbrtConfigWidgetPrivate {
- GtkBuilder *builder;
- AbrtAppConfiguration *report_gtk_conf;
- AbrtAppConfiguration *abrt_applet_conf;
-+ AbrtAppConfiguration *privacy_gsettings;
-
-+ /* Static array for all switches */
- AbrtConfigWidgetOption options[_ABRT_OPT_END_];
- };
-
-@@ -79,6 +102,8 @@ static guint s_signals[SN_LAST_SIGNAL] = { 0 };
-
- static void abrt_config_widget_finalize(GObject *object);
-
-+/* New ABRT configuration file wrapper
-+ */
- static AbrtAppConfiguration *
- abrt_app_configuration_new(const char *app_name)
- {
-@@ -86,6 +111,7 @@ abrt_app_configuration_new(const char *app_name)
-
- conf->app_name = xstrdup(app_name);
- conf->settings = new_map_string();
-+ conf->glib_settings = NULL;
-
- if(!load_app_conf_file(conf->app_name, conf->settings)) {
- g_warning("Failed to load config for '%s'", conf->app_name);
-@@ -94,22 +120,50 @@ abrt_app_configuration_new(const char *app_name)
- return conf;
- }
-
-+/* New GSettings wrapper
-+ */
-+static AbrtAppConfiguration *
-+abrt_app_configuration_new_glib(const char *schema)
-+{
-+ AbrtAppConfiguration *conf = xmalloc(sizeof(*conf));
-+
-+ conf->app_name = xstrdup(schema);
-+ conf->settings = NULL;
-+ conf->glib_settings = g_settings_new(conf->app_name);
-+
-+ return conf;
-+}
-+
- static void
- abrt_app_configuration_set_value(AbrtAppConfiguration *conf, const char *name, const char *value)
- {
-- set_app_user_setting(conf->settings, name, value);
-+ if (conf->settings)
-+ set_app_user_setting(conf->settings, name, value);
-+ else if (conf->glib_settings)
-+ g_settings_set_boolean(conf->glib_settings, name, string_to_bool(value));
-+ else
-+ assert(!"BUG: not properly initialized AbrtAppConfiguration");
- }
-
- static const char *
- abrt_app_configuration_get_value(AbrtAppConfiguration *conf, const char *name)
- {
-- return get_app_user_setting(conf->settings, name);
-+ if (conf->settings)
-+ return get_app_user_setting(conf->settings, name);
-+
-+ if (conf->glib_settings)
-+ return g_settings_get_boolean(conf->glib_settings, name) ? "yes" : "no";
-+
-+ assert(!"BUG: not properly initialized AbrtAppConfiguration");
- }
-
- static void
- abrt_app_configuration_save(AbrtAppConfiguration *conf)
- {
-- save_app_conf_file(conf->app_name, conf->settings);
-+ if (conf->settings)
-+ save_app_conf_file(conf->app_name, conf->settings);
-+
-+ /* No need to save GSettings because changes are applied instantly */
- }
-
- static void
-@@ -121,8 +175,17 @@ abrt_app_configuration_free(AbrtAppConfiguration *conf)
- free(conf->app_name);
- conf->app_name = (void *)0xDEADBEAF;
-
-- free_map_string(conf->settings);
-- conf->settings = (void *)0xDEADBEAF;
-+ if (conf->settings)
-+ {
-+ free_map_string(conf->settings);
-+ conf->settings = (void *)0xDEADBEAF;
-+ }
-+
-+ if (conf->glib_settings)
-+ {
-+ g_object_unref(conf->glib_settings);
-+ conf->glib_settings = (void *)0xDEADBEAF;
-+ }
- }
-
- static void
-@@ -161,6 +224,9 @@ abrt_config_widget_finalize(GObject *object)
- abrt_app_configuration_free(self->priv->abrt_applet_conf);
- self->priv->abrt_applet_conf = NULL;
-
-+ abrt_app_configuration_free(self->priv->privacy_gsettings);
-+ self->priv->privacy_gsettings = NULL;
-+
- G_OBJECT_CLASS(abrt_config_widget_parent_class)->finalize(object);
- }
-
-@@ -217,8 +283,31 @@ connect_switch_with_option(AbrtConfigWidget *self, enum AbrtOptions opid, const
- g_signal_connect(G_OBJECT(gsw), "notify::active",
- G_CALLBACK(on_switch_activate), self);
-
-- if (option->config == NULL)
-- gtk_widget_set_sensitive(GTK_WIDGET(gsw), FALSE);
-+ /* If the option has no config, make the corresponding insensitive. */
-+ gtk_widget_set_sensitive(GTK_WIDGET(gsw), option->config != NULL);
-+}
-+
-+static void
-+pp_launcher_clicked(GtkButton *launcher, gpointer *unused_data)
-+{
-+ GDesktopAppInfo *app = g_object_get_data(G_OBJECT(launcher), "launched-app");
-+ GError *err = NULL;
-+ if (!g_app_info_launch(G_APP_INFO(app), NULL, NULL, &err))
-+ {
-+ perror_msg("Could not launch '%s': %s",
-+ g_desktop_app_info_get_filename(G_DESKTOP_APP_INFO (app)),
-+ err->message);
-+ }
-+}
-+
-+static void
-+os_release_callback(char *key, char *value, void *data)
-+{
-+ if (strcmp(key, "PRIVACY_POLICY") == 0)
-+ *(char **)data = value;
-+ else
-+ free(value);
-+ free(key);
- }
-
- static void
-@@ -249,6 +338,7 @@ abrt_config_widget_init(AbrtConfigWidget *self)
-
- self->priv->report_gtk_conf = abrt_app_configuration_new("report-gtk");
- self->priv->abrt_applet_conf = abrt_app_configuration_new("abrt-applet");
-+ self->priv->privacy_gsettings = abrt_app_configuration_new_glib("org.gnome.desktop.privacy");
-
- /* Initialize options */
- /* report-gtk */
-@@ -259,15 +349,98 @@ abrt_config_widget_init(AbrtConfigWidget *self)
- self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].name = "abrt_analyze_smart_ask_upload_coredump";
- self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].default_value = TRUE;
- self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].config = self->priv->report_gtk_conf;
--
- self->priv->options[ABRT_OPT_PRIVATE_TICKET].name = CREATE_PRIVATE_TICKET;
- self->priv->options[ABRT_OPT_PRIVATE_TICKET].default_value = FALSE;
- self->priv->options[ABRT_OPT_PRIVATE_TICKET].config = self->priv->report_gtk_conf;
-
- /* abrt-applet */
-- self->priv->options[ABRT_OPT_SEND_UREPORT].name = "AutoreportingEnabled";
-- self->priv->options[ABRT_OPT_SEND_UREPORT].default_value = g_settings_autoreporting;
-- self->priv->options[ABRT_OPT_SEND_UREPORT].config = self->priv->abrt_applet_conf;
-+ self->priv->options[ABRT_OPT_SEND_UREPORT].name = "report-technical-problems";
-+ self->priv->options[ABRT_OPT_SEND_UREPORT].default_value =
-+ string_to_bool(abrt_app_configuration_get_value(self->priv->privacy_gsettings,
-+ "report-technical-problems"));
-+ {
-+ /* Get the container widget for the lauch button and warnings */
-+ GtkWidget *hbox_auto_reporting = WID("hbox_auto_reporting");
-+ assert(hbox_auto_reporting);
-+
-+ /* Be able to use another desktop file while debugging */
-+ const char *gpp_app = getenv("ABRT_PRIVACY_APP_DESKTOP");
-+ if (gpp_app == NULL)
-+ gpp_app = "gnome-privacy-panel.desktop";
-+
-+ GDesktopAppInfo *app = g_desktop_app_info_new(gpp_app);
-+ char *message = NULL;
-+ char *markup = NULL;
-+ if (!app)
-+ {
-+ /* Make the switch editable */
-+ self->priv->options[ABRT_OPT_SEND_UREPORT].config = self->priv->privacy_gsettings;
-+
-+ char *os_release = xmalloc_open_read_close("/etc/os-release", /*no size limit*/NULL);
-+ char *privacy_policy = NULL;
-+
-+ /* Try to get the value of PRIVACY_POLICY from /etc/os-release */
-+ sr_parse_os_release(os_release, os_release_callback, (void *)&privacy_policy);
-+
-+ message = xasprintf(_("The configuration option above has been moved to GSettings and "
-+ "the switch is linked to the value of the setting 'report-technical-problems' "
-+ "from the schema 'org.gnome.desktop.privacy'."));
-+
-+ /* Do not add Privacy Policy link if /etc/os-release does not contain PRIVACY_POLICY */
-+ if (privacy_policy != NULL)
-+ markup = xasprintf("<i>%s</i>\n\n<a href=\"%s\">Privacy Policy</a>", message, privacy_policy);
-+ else
-+ markup = xasprintf("<i>%s</i>", message);
-+
-+ free(privacy_policy);
-+ free(os_release);
-+ }
-+ else
-+ {
-+ /* Make the switch read-only */
-+ self->priv->options[ABRT_OPT_SEND_UREPORT].config = NULL;
-+
-+ message = xasprintf(_("The configuration option above can be configured in"));
-+ markup = xasprintf("<i>%s</i>", message);
-+
-+ GtkWidget *launcher = gtk_button_new_with_label(g_app_info_get_display_name(G_APP_INFO(app)));
-+
-+ /* Here we could pass the launcher to pp_launcher_clicked() as the
-+ * 4th argument of g_signal_connect() but we would leek the
-+ * launcher's memory. Therefore we need to find a way how to free
-+ * the launcher when it is not needed anymore. GtkWidget inherits
-+ * from GObject which offers a functionality for attaching an
-+ * arbitrary data to its instances. The last argument is a function
-+ * called to destroy the arbirarty data when the instance is being
-+ * destoryed. */
-+ g_object_set_data_full(G_OBJECT(launcher), "launched-app", app, g_object_unref);
-+ g_signal_connect(launcher, "clicked", G_CALLBACK(pp_launcher_clicked), NULL);
-+
-+ /* Make the launcher button narrow, otherwise it would expand to
-+ * the width of the warninig. */
-+ gtk_widget_set_hexpand(launcher, FALSE);
-+ gtk_widget_set_vexpand(launcher, FALSE);
-+
-+ /* Make the launcher button alligned on center of the warning. */
-+ gtk_widget_set_halign(launcher, GTK_ALIGN_CENTER);
-+ gtk_widget_set_valign(launcher, GTK_ALIGN_CENTER);
-+
-+ gtk_box_pack_end(GTK_BOX(hbox_auto_reporting), launcher, false, false, 0);
-+ }
-+
-+
-+ GtkWidget *lbl = gtk_label_new(message);
-+ gtk_label_set_markup(GTK_LABEL(lbl), markup);
-+ /* Do not expand the window by too long warning. */
-+ gtk_label_set_line_wrap(GTK_LABEL(lbl), TRUE);
-+ /* Let users to copy the warning. */
-+ gtk_label_set_selectable(GTK_LABEL(lbl), TRUE);
-+
-+ free(markup);
-+ free(message);
-+
-+ gtk_box_pack_start(GTK_BOX(hbox_auto_reporting), lbl, false, false, 0);
-+ }
-
- self->priv->options[ABRT_OPT_SHORTENED_REPORTING].name = "ShortenedReporting";
- self->priv->options[ABRT_OPT_SHORTENED_REPORTING].default_value = g_settings_shortenedreporting;
-diff --git a/src/configuration-gui/abrt-config-widget.glade b/src/configuration-gui/abrt-config-widget.glade
-index 3aa566c..7f613c7 100644
---- a/src/configuration-gui/abrt-config-widget.glade
-+++ b/src/configuration-gui/abrt-config-widget.glade
-@@ -1,6 +1,7 @@
- <?xml version="1.0" encoding="UTF-8"?>
-+<!-- Generated with glade 3.18.3 -->
- <interface>
-- <!-- interface-requires gtk+ 3.0 -->
-+ <requires lib="gtk+" version="3.0"/>
- <object class="GtkWindow" id="window1">
- <property name="can_focus">False</property>
- <child>
-@@ -11,7 +12,6 @@
- <property name="margin_right">10</property>
- <property name="margin_top">10</property>
- <property name="margin_bottom">10</property>
-- <property name="row_homogeneous">True</property>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
-@@ -26,8 +26,6 @@
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -44,8 +42,6 @@
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -59,8 +55,6 @@
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -74,13 +68,12 @@
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSwitch" id="switch_send_ureport">
- <property name="visible">True</property>
-+ <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
-@@ -89,8 +82,6 @@
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -106,9 +97,7 @@
- </object>
- <packing>
- <property name="left_attach">0</property>
-- <property name="top_attach">4</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">5</property>
- </packing>
- </child>
- <child>
-@@ -121,9 +110,7 @@
- </object>
- <packing>
- <property name="left_attach">1</property>
-- <property name="top_attach">4</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">5</property>
- </packing>
- </child>
- <child>
-@@ -136,9 +123,7 @@
- </object>
- <packing>
- <property name="left_attach">1</property>
-- <property name="top_attach">5</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">6</property>
- </packing>
- </child>
- <child>
-@@ -154,9 +139,7 @@
- </object>
- <packing>
- <property name="left_attach">0</property>
-- <property name="top_attach">5</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">6</property>
- </packing>
- </child>
- <child>
-@@ -172,8 +155,6 @@
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -188,8 +169,6 @@
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -204,8 +183,6 @@
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -219,9 +196,7 @@
- </object>
- <packing>
- <property name="left_attach">2</property>
-- <property name="top_attach">4</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">5</property>
- </packing>
- </child>
- <child>
-@@ -235,9 +210,7 @@
- </object>
- <packing>
- <property name="left_attach">2</property>
-- <property name="top_attach">5</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">6</property>
- </packing>
- </child>
- <child>
-@@ -254,8 +227,6 @@
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -270,8 +241,6 @@
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -286,8 +255,6 @@
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -301,8 +268,6 @@
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
- </packing>
- </child>
- <child>
-@@ -316,9 +281,7 @@
- </object>
- <packing>
- <property name="left_attach">0</property>
-- <property name="top_attach">6</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">7</property>
- </packing>
- </child>
- <child>
-@@ -331,9 +294,7 @@
- </object>
- <packing>
- <property name="left_attach">1</property>
-- <property name="top_attach">6</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">7</property>
- </packing>
- </child>
- <child>
-@@ -347,11 +308,26 @@
- </object>
- <packing>
- <property name="left_attach">2</property>
-- <property name="top_attach">6</property>
-- <property name="width">1</property>
-- <property name="height">1</property>
-+ <property name="top_attach">7</property>
- </packing>
- </child>
-+ <child>
-+ <object class="GtkBox" id="hbox_auto_reporting">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <child>
-+ <placeholder/>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="top_attach">4</property>
-+ <property name="width">2</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <placeholder/>
-+ </child>
- </object>
- </child>
- </object>
---
-2.4.1
-
diff --git a/abrt.spec b/abrt.spec
index 011013a..73805a5 100644
--- a/abrt.spec
+++ b/abrt.spec
@@ -21,6 +21,9 @@
%endif
%endif
+# build abrt-atomic subpackage
+%bcond_without atomic
+
%ifarch aarch64
%define have_kexec_tools 0
%else
@@ -40,13 +43,13 @@
%define docdirversion -%{version}
%endif
-%define libreport_ver 2.5.1
-%define satyr_ver 0.16
+%define libreport_ver 2.6.0
+%define satyr_ver 0.18
Summary: Automatic bug detection and reporting tool
Name: abrt
-Version: 2.5.1
-Release: 3%{?dist}
+Version: 2.6.0
+Release: 1%{?dist}
License: GPLv2+
Group: Applications/System
URL: https://github.com/abrt/abrt/wiki/ABRT-Project
@@ -56,28 +59,6 @@ Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
# git format-patch %%{Version} --topo-order -N -M;
# i=1; for p in `ls 0*.patch`; do printf "Patch%04d: %s\n" $i $p; ((i++)); done
-#Patch0001: 0001-testsuite-grab-beakerlib-stored-log-files-from-var-t.patch
-#Patch0002: 0002-testsuite-add-the-machineid-test-case-to-rhel6.patch
-#Patch0003: 0003-testsuite-add-test-for-abrt-cli-report-via-reporter-.patch
-Patch0004: 0004-applet-switch-to-D-Bus-methods.patch
-Patch0005: 0005-lib-add-new-kernel-taint-flags.patch
-Patch0006: 0006-upload-validate-and-sanitize-uploaded-dump-directori.patch
-#Patch0007: 0007-testsuite-don-t-run-whole-test-if-reporter-mantisbt-.patch
-Patch0008: 0008-a-a-s-p-d-add-new-known-interpreter-to-conf-file.patch
-#Patch0009: 0009-abrt-detect-DumpLocation-from-abrt.conf-instead-of-u.patch
-Patch0010: 0010-applet-fix-problem-info-double-free.patch
-Patch0011: 0011-cli-do-not-exit-with-segfault-if-dbus-fails.patch
-#Patch0012: 0012-spec-add-a-dependency-on-abrt-dbus-to-abrt-cli.patch
-Patch0013: 0013-abrt-auto-reporting-require-rhtsupport.conf-file-onl.patch
-#Patch0014: 0014-spec-add-AUTHENTICATED_AUTOREPORTING-conditional.patch
-Patch0015: 0015-abrt-action-list-dsos-do-not-decode-not-existing-obj.patch
-Patch0016: 0016-doc-polkit-Spelling-grammar-fixes.patch
-#Patch0017: 0017-testsuite-add-new-version-of-python-interpreters.patch
-Patch0018: 0018-applet-migrate-Autoreporting-options-to-GSettings.patch
-Patch0019: 0019-config-UI-read-glade-from-a-local-file-first.patch
-Patch0020: 0020-config-UI-enable-options-without-config-files.patch
-Patch0021: 0021-config-UI-Automatic-reporting-from-GSettings.patch
-#Patch0022: 0022-testsuite-test-safeness-of-creating-user-cores.patch
# '%%autosetup -S git' -> git
BuildRequires: git
@@ -104,6 +85,7 @@ BuildRequires: satyr-devel >= %{satyr_ver}
BuildRequires: systemd-python
BuildRequires: systemd-python3
BuildRequires: augeas
+BuildRequires: libselinux-devel
Requires: libreport >= %{libreport_ver}
Requires: satyr >= %{satyr_ver}
@@ -391,11 +373,13 @@ Provides: bug-buddy = 2.28.0
Virtual package to install all necessary packages for usage from desktop
environment.
+%if %{with atomic}
%package atomic
Summary: Package to make easy default installation on Atomic hosts
Group: Applications/System
Requires: %{name}-addon-coredump-helper = %{version}-%{release}
Conflicts: %{name}-addon-ccpp
+%endif
%description atomic
Package to install all necessary packages for usage from Atomic
@@ -418,6 +402,7 @@ Summary: ABRT Python API
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-dbus = %{version}-%{release}
Requires: pygobject2
Requires: dbus-python
Requires: libreport-python
@@ -445,6 +430,7 @@ Summary: ABRT Python 3 API
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-dbus = %{version}-%{release}
Requires: pygobject3
Requires: python3-dbus
Requires: libreport-python3
@@ -493,6 +479,9 @@ CFLAGS="%{optflags} -Werror" %configure --enable-doxygen-docs \
%ifnarch arm armhfp armv7hl armv7l aarch64
--enable-native-unwinder \
%endif
+%if %{without atomic}
+ --without-atomic \
+%endif
%if %{?have_kexec_tools} == 0
--disable-addon-vmcore \
%endif
@@ -520,7 +509,7 @@ find $RPM_BUILD_ROOT -name '*.la' -or -name '*.a' | xargs rm -f
mkdir -p ${RPM_BUILD_ROOT}/%{_initrddir}
mkdir -p $RPM_BUILD_ROOT/var/cache/abrt-di
mkdir -p $RPM_BUILD_ROOT/var/run/abrt
-mkdir -p $RPM_BUILD_ROOT/var/tmp/abrt
+mkdir -p $RPM_BUILD_ROOT/var/spool/abrt
mkdir -p $RPM_BUILD_ROOT/var/spool/abrt-upload
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/abrt
@@ -627,6 +616,7 @@ chown -R abrt:abrt %{_localstatedir}/cache/abrt-di
# update icon cache
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+%if %{with atomic}
%post atomic
if [ -f /etc/abrt/plugins/CCpp.conf ]; then
mv /etc/abrt/plugins/CCpp.conf /etc/abrt/plugins/CCpp.conf.rpmsave.atomic || exit 1;
@@ -654,6 +644,7 @@ fi
%postun atomic
%systemd_postun_with_restart abrt-coredump-helper.service
+%endif
%post libs -p /sbin/ldconfig
@@ -700,6 +691,11 @@ service abrt-upload-watch condrestart >/dev/null 2>&1 || :
%posttrans gui
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+%posttrans dbus
+# Force abrt-dbus to restart like we do with the other services
+killall abrt-dbus >/dev/null 2>&1 || :
+
+
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc README COPYING
@@ -736,7 +732,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_mandir}/man5/abrt_event.conf.5.gz
%config(noreplace) %{_sysconfdir}/libreport/events.d/smart_event.conf
%{_mandir}/man5/smart_event.conf.5.gz
-%dir %attr(0751, abrt, abrt) %{_localstatedir}/tmp/%{name}
+%dir %attr(0751, abrt, abrt) %{_localstatedir}/spool/%{name}
%dir %attr(0700, abrt, abrt) %{_localstatedir}/spool/%{name}-upload
# abrtd runs as root
%dir %attr(0755, root, root) %{_localstatedir}/run/%{name}
@@ -987,6 +983,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files desktop
%defattr(-,root,root,-)
+%if %{with atomic}
%files atomic
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}/plugins/CCpp_Atomic.conf
@@ -996,6 +993,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_bindir}/abrt-action-save-package-data
%{_mandir}/man1/abrt-action-save-package-data.1.gz
%{_mandir}/man5/abrt-action-save-package-data.conf.5.gz
+%endif
%files plugin-bodhi
%defattr(-,root,root,-)
@@ -1045,8 +1043,24 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
%changelog
+* Tue Jun 09 2015 Jakub Filak <jfilak@redhat.com> 2.6.0-1
+- move the default dump location to /var/spool/abrt from /var/tmp/abrt
+- hooks: use root for owner of all dump directories
+- ccpp: do not unlink failed and big user cores
+- ccpp: don't save the system logs by default
+- ccpp: stop reading hs_error.log from /tmp
+- ccpp: emulate selinux for creation of compat cores
+- koops: don't save dmesg if kernel.dmesg_restrict=1
+- dbus: validate passed arguments
+- turn off exploring crashed process's root directories
+- abrt-python: bug fixes and improvements
+- fixes for CVE-2015-3315, CVE-2015-3142, CVE-2015-1869, CVE-2015-1870
+- fixes for CVE-2015-3147, CVE-2015-3151, CVE-2015-3150, CVE-2015-3159
+- spec: add abrt-dbus to Rs of abrt-python and abrt-cli
+- spec: restart abrt-dbus in posttrans
+
* Wed May 20 2015 Matej Habrnal <mhabrnal@redhat.com> 2.5.1-3
-- applet: switch to D-Bus methods
+- applet: fix problem info double free
- upload: validate and sanitize uploaded dump directories
- applet: switch to D-Bus methods
- lib: add new kernel taint flags
diff --git a/sources b/sources
index c611641..13cafef 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d24b5f4e4826a0832e6a21e6b0864c2e abrt-2.5.1.tar.gz
+b764d6a2a12aaae8cbab3fb7fbe37089 abrt-2.6.0.tar.gz
reply other threads:[~2026-08-03 10:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178575258936.1.8260480091568163738.rpms-abrt-a8bf279ba20b@fedoraproject.org \
--to=jfilak@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox