From 8f9a28634a16e4a1082a5016fd956dfcbe957e06 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 24 2020 02:59:50 +0000 Subject: import abrt-2.10.9-12.el8 --- diff --git a/.abrt.metadata b/.abrt.metadata new file mode 100644 index 0000000..5b9e44e --- /dev/null +++ b/.abrt.metadata @@ -0,0 +1 @@ +8447e6b5d2604815a4156e891936a4c76316f3f4 SOURCES/abrt-2.10.9.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..17ff3d0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/abrt-2.10.9.tar.gz diff --git a/SOURCES/0001-Remove-dependency-on-deprecated-nss-pem.patch b/SOURCES/0001-Remove-dependency-on-deprecated-nss-pem.patch new file mode 100644 index 0000000..07ae588 --- /dev/null +++ b/SOURCES/0001-Remove-dependency-on-deprecated-nss-pem.patch @@ -0,0 +1,155 @@ +From b9005f1a69ad989a50ffa68a41c959551f0cb158 Mon Sep 17 00:00:00 2001 +From: Matej Habrnal +Date: Wed, 23 May 2018 11:15:38 +0200 +Subject: [PATCH 1/1] Remove dependency on deprecated nss-pem + +This commit removes dependency on nss-pem which is deprecated and +reimplements TLS client to use libnssckbi.so instead [1]. + +Resolves #1578427 + +[1] https://docs-old.fedoraproject.org/en-US/Fedora_Security_Team/1/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-NSS-Init + +Signed-off-by: Matej Habrnal +--- + abrt.spec.in | 2 +- + src/plugins/abrt-retrace-client.c | 5 ++- + src/plugins/https-utils.c | 53 ++++++------------------------- + src/plugins/https-utils.h | 4 +-- + 4 files changed, 15 insertions(+), 49 deletions(-) + +diff --git a/abrt.spec.in b/abrt.spec.in +index f423562c..eb6fdaf9 100644 +--- a/abrt.spec.in ++++ b/abrt.spec.in +@@ -255,7 +255,7 @@ Summary: %{name}'s retrace client + Requires: %{name} = %{version}-%{release} + Requires: xz + Requires: tar +-Requires: nss-pem ++Requires: p11-kit-trust + + %description retrace-client + This package contains the client application for Retrace server +diff --git a/src/plugins/abrt-retrace-client.c b/src/plugins/abrt-retrace-client.c +index ae5ef83b..d50d45fb 100644 +--- a/src/plugins/abrt-retrace-client.c ++++ b/src/plugins/abrt-retrace-client.c +@@ -1281,8 +1281,7 @@ int main(int argc, char **argv) + + /* Initialize NSS */ + SECMODModule *mod; +- PK11GenericObject *cert; +- nss_init(&mod, &cert); ++ nss_init(&mod); + + /* Run the desired operation. */ + int result = 0; +@@ -1334,7 +1333,7 @@ int main(int argc, char **argv) + error_msg_and_die(_("Unknown operation: %s."), operation); + + /* Shutdown NSS. */ +- nss_close(mod, cert); ++ nss_close(mod); + + return result; + } +diff --git a/src/plugins/https-utils.c b/src/plugins/https-utils.c +index 7a22729b..7a9479ca 100644 +--- a/src/plugins/https-utils.c ++++ b/src/plugins/https-utils.c +@@ -142,37 +142,6 @@ static const char *ssl_get_configdir() + return NULL; + } + +-static PK11GenericObject *nss_load_cacert(const char *filename) +-{ +- PK11SlotInfo *slot = PK11_FindSlotByName("PEM Token #0"); +- if (!slot) +- error_msg_and_die(_("Failed to get slot 'PEM Token #0': %d."), PORT_GetError()); +- +- CK_ATTRIBUTE template[4]; +- CK_OBJECT_CLASS class = CKO_CERTIFICATE; +- +-#define PK11_SETATTRS(x,id,v,l) \ +- do { \ +- (x)->type = (id); \ +- (x)->pValue=(v); \ +- (x)->ulValueLen = (l); \ +- } while (0) +- +- PK11_SETATTRS(&template[0], CKA_CLASS, &class, sizeof(class)); +- CK_BBOOL cktrue = CK_TRUE; +- PK11_SETATTRS(&template[1], CKA_TOKEN, &cktrue, sizeof(CK_BBOOL)); +- PK11_SETATTRS(&template[2], CKA_LABEL, (unsigned char*)filename, strlen(filename)+1); +- PK11_SETATTRS(&template[3], CKA_TRUST, &cktrue, sizeof(CK_BBOOL)); +- PK11GenericObject *cert = PK11_CreateGenericObject(slot, template, 4, PR_FALSE); +- PK11_FreeSlot(slot); +- return cert; +-} +- +-static char *ssl_get_password(PK11SlotInfo *slot, PRBool retry, void *arg) +-{ +- return NULL; +-} +- + void ssl_connect(struct https_cfg *cfg, PRFileDesc **tcp_sock, PRFileDesc **ssl_sock) + { + PRAddrInfo *addrinfo = PR_GetAddrInfoByName(cfg->url, PR_AF_UNSPEC, PR_AI_ADDRCONFIG); +@@ -411,7 +380,7 @@ char *http_join_chunked(char *body, int bodylen) + return strbuf_free_nobuf(result); + } + +-void nss_init(SECMODModule **mod, PK11GenericObject **cert) ++void nss_init(SECMODModule **mod) + { + SECStatus sec_status; + const char *configdir = ssl_get_configdir(); +@@ -422,21 +391,19 @@ void nss_init(SECMODModule **mod, PK11GenericObject **cert) + if (SECSuccess != sec_status) + error_msg_and_die(_("Failed to initialize NSS.")); + +- char *user_module = xstrdup("library=libnsspem.so name=PEM"); +- *mod = SECMOD_LoadUserModule(user_module, NULL, PR_FALSE); +- free(user_module); +- if (!*mod || !(*mod)->loaded) +- error_msg_and_die(_("Failed to initialize security module.")); +- +- *cert = nss_load_cacert("/etc/pki/tls/certs/ca-bundle.crt"); +- PK11_SetPasswordFunc(ssl_get_password); +- NSS_SetDomesticPolicy(); ++ // Initialize the trusted certificate store. ++ char module_name[] = "library=libnssckbi.so name=\"Root Certs\""; ++ *mod = SECMOD_LoadUserModule(module_name, NULL, PR_FALSE); ++ if (*mod == NULL || !(*mod)->loaded) ++ { ++ const PRErrorCode err = PR_GetError(); ++ error_msg_and_die("error: NSPR error code %d: %s\n", err, PR_ErrorToName(err)); ++ } + } + +-void nss_close(SECMODModule *mod, PK11GenericObject *cert) ++void nss_close(SECMODModule *mod) + { + SSL_ClearSessionCache(); +- PK11_DestroyGenericObject(cert); + SECMOD_UnloadUserModule(mod); + SECMOD_DestroyModule(mod); + SECStatus sec_status = NSS_Shutdown(); +diff --git a/src/plugins/https-utils.h b/src/plugins/https-utils.h +index 8ff9aede..f0b167d3 100644 +--- a/src/plugins/https-utils.h ++++ b/src/plugins/https-utils.h +@@ -61,7 +61,7 @@ int http_get_response_code(const char *message); + void http_print_headers(FILE *file, const char *message); + char *tcp_read_response(PRFileDesc *tcp_sock); + char *http_join_chunked(char *body, int bodylen); +-void nss_init(SECMODModule **mod, PK11GenericObject **cert); +-void nss_close(SECMODModule *mod, PK11GenericObject *cert); ++void nss_init(SECMODModule **mod); ++void nss_close(SECMODModule *mod); + + #endif +-- +2.17.0 + diff --git a/SOURCES/0003-ccpp-add-h-and-e-parameter-into-abrt-hook-ccpp.patch b/SOURCES/0003-ccpp-add-h-and-e-parameter-into-abrt-hook-ccpp.patch new file mode 100644 index 0000000..bf69f2b --- /dev/null +++ b/SOURCES/0003-ccpp-add-h-and-e-parameter-into-abrt-hook-ccpp.patch @@ -0,0 +1,133 @@ +From a8a22295837aaadf39bfede6c92e9f9047bcaa34 Mon Sep 17 00:00:00 2001 +From: Matej Habrnal +Date: Wed, 6 Jun 2018 14:04:09 +0200 +Subject: [PATCH] ccpp: add %h and %e parameter into abrt-hook-ccpp + +Without this commit core_pattern's parameter %h and %e was not +translated at all. + +If there is a white space in executable filename, %e replaced only by +the first part of executable name (till the space). Hence we decided +to get executable name from /proc/PID/exe symlink exist. + +Example: +If 'core_pattern = core.%h.%p.%t.%e' the result was +core.%h.26284.1469805542.sleep not +core.myshostmane.26284.1469805542.sleep with spaces + +Related to #1587891 + +Signed-off-by: Matej Habrnal +--- + src/hooks/abrt-hook-ccpp.c | 36 ++++++++++++++++++++++++------------ + src/hooks/abrt-install-ccpp-hook.in | 2 +- + 2 files changed, 25 insertions(+), 13 deletions(-) + +diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c +index 1c4e45e..40117fc 100644 +--- a/src/hooks/abrt-hook-ccpp.c ++++ b/src/hooks/abrt-hook-ccpp.c +@@ -65,13 +65,13 @@ static struct dump_dir *dd; + * %t - UNIX time of dump + * %P - global pid + * %I - crash thread tid +- * %e - executable filename (can contain white spaces) ++ * %h - hostname ++ * %e - executable filename (can contain white spaces, must be placed at the end) + * %% - output one "%" + */ + /* Hook must be installed with exactly the same sequence of %c specifiers. +- * Last one, %h, may be omitted (we can find it out). + */ +-static const char percent_specifiers[] = "%scpugtePi"; ++static const char percent_specifiers[] = "%scpugtPIhe"; + static char *core_basename = (char*) "core"; + + static DIR *open_cwd(pid_t pid) +@@ -146,7 +146,8 @@ static int setfscreatecon_raw(security_context_t context) + } + #endif + +-static int open_user_core(uid_t uid, uid_t fsuid, gid_t fsgid, pid_t pid, char **percent_values) ++static int open_user_core(uid_t uid, uid_t fsuid, gid_t fsgid, pid_t pid, ++ char **percent_values, const char *executable_filename) + { + proc_cwd = open_cwd(pid); + if (proc_cwd == NULL) +@@ -196,7 +197,13 @@ static int open_user_core(uid_t uid, uid_t fsuid, gid_t fsgid, pid_t pid, char * + { + const char *val = "%"; + if (specifier_num > 0) /* not %% */ ++ { + val = percent_values[specifier_num - 1]; ++ /* if %e (executable filename), use executable from ++ * /proc/PID/exe symlink if exists */ ++ if (percent_specifiers[specifier_num] == 'e' && executable_filename) ++ val = executable_filename; ++ } + //log_warning("c:'%c'", c); + //log_warning("val:'%s'", val); + +@@ -917,9 +924,9 @@ int main(int argc, char** argv) + + if (argc < 8) + { +- /* percent specifier: %s %c %p %u %g %t %P %T */ +- /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] */ +- error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME GLOBAL_PID GLOBAL_TID", argv[0]); ++ /* percent specifier: %s %c %p %u %g %t %P %I %h %e */ ++ /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] */ ++ error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME GLOBAL_PID GLOBAL_TID HOSTNAME BINARY_NAME", argv[0]); + } + + /* Not needed on 2.6.30. +@@ -1016,13 +1023,21 @@ int main(int argc, char** argv) + + snprintf(path, sizeof(path), "%s/last-ccpp", g_settings_dump_location); + ++ char *executable = get_executable_at(pid_proc_fd); ++ const char *last_slash = NULL; ++ if (executable) ++ { ++ last_slash = strrchr(executable, '/'); ++ /* if the last_slash was found, skip it */ ++ if (last_slash) ++last_slash; ++ } ++ + /* Open a fd to compat coredump, if requested and is possible */ + int user_core_fd = -1; + if (setting_MakeCompatCore && ulimit_c != 0) + /* note: checks "user_pwd == NULL" inside; updates core_basename */ +- user_core_fd = open_user_core(uid, fsuid, fsgid, pid, &argv[1]); ++ user_core_fd = open_user_core(uid, fsuid, fsgid, pid, &argv[1], (const char *)last_slash); + +- char *executable = get_executable_at(pid_proc_fd); + if (executable == NULL) + { + /* readlink on /proc/$PID/exe failed, don't create abrt dump dir */ +@@ -1031,9 +1046,6 @@ int main(int argc, char** argv) + return create_user_core(user_core_fd, pid, ulimit_c); + } + +- const char *last_slash = strrchr(executable, '/'); +- /* if the last_slash was found, skip it */ +- if (last_slash) ++last_slash; + + /* ignoring crashes */ + if (executable && is_path_ignored(setting_ignored_paths, executable)) +diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in +index 660c209..f8c0c61 100755 +--- a/src/hooks/abrt-install-ccpp-hook.in ++++ b/src/hooks/abrt-install-ccpp-hook.in +@@ -11,7 +11,7 @@ SAVED_PATTERN_DIR="@VAR_RUN@/abrt" + SAVED_PATTERN_FILE="@VAR_RUN@/abrt/saved_core_pattern" + HOOK_BIN="@libexecdir@/abrt-hook-ccpp" + # Must match percent_specifiers[] order in abrt-hook-ccpp.c: +-PATTERN="|$HOOK_BIN %s %c %p %u %g %t %P %I" ++PATTERN="|$HOOK_BIN %s %c %p %u %g %t %P %I %h %e" + + # core_pipe_limit specifies how many dump_helpers can run at the same time + # 0 - means unlimited, but it's not guaranteed that /proc/ of crashing +-- +1.8.3.1 + diff --git a/SOURCES/0009-lib-Correct-the-syntax-for-gdb-backtrace-command.patch b/SOURCES/0009-lib-Correct-the-syntax-for-gdb-backtrace-command.patch new file mode 100644 index 0000000..253ee5d --- /dev/null +++ b/SOURCES/0009-lib-Correct-the-syntax-for-gdb-backtrace-command.patch @@ -0,0 +1,41 @@ +From 7e9e07dc9ce67777a201beddc8cef32f08293a2b Mon Sep 17 00:00:00 2001 +From: Martin Kutlak +Date: Tue, 24 Jul 2018 10:17:05 +0200 +Subject: [PATCH] lib: Correct the syntax for gdb backtrace command + +abrt-action-generate-backtrace generates backtraces with error message: +A syntax error in expression, near `full'. + +According to the GDB documentation the correct syntax for backtrace +command is: +backtrace [n] +backtrace full [n] + +- sourceware.org/gdb/onlinedocs/gdb/Backtrace.html + +Signed-off-by: Martin Kutlak +--- + src/lib/hooklib.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c +index 135c7cde..b66fc119 100644 +--- a/src/lib/hooklib.c ++++ b/src/lib/hooklib.c +@@ -353,11 +353,11 @@ char *get_backtrace(const char *dump_dir_name, unsigned timeout_sec, const char + /* Limit bt depth. With no limit, gdb sometimes OOMs the machine */ + unsigned bt_depth = 1024; + const char *thread_apply_all = "thread apply all -ascending"; +- const char *full = " full"; ++ const char *full = "full "; + char *bt = NULL; + while (1) + { +- args[bt_cmd_index] = xasprintf("%s backtrace %u%s", thread_apply_all, bt_depth, full); ++ args[bt_cmd_index] = xasprintf("%s backtrace %s%u", thread_apply_all, full, bt_depth); + bt = exec_vp(args, /*redirect_stderr:*/ 1, timeout_sec, NULL); + free(args[bt_cmd_index]); + if ((bt && strnlen(bt, 256*1024) < 256*1024) || bt_depth <= 32) +-- +2.17.2 + diff --git a/SOURCES/0024-dbus-Add-configuration-for-Python3.patch b/SOURCES/0024-dbus-Add-configuration-for-Python3.patch new file mode 100644 index 0000000..4398182 --- /dev/null +++ b/SOURCES/0024-dbus-Add-configuration-for-Python3.patch @@ -0,0 +1,60 @@ +From d5c53fefd25ef90ece1d3481c9af1552d458eb97 Mon Sep 17 00:00:00 2001 +From: Martin Kutlak +Date: Tue, 25 Sep 2018 13:28:24 +0200 +Subject: [PATCH] dbus: Add configuration for Python3 + +abrt-dbus misses a configuration file for Python3 and it instead includes Python2 configuration. + +Related: #1652676 + +Signed-off-by: Martin Kutlak +--- + doc/dbus-configuration/Makefile.am | 11 ++++++++++- + .../com.redhat.problems.configuration.python3.xml.in | 11 +++++++++++ + 3 files changed, 26 insertions(+), 1 deletion(-) + create mode 100644 doc/dbus-configuration/com.redhat.problems.configuration.python3.xml.in + +diff --git a/doc/dbus-configuration/Makefile.am b/doc/dbus-configuration/Makefile.am +index 889713943..a02706de9 100644 +--- a/doc/dbus-configuration/Makefile.am ++++ b/doc/dbus-configuration/Makefile.am +@@ -9,9 +9,18 @@ dist_dbusabrtinterfaces_DATA = \ + com.redhat.problems.configuration.abrt.xml \ + com.redhat.problems.configuration.ccpp.xml \ + com.redhat.problems.configuration.oops.xml \ +- com.redhat.problems.configuration.python.xml \ + com.redhat.problems.configuration.xorg.xml + ++if BUILD_PYTHON2 ++dist_dbusabrtinterfaces_DATA += \ ++ com.redhat.problems.configuration.python.xml ++endif ++ ++if BUILD_PYTHON3 ++dist_dbusabrtinterfaces_DATA += \ ++ com.redhat.problems.configuration.python3.xml ++endif ++ + if BUILD_ADDON_VMCORE + dist_dbusabrtinterfaces_DATA += \ + com.redhat.problems.configuration.vmcore.xml +diff --git a/doc/dbus-configuration/com.redhat.problems.configuration.python3.xml.in b/doc/dbus-configuration/com.redhat.problems.configuration.python3.xml.in +new file mode 100644 +index 000000000..68b6760b2 +--- /dev/null ++++ b/doc/dbus-configuration/com.redhat.problems.configuration.python3.xml.in +@@ -0,0 +1,11 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +-- +2.17.2 + diff --git a/SOURCES/0025-daemon-Fix-double-closed-fd-race-condition.patch b/SOURCES/0025-daemon-Fix-double-closed-fd-race-condition.patch new file mode 100644 index 0000000..5dbdc36 --- /dev/null +++ b/SOURCES/0025-daemon-Fix-double-closed-fd-race-condition.patch @@ -0,0 +1,62 @@ +From b2ec373cfec2dd6a39acfd91ea1a67618ee209ac Mon Sep 17 00:00:00 2001 +From: Martin Kutlak +Date: Tue, 20 Nov 2018 19:03:55 +0100 +Subject: [PATCH] daemon: Fix double closed fd race condition + +When a communication channel is set up between abrtd and abrt-server it uses +abrt_gio_channel_unix_new(). In that function there is a call g_io_channel_set_close_on_unref() [1]. +This function sets whether to close a file/socket/whatever associated with the channel when channel +recieves a final unref and is to be destroyed. + +Calling a close() on fd associated with the channel before/after g_io_channel_unref() +created a double close() race condition when ABRT was processing a lot of crashes at the same time. + +Thank you benzea for the patch. + +Related BZ#1650622 + +1 - https://developer.gnome.org/glib/stable/glib-IO-Channels.html#g-io-channel-get-close-on-unref + +Signed-off-by: Martin Kutlak +--- + src/daemon/abrt-server.c | 1 - + src/daemon/abrtd.c | 4 +--- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/src/daemon/abrt-server.c b/src/daemon/abrt-server.c +index 692ccee38..90068069d 100644 +--- a/src/daemon/abrt-server.c ++++ b/src/daemon/abrt-server.c +@@ -364,7 +364,6 @@ static int run_post_create(const char *dirname, struct response *resp) + g_main_loop_unref(context.main_loop); + g_io_channel_unref(channel_signal); + close(g_signal_pipe[1]); +- close(g_signal_pipe[0]); + + log_notice("Waiting finished"); + +diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c +index 32753966b..fefb2e9c9 100644 +--- a/src/daemon/abrtd.c ++++ b/src/daemon/abrtd.c +@@ -114,7 +114,6 @@ static void stop_abrt_server(struct abrt_server_proc *proc) + + static void dispose_abrt_server(struct abrt_server_proc *proc) + { +- close(proc->fdout); + free(proc->dirname); + + if (proc->watch_id > 0) +@@ -231,8 +230,7 @@ static gboolean abrt_server_output_cb(GIOChannel *channel, GIOCondition conditio + GList *item = g_list_find_custom(s_processes, &fdout, (GCompareFunc)abrt_server_compare_fdout); + if (item == NULL) + { +- log_warning("Closing a pipe fd (%d) without a process assigned", fdout); +- close(fdout); ++ log_warning("Removing an input channel fd (%d) without a process assigned", fdout); + return FALSE; + } + +-- +2.17.2 + diff --git a/SOURCES/0026-cli-list-show-a-hint-about-creating-a-case-in-RHTS.patch b/SOURCES/0026-cli-list-show-a-hint-about-creating-a-case-in-RHTS.patch new file mode 100644 index 0000000..7935013 --- /dev/null +++ b/SOURCES/0026-cli-list-show-a-hint-about-creating-a-case-in-RHTS.patch @@ -0,0 +1,116 @@ +From 16b6963ef5e37805d2587684f90d2c6d5dd4ffdc Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Thu, 6 Dec 2018 17:57:59 +0100 +Subject: [PATCH] cli list: show a hint about creating a case in RHTS + +Adds "Run 'abrt-cli report ...' for creating a case in Red Hat Customer Portal" to +abrt-cli list output. + +Resolves: #1649753 + +(cherry-picked from 7966e5737e8d3af43b1ecdd6a823234b8d25931d) + +Signed-off-by: Jakub Filak +--- + configure.ac | 2 ++ + src/cli/Makefile.am | 3 ++- + src/cli/list.c | 49 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 53 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 76e0f274b..5d70bb9a8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -246,6 +246,7 @@ DEFAULT_PLUGINS_CONF_DIR='${datadir}/${PACKAGE_NAME}/conf.d/plugins' + EVENTS_DIR='${datadir}/libreport/events' + EVENTS_CONF_DIR='${sysconfdir}/libreport/events.d' + JOURNAL_CATALOG_DIR='$(prefix)/lib/systemd/catalog' ++WORKFLOWS_DIR='${datadir}/libreport/workflows' + ENABLE_SOCKET_OR_DBUS='-DENABLE_DBUS=1' + DEFAULT_DUMP_LOCATION_MODE=0751 + DEFAULT_DUMP_DIR_MODE=$($PKG_CONFIG --variable=dd_mode libreport) +@@ -389,6 +390,7 @@ AC_SUBST(PLUGINS_CONF_DIR) + AC_SUBST(DEFAULT_PLUGINS_CONF_DIR) + AC_SUBST(EVENTS_CONF_DIR) + AC_SUBST(JOURNAL_CATALOG_DIR) ++AC_SUBST(WORKFLOWS_DIR) + AC_SUBST(EVENTS_DIR) + AC_SUBST(DEFAULT_DUMP_LOCATION) + AC_SUBST(DEFAULT_DUMP_LOCATION_MODE) +diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am +index 92dc20ab4..a7c76efa3 100644 +--- a/src/cli/Makefile.am ++++ b/src/cli/Makefile.am +@@ -17,7 +17,8 @@ abrt_cli_CFLAGS = \ + -I$(srcdir)/../include \ + -I$(srcdir)/../lib \ + $(LIBREPORT_CFLAGS) \ +- $(POLKIT_AGENT_CFLAGS) ++ $(POLKIT_AGENT_CFLAGS) \ ++ -DWORKFLOWS_DIR=\"${WORKFLOWS_DIR}\" + + if SUGGEST_AUTOREPORTING + abrt_cli_CFLAGS += -DSUGGEST_AUTOREPORTING=1 +diff --git a/src/cli/list.c b/src/cli/list.c +index d069695c6..2c140cb38 100644 +--- a/src/cli/list.c ++++ b/src/cli/list.c +@@ -77,6 +77,55 @@ static void print_crash(problem_data_t *problem_data, int detailed, int text_siz + /*names_to_skip:*/ NULL, + /*max_text_size:*/ text_size, + MAKEDESC_SHOW_ONLY_LIST | MAKEDESC_SHOW_URLS); ++ ++ /* ++ * If the problem is reportable and has not yet been reported into RHTS ++ * and there is at least one applicable Workflow which contains ++ * 'report_RHTSupport' event, then append a short message informing ++ * user that he can create a new case in Red Hat Customer Portal. ++ */ ++ const char *const not_reportable = problem_data_get_content_or_NULL(problem_data, FILENAME_NOT_REPORTABLE); ++ const char *const reported_to = not_reportable ? NULL : problem_data_get_content_or_NULL(problem_data, FILENAME_REPORTED_TO); ++ report_result_t *const report = !reported_to ? NULL : find_in_reported_to_data(reported_to, "RHTSupport"); ++ ++ if (!not_reportable && !report) ++ { ++ /* The lines below should be replaced by something simpler, I'd ++ * like to see: ++ * GHashTable *possible_worfklows = load_applicable_workflows_for_dump(); ++ * ++ * However, this feature (rhbz#1055565) is intended for RHEL only ++ * and I'm not sure whether it's worth to file another bug against ++ * libreport and try to improve libreport public API. ++ */ ++ const char *const dump_dir_name = problem_data_get_content_or_NULL(problem_data, CD_DUMPDIR); ++ GList *const wf_names = list_possible_events_glist(dump_dir_name, "workflow"); ++ GHashTable *const possible_workflows = load_workflow_config_data_from_list(wf_names, WORKFLOWS_DIR); ++ g_list_free_full(wf_names, free); ++ ++ int event_found = 0; ++ ++ GHashTableIter iter; ++ gpointer key = NULL; ++ gpointer value = NULL; ++ ++ g_hash_table_iter_init(&iter, possible_workflows); ++ while (!event_found && g_hash_table_iter_next(&iter, &key, &value)) ++ { ++ GList *const event_names = wf_get_event_names((workflow_t *)value); ++ event_found = !!g_list_find_custom(event_names, "report_RHTSupport", (GCompareFunc)g_strcmp0); ++ g_list_free_full(event_names, free); ++ } ++ ++ g_hash_table_destroy(possible_workflows); ++ ++ if (event_found) ++ { ++ char *tmp = xasprintf("%sRun 'abrt-cli report %s' for creating a case in Red Hat Customer Portal\n", desc, dump_dir_name); ++ free(desc); ++ desc = tmp; ++ } ++ } + } + fputs(desc, stdout); + free(desc); +-- +2.17.2 + diff --git a/SOURCES/0027-cli-mark-the-suggestion-text-for-translation.patch b/SOURCES/0027-cli-mark-the-suggestion-text-for-translation.patch new file mode 100644 index 0000000..0a7ad33 --- /dev/null +++ b/SOURCES/0027-cli-mark-the-suggestion-text-for-translation.patch @@ -0,0 +1,28 @@ +From c0aa44a93bfdc701839d2c70568224521a6d5c5b Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Thu, 6 Dec 2018 18:00:45 +0100 +Subject: [PATCH] cli: mark the suggestion text for translation + +(cherry-picked from 187530c4df6971927d1e099584be5b418ab2725b) + +Signed-off-by: Jakub Filak +--- + src/cli/list.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cli/list.c b/src/cli/list.c +index 2c140cb38..f16ce8c0d 100644 +--- a/src/cli/list.c ++++ b/src/cli/list.c +@@ -121,7 +121,7 @@ static void print_crash(problem_data_t *problem_data, int detailed, int text_siz + + if (event_found) + { +- char *tmp = xasprintf("%sRun 'abrt-cli report %s' for creating a case in Red Hat Customer Portal\n", desc, dump_dir_name); ++ char *tmp = xasprintf(_("%sRun 'abrt-cli report %s' for creating a case in Red Hat Customer Portal\n"), desc, dump_dir_name); + free(desc); + desc = tmp; + } +-- +2.17.2 + diff --git a/SOURCES/0028-cli-get-list-of-possible-workflows-for-problem_data_.patch b/SOURCES/0028-cli-get-list-of-possible-workflows-for-problem_data_.patch new file mode 100644 index 0000000..cdc3285 --- /dev/null +++ b/SOURCES/0028-cli-get-list-of-possible-workflows-for-problem_data_.patch @@ -0,0 +1,31 @@ +From 58dcdd2f2780263e79a82ecebb27b000b0583979 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Thu, 6 Dec 2018 18:01:13 +0100 +Subject: [PATCH] cli: get list of possible workflows for problem_data_t + +File system access is not possible, so we have to rely on the data +transfered via D-Bus. + +(cherry-picked from f2055f8c6469b590172d94e9ea530243af89f028) + +Signed-off-by: Jakub Filak +--- + src/cli/list.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cli/list.c b/src/cli/list.c +index f16ce8c0d..e688d2f49 100644 +--- a/src/cli/list.c ++++ b/src/cli/list.c +@@ -99,7 +99,7 @@ static void print_crash(problem_data_t *problem_data, int detailed, int text_siz + * libreport and try to improve libreport public API. + */ + const char *const dump_dir_name = problem_data_get_content_or_NULL(problem_data, CD_DUMPDIR); +- GList *const wf_names = list_possible_events_glist(dump_dir_name, "workflow"); ++ GList *const wf_names = list_possible_events_problem_data_glist(problem_data, dump_dir_name, "workflow"); + GHashTable *const possible_workflows = load_workflow_config_data_from_list(wf_names, WORKFLOWS_DIR); + g_list_free_full(wf_names, free); + +-- +2.17.2 + diff --git a/SOURCES/0056-a-a-list-dsos-Fix-decoding-of-strings-from-rpm.patch b/SOURCES/0056-a-a-list-dsos-Fix-decoding-of-strings-from-rpm.patch new file mode 100644 index 0000000..7de9bb1 --- /dev/null +++ b/SOURCES/0056-a-a-list-dsos-Fix-decoding-of-strings-from-rpm.patch @@ -0,0 +1,57 @@ +From f6e07167e8769219471b10a3c20fa64ada8ce61f Mon Sep 17 00:00:00 2001 +From: Martin Kutlak +Date: Fri, 12 Jul 2019 17:46:48 +0200 +Subject: [PATCH] a-a-list-dsos: Fix decoding of strings from rpm + +rpm used to return bytes but that was changed to return strings in recent release. + +Related: rhbz#1693751 +Resolves: rhbz#1694970 + +Signed-off-by: Martin Kutlak +--- + abrt.spec.in | 1 + + src/plugins/abrt-action-list-dsos | 13 ++++++------- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/abrt.spec.in b/abrt.spec.in +index 03f1a67d..b9c9d5f1 100644 +--- a/abrt.spec.in ++++ b/abrt.spec.in +@@ -233,6 +233,7 @@ Requires: python2-libreport + %if %{with python3} + Requires: python3-libreport + %endif # with python3 ++Requires: rpm >= 4.14.2-11 + + %description addon-ccpp + This package contains %{name}'s C/C++ analyzer plugin. +diff --git a/src/plugins/abrt-action-list-dsos b/src/plugins/abrt-action-list-dsos +index adb228a4..8bf5415e 100644 +--- a/src/plugins/abrt-action-list-dsos ++++ b/src/plugins/abrt-action-list-dsos +@@ -84,15 +84,14 @@ if __name__ == "__main__": + outname = None + + vendor = h[rpm.RPMTAG_VENDOR] +- if vendor != None: +- vendor = vendor.decode('utf-8') ++ rpmtag_nevra = h[rpm.RPMTAG_NEVRA] + + outfile.write("%s %s (%s) %s\n" % +- (path, +- h[rpm.RPMTAG_NEVRA].decode('utf-8'), +- vendor, +- h[rpm.RPMTAG_INSTALLTIME]) +- ) ++ (path, ++ rpmtag_nevra, ++ vendor, ++ h[rpm.RPMTAG_INSTALLTIME]) ++ ) + + except Exception as ex: + error_msg_and_die("Can't get the DSO list: %s" % ex) +-- +2.21.0 + diff --git a/SOURCES/0057-a-a-save-package-data-Use-regexps-to-match-interpret.patch b/SOURCES/0057-a-a-save-package-data-Use-regexps-to-match-interpret.patch new file mode 100644 index 0000000..e3b365a --- /dev/null +++ b/SOURCES/0057-a-a-save-package-data-Use-regexps-to-match-interpret.patch @@ -0,0 +1,118 @@ +From caf03304c98dc84086b2f4f60be4b41fc76f31e6 Mon Sep 17 00:00:00 2001 +From: Martin Kutlak +Date: Wed, 4 Mar 2020 16:41:28 +0100 +Subject: [PATCH] a-a-save-package-data: Use regexps to match interpreters + +Instead of adding more and more interpreters to the list which +gets outdated after a while, we can utilize regular expressions. + +User will still have an option to set Interpreters in config file to +match any other interpreters. + +The regexes should cover interpreters: + +Python: + * python + * python2 + * python2.7 + * python3 + * python3.8 + * platform-python + * platform-python3 + * platform-python3.8 + +Perl: + * perl + * perl5.30.1 + +PHP: + * php + * php-cgi + +R +retrace.fedoraproject.org/faf/reports/2832480 +tcl +retrace.fedoraproject.org/faf/reports/2555398 + +The regexes should cover interpreters: +R: + * R + +tcl: + * tclsh + * tclsh8.6 + +Tests require will-crash and perl-interpreter installed. + +Resolves: rhbz#1798494 + +Signed-off-by: Martin Kutlak +--- + src/daemon/abrt-action-save-package-data.c | 39 ++++++++- + 1 files change, 38 insertions(+), 1 deletions(-) + +diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c +index 21b4c97d..6ced7971 100644 +--- a/src/daemon/abrt-action-save-package-data.c ++++ b/src/daemon/abrt-action-save-package-data.c +@@ -17,11 +17,47 @@ + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #include ++#include + #include "libabrt.h" + #include "rpm.h" + + #define GPG_CONF "gpg_keys.conf" + ++/** ++ "python3.4, python3.5, python3.6, python3.7, perl, perl5.16.2" ++ * The regexes should cover interpreters with basename: ++ * Python: ++ * python ++ * python2 ++ * python3 ++ * python2.7 ++ * python3.8 ++ * platform-python ++ * platform-python3 ++ * platform-python3.8 ++ * ++ * Perl: ++ * perl ++ * perl5.30.1 ++ * ++ * PHP: ++ * php ++ * php-cgi ++ * ++ * R: ++ * R ++ * ++ * tcl: ++ * tclsh ++ * tclsh8.6 ++ **/ ++#define DEFAULT_INTERPRETERS_REGEX \ ++ "^(perl ([[:digit:]][.][[:digit:]]+[.][[:digit:]])? |" \ ++ "php (-cgi)? |" \ ++ "(platform-)? python ([[:digit:]]([.][[:digit:]])?)? |" \ ++ "R |" \ ++ "tclsh ([[:digit:]][.][[:digit:]])?)$" ++ + static bool settings_bOpenGPGCheck = false; + static GList *settings_setOpenGPGPublicKeys = NULL; + static GList *settings_setBlackListedPkgs = NULL; +@@ -304,7 +340,8 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch + /* if basename is known interpreter, we want to blame the running script + * not the interpreter + */ +- if (g_list_find_custom(settings_Interpreters, basename, (GCompareFunc)g_strcmp0)) ++ if (g_regex_match_simple(DEFAULT_INTERPRETERS_REGEX, basename, G_REGEX_EXTENDED, /*MatchFlags*/0) || ++ g_list_find_custom(settings_Interpreters, basename, (GCompareFunc)g_strcmp0)) + { + struct pkg_envra *script_pkg = get_script_name(cmdline, &executable, chroot); + /* executable may have changed, check it again */ +-- +2.25.1 + diff --git a/SOURCES/0058-harvest_vmcore-Fix-missing-argument-error-during-del.patch b/SOURCES/0058-harvest_vmcore-Fix-missing-argument-error-during-del.patch new file mode 100644 index 0000000..a37e8b4 --- /dev/null +++ b/SOURCES/0058-harvest_vmcore-Fix-missing-argument-error-during-del.patch @@ -0,0 +1,42 @@ +From 11869ec9290a32c028d9d2741a7466206b635f59 Mon Sep 17 00:00:00 2001 +From: Jake Daryll Obina +Date: Mon, 25 Jun 2018 11:52:11 +0800 +Subject: [PATCH] harvest_vmcore: Fix missing argument error during + delete_and_close() + +delete_and_close() requires a directory name argument and it is being called +without one. This argument is really not necessary though since the directory +name is already saved in the directory object (can be queried via the directory +object's name attribute), and it is the saved directory that is always deleted +regardless of the argument passed in. + +Signed-off-by: Jake Daryll Obina +--- + src/hooks/abrt_harvest_vmcore.py.in | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/hooks/abrt_harvest_vmcore.py.in b/src/hooks/abrt_harvest_vmcore.py.in +index 7d4bba52..66c3ad37 100644 +--- a/src/hooks/abrt_harvest_vmcore.py.in ++++ b/src/hooks/abrt_harvest_vmcore.py.in +@@ -128,13 +128,15 @@ def create_abrtd_info(dest, uuid): + return dd + + +-def delete_and_close(dd, dd_dirname): ++def delete_and_close(dd): + """ + Deletes the given dump directory and closes it. + + dd - dump directory object +- dd_dirname - full path to dump directory + """ ++ # Save the directory name as the directory object could be destroyed during ++ # delete(). ++ dd_dirname = dd.name + if not dd.delete() == 0: + sys.stderr.write("Unable to delete '%s'\n" % (dd_dirname)) + return +-- +2.25.1 + diff --git a/SOURCES/1000-Add-autogen.sh.patch b/SOURCES/1000-Add-autogen.sh.patch new file mode 100644 index 0000000..90dfadd --- /dev/null +++ b/SOURCES/1000-Add-autogen.sh.patch @@ -0,0 +1,118 @@ +From adb55b0cb2711baf45c78947fecfa972392023fe Mon Sep 17 00:00:00 2001 +From: Martin Kutlak +Date: Fri, 30 Nov 2018 13:36:19 +0100 +Subject: [PATCH] Add autogen.sh + +Signed-off-by: Martin Kutlak +--- + autogen.sh | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 98 insertions(+) + create mode 100755 autogen.sh + +diff --git a/autogen.sh b/autogen.sh +new file mode 100755 +index 00000000..dbbcd885 +--- /dev/null ++++ b/autogen.sh +@@ -0,0 +1,98 @@ ++#!/bin/sh ++ ++print_help() ++{ ++cat << EOH ++Prepares the source tree for configuration ++ ++Usage: ++ autogen.sh [sysdeps [--install]] ++ ++Options: ++ ++ sysdeps prints out all dependencies ++ --install install all dependencies ('sudo yum install \$DEPS') ++ ++EOH ++} ++ ++parse_build_requires_from_spec_file() ++{ ++ PACKAGE=$1 ++ TEMPFILE=$(mktemp -u --suffix=.spec) ++ sed 's/@PACKAGE_VERSION@/1/' < $PACKAGE.spec.in | sed 's/@.*@//' > $TEMPFILE ++ rpmspec -P $TEMPFILE | grep "^\(Build\)\?Requires:" | \ ++ tr -s " " | tr "," "\n" | cut -f2- -d " " | \ ++ grep -v "\(^\|python[23]-\)"$PACKAGE | sort -u | sed -E 's/^(.*) (.*)$/"\1 \2"/' | tr \" \' ++ rm $TEMPFILE ++} ++ ++list_build_dependencies() ++{ ++ local BUILD_SYSTEM_DEPS_LIST="gettext-devel" ++ echo $BUILD_SYSTEM_DEPS_LIST $(parse_build_requires_from_spec_file abrt) ++} ++ ++case "$1" in ++ "--help"|"-h") ++ print_help ++ exit 0 ++ ;; ++ "sysdeps") ++ DEPS_LIST=$(list_build_dependencies) ++ if [ "$2" == "--install" ]; then ++ set -x verbose ++ eval sudo dnf install --setopt=strict=0 $DEPS_LIST ++ set +x verbose ++ else ++ echo $DEPS_LIST ++ fi ++ exit 0 ++ ;; ++ *) ++ echo "Running gen-version" ++ ./gen-version ++ ++ mkdir -p m4 ++ echo "Creating m4/aclocal.m4 ..." ++ test -r m4/aclocal.m4 || touch m4/aclocal.m4 ++ ++ echo "Running autopoint" ++ autopoint --force || exit 1 ++ ++ echo "Running intltoolize..." ++ intltoolize --force --copy --automake || exit 1 ++ ++ echo "Running aclocal..." ++ aclocal || exit 1 ++ ++ echo "Running libtoolize..." ++ libtoolize || exit 1 ++ ++ echo "Running autoheader..." ++ autoheader || return 1 ++ ++ echo "Running autoconf..." ++ autoconf --force || exit 1 ++ ++ echo "Running automake..." ++ automake --add-missing --force --copy || exit 1 ++ ++ echo "Running configure ..." ++ if [ 0 -eq $# ]; then ++ ./configure \ ++ --prefix=/usr \ ++ --mandir=/usr/share/man \ ++ --infodir=/usr/share/info \ ++ --sysconfdir=/etc \ ++ --localstatedir=/var \ ++ --sharedstatedir=/var/lib \ ++ --enable-native-unwinder \ ++ --enable-dump-time-unwind \ ++ --enable-debug ++ echo "Configured for local debugging ..." ++ else ++ ./configure "$@" ++ fi ++ ;; ++esac +-- +2.18.1 + diff --git a/SPECS/abrt.spec b/SPECS/abrt.spec new file mode 100644 index 0000000..78a0c3e --- /dev/null +++ b/SPECS/abrt.spec @@ -0,0 +1,1991 @@ +# http://fedoraproject.org/wiki/Packaging:Guidelines#PIE +# http://fedoraproject.org/wiki/Hardened_Packages +%global _hardened_build 1 + +%if 0%{?fedora} || 0%{?rhel} > 7 +# Enable python3 build by default +%bcond_without python3 +%else +%bcond_with python3 +%endif + +%if 0%{?rhel} > 7 || 0%{?fedora} > 28 +# Disable python2 build by default +%bcond_with python2 +%else +%bcond_without python2 +%endif + +%if 0%{?rhel}%{?suse_version} + %bcond_with bodhi +%else + %bcond_without bodhi +%endif + +# build abrt-atomic subpackage +%bcond_without atomic + +# rpmbuild --define 'desktopvendor mystring' +%if "x%{desktopvendor}" == "x" + %define desktopvendor %(source /etc/os-release; echo ${ID}) +%endif + +%if 0%{?suse_version} +%define dbus_devel dbus-1-devel +%define libjson_devel libjson-devel +%define nss_devel mozilla-nss-devel +%define shadow_utils pwdutils +%else +%define dbus_devel dbus-devel +%define libjson_devel json-c-devel +%define nss_devel nss-devel +%define shadow_utils shadow-utils +%endif + +# do not append package version to doc directory of subpackages in F20 and later; rhbz#993656 +%if "%{_pkgdocdir}" == "%{_docdir}/%{name}" + %define docdirversion %{nil} +%else + %define docdirversion -%{version} +%endif + +%define libreport_ver 2.9.3 +%define satyr_ver 0.24 + +Summary: Automatic bug detection and reporting tool +Name: abrt +Version: 2.10.9 +Release: 12%{?dist} +License: GPLv2+ +URL: https://abrt.readthedocs.org/ +Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz + +Patch0001: 0001-Remove-dependency-on-deprecated-nss-pem.patch +#Patch0002: 0002-testsuite-add-test-for-core-template-substitution.patch +Patch0003: 0003-ccpp-add-h-and-e-parameter-into-abrt-hook-ccpp.patch +#Patch0004: 0004-spec-remove-duplicated-python3-devel.patch +#Patch0005: 0005-spec-Switch-hardcoded-python3-shebangs-into-the-__py.patch +#Patch0006: 0006-spec-sed-abrt-action-find-bodhi-update-only-if-with-.patch +#Patch0007: 0007-Sed-shebang-only-if-have_kexec_tools-1-in-some-tools.patch +#Patch0008: 0008-spec-switch-Python-tests-to-use-__python3.patch +Patch0009: 0009-lib-Correct-the-syntax-for-gdb-backtrace-command.patch +#git format-patch 7e9e07dc -N --start-number 10 --topo-order +#Patch0010: 0010-testsuite-fix-path-for-augeas-in-ccpp-plugin-hook.patch +#Patch0011: 0011-testsuite-Remove-abrt-Python2-packages.patch +#Patch0012: 0012-testsuite-Force-grep-to-process-binary-files.patch +#Patch0013: 0013-testsuite-Force-grep-to-process-binary-files-2.patch +#Patch0014: 0014-testsuite-Disable-Python2-integration-tests.patch +#Patch0015: 0015-testsuite-Migrate-integeration-tests-to-Python3.patch +#Patch0016: 0016-testsuite-Open-files-in-binary-mode.patch +#Patch0017: 0017-testsuite-Test-Python3-with-dbus-configuration.patch +#Patch0018: 0018-testsuite-Migrate-helper-scripts-in-tests-to-Python3.patch +#Patch0019: 0019-testsuite-Fix-for-tests-incorrectly-marked-as-failed.patch +#Patch0020: 0020-revert-spec-disable-addon-vmcore-on-aarch64.patch +#Patch0021: 0021-spec-turn-on-enable-native-unwinder-aarch64.patch +#git format-patch b13f52bd5 -N --start-number 21 --topo-order +#Patch0022: 0022-spec-Set-PYTHON-to-python3-during-install.patch +#Patch0023: 0023-spec-Remove-forgotten-have_kexec_tools-check.patch +Patch0024: 0024-dbus-Add-configuration-for-Python3.patch +Patch0025: 0025-daemon-Fix-double-closed-fd-race-condition.patch +#git format-patch 1725bd258 -N --start-number 26 --topo-order +Patch0026: 0026-cli-list-show-a-hint-about-creating-a-case-in-RHTS.patch +Patch0027: 0027-cli-mark-the-suggestion-text-for-translation.patch +Patch0028: 0028-cli-get-list-of-possible-workflows-for-problem_data_.patch +#Patch0029: 0029-spec-Add-explicit-package-version-requirement-of-abr.patch +#git format-patch 2.10.9-10.el8 -N --start-number 30 --topo-order +#Patch030: 0030-testsuite-dbus-element-handling-Use-external-script.patch +#Patch031: 0031-testsuite-reporter-upload-ssh-keys-Don-t-test-curl-o.patch +#Patch032: 0032-testsuite-abrt-action-ureport-Port-fakefaf-to-Python.patch +#Patch033: 0033-testsuite-bugzilla-private-reports-Port-pyserve-to-P.patch +#Patch034: 0034-testsuite-ureport-attachments-Port-pyserve-to-Python.patch +#Patch035: 0035-testsuite-upload-ftp-Drop-in-tree-copy-of-pyftpdlib.patch +#Patch036: 0036-testsuite-rhts-test-Port-pyserve-to-Python-3.patch +#Patch037: 0037-testsuite-dumpdir_completeness-Batch-import-keys.patch +#Patch038: 0038-testsuite-Add-initial-test-order-for-RHEL-8.patch +#Patch039: 0039-testsuite-bugzilla-bt-reattach-Port-pyserve-to-Pytho.patch +#Patch040: 0040-testsuite-reporter-mantisbt-Port-pyserve-to-Python3.patch +#Patch041: 0041-testsuite-reporter-mantisbt-Fix-query-header.patch +#Patch042: 0042-testsuite-abrt-action-ureport-Fix-fakefaf.py.patch +#Patch043: 0043-testsuite-aux-Remove-Python-3-related-packages.patch +#Patch044: 0044-aux-lib.sh-add-generate_python3_segfault.patch +#Patch045: 0045-dont-blame-interpret-switch-to-generate_python3_segf.patch +#Patch046: 0046-duptest-core_backtrace-use-python3-on-rhel8.patch +#Patch047: 0047-ureport-auth-modify-a-pattern-to-match-error-message.patch +#Patch048: 0048-testsuite-Add-abrt-auto-reporting-sanity-authenticat.patch +#Patch049: 0049-runtests-new-test-for-PrivateReports.patch +#Patch050: 0050-dumpoops-make-sure-hostname-matches-in-oops_full_hos.patch +#Patch051: 0051-oops-processing-fixed-oops1.test-handling.-reworked-.patch +#Patch052: 0052-meaningful-logs-check-relative-counts-of-lines-inste.patch +#Patch053: 0053-non-fatal-mce-prepare-oops1.test-from-template-befor.patch +#Patch054: 0054-oops-processing-fix-for-rhel-8.patch +#Patch055: 0055-dumpoops-remove-sed-of-file-not-existing-and-not-nee.patch +Patch056: 0056-a-a-list-dsos-Fix-decoding-of-strings-from-rpm.patch +#git format-patch 2.10.9-11.el8 -N --start-number 57 --topo-order +Patch057: 0057-a-a-save-package-data-Use-regexps-to-match-interpret.patch +Patch058: 0058-harvest_vmcore-Fix-missing-argument-error-during-del.patch +#git format-patch 2.10.9-12.el8 -N --start-number 59 --topo-order + +# autogen.sh is need to regenerate all the Makefile files +Patch1000: 1000-Add-autogen.sh.patch + +BuildRequires: %{dbus_devel} +BuildRequires: gtk3-devel +BuildRequires: glib2-devel >= 2.43 +BuildRequires: rpm-devel >= 4.6 +BuildRequires: desktop-file-utils +BuildRequires: libnotify-devel +#why? BuildRequires: file-devel +BuildRequires: gettext +BuildRequires: libxml2-devel +BuildRequires: intltool +BuildRequires: libtool +BuildRequires: %{nss_devel} +BuildRequires: asciidoc +BuildRequires: doxygen +BuildRequires: xmlto +BuildRequires: libreport-devel >= %{libreport_ver} +BuildRequires: satyr-devel >= %{satyr_ver} +BuildRequires: augeas +BuildRequires: libselinux-devel +BuildRequires: sed +%if %{with python2} +BuildRequires: python2-devel +BuildRequires: python2-systemd +BuildRequires: python2-argcomplete +BuildRequires: python2-argh +BuildRequires: python2-humanize +%endif # with python2 +%if %{with python3} +BuildRequires: python3-devel +BuildRequires: python3-systemd +BuildRequires: python3-argcomplete +BuildRequires: python3-argh +BuildRequires: python3-humanize +%endif # with python3 +BuildRequires: git + +Requires: libreport >= %{libreport_ver} +Requires: satyr >= %{satyr_ver} +# these only exist on suse +%if 0%{?suse_version} +BuildRequires: dbus-1-glib-devel +Requires: dbus-1-glib +%endif + +%{?systemd_requires} +Requires: systemd +Requires: %{name}-libs = %{version}-%{release} +Requires: python3-%{name} = %{version}-%{release} +Requires(pre): %{shadow_utils} +%if %{with python2} +Requires: python2-augeas +Requires: python2-dbus +%endif # with python2 +%if %{with python3} +Requires: python3-augeas +Requires: python3-dbus +%endif # with python3 +%ifarch aarch64 i686 x86_64 +Requires: dmidecode +%endif +Requires: libreport-plugin-ureport +%if 0%{?rhel} +Requires: libreport-plugin-rhtsupport +%endif +%if 0%{?fedora} +Requires: libreport-plugin-systemd-journal +%endif + +#gui +BuildRequires: libreport-gtk-devel >= %{libreport_ver} +BuildRequires: gsettings-desktop-schemas-devel >= 3.15 +#addon-ccpp +BuildRequires: gdb-headless +BuildRequires: libcap-devel +#addon-kerneloops +BuildRequires: systemd-devel +BuildRequires: %{libjson_devel} +%if %{with bodhi} +# plugin-bodhi +BuildRequires: libreport-web-devel >= %{libreport_ver} +%endif +#desktop +#Default config of addon-ccpp requires gdb +BuildRequires: gdb-headless +#dbus +BuildRequires: polkit-devel +%if %{with python2} +#python2-abrt +BuildRequires: python2-sphinx +BuildRequires: python2-libreport +#python2-abrt-doc +BuildRequires: python2-devel +%endif # with python2 +%if %{with python3} +#python3-abrt +BuildRequires: python3-nose +BuildRequires: python3-sphinx +BuildRequires: python3-libreport +#python3-abrt-doc +BuildRequires: python3-devel +%endif # with python3 + +%description +%{name} is a tool to help users to detect defects in applications and +to create a bug report with all information needed by maintainer to fix it. +It uses plugin system to extend its functionality. + +%package libs +Summary: Libraries for %{name} + +%description libs +Libraries for %{name}. + +%package devel +Summary: Development libraries for %{name} +Requires: abrt-libs = %{version}-%{release} + +%description devel +Development libraries and headers for %{name}. + +%package gui-libs +Summary: Libraries for %{name}-gui +Requires: %{name}-libs = %{version}-%{release} + +%description gui-libs +Libraries for %{name}-gui. + +%package gui-devel +Summary: Development libraries for %{name}-gui +Requires: abrt-gui-libs = %{version}-%{release} + +%description gui-devel +Development libraries and headers for %{name}-gui. + +%package gui +Summary: %{name}'s gui +Requires: %{name} = %{version}-%{release} +Requires: %{name}-dbus = %{version}-%{release} +Requires: gnome-abrt +Requires: gsettings-desktop-schemas >= 3.15 +# we used to have abrt-applet, now abrt-gui includes it: +Provides: abrt-applet = %{version}-%{release} +Obsoletes: abrt-applet < 0.0.5 +Conflicts: abrt-applet < 0.0.5 +Requires: abrt-libs = %{version}-%{release} +Requires: abrt-gui-libs = %{version}-%{release} + +%description gui +GTK+ wizard for convenient bug reporting. + +%package addon-coredump-helper +Summary: %{name}'s /proc/sys/kernel/core_pattern helper +Requires: abrt-libs = %{version}-%{release} + +%description addon-coredump-helper +This package contains hook for C/C++ crashed programs. + +%package addon-ccpp +Summary: %{name}'s C/C++ addon +Requires: cpio +Requires: gdb-headless +Requires: elfutils +%if 0%{!?rhel:1} +# abrt-action-perform-ccpp-analysis wants to run analyze_RetraceServer: +Requires: %{name}-retrace-client +%endif +Requires: %{name} = %{version}-%{release} +Requires: %{name}-addon-coredump-helper = %{version}-%{release} +Requires: abrt-libs = %{version}-%{release} +%if %{with python2} +Requires: python2-libreport +%endif # with python2 +%if %{with python3} +Requires: python3-libreport +%endif # with python3 +Requires: rpm >= 4.14.2-11 + +%description addon-ccpp +This package contains %{name}'s C/C++ analyzer plugin. + +%package addon-upload-watch +Summary: %{name}'s upload addon +Requires: %{name} = %{version}-%{release} +Requires: abrt-libs = %{version}-%{release} + +%description addon-upload-watch +This package contains hook for uploaded problems. + +%package retrace-client +Summary: %{name}'s retrace client +Requires: %{name} = %{version}-%{release} +Requires: xz +Requires: tar +Requires: p11-kit-trust + +%description retrace-client +This package contains the client application for Retrace server +which is able to analyze C/C++ crashes remotely. + +%package addon-kerneloops +Summary: %{name}'s kerneloops addon +Requires: curl +Requires: %{name} = %{version}-%{release} +%if 0%{!?rhel:1} +Requires: libreport-plugin-kerneloops >= %{libreport_ver} +%endif +Requires: abrt-libs = %{version}-%{release} + +%description addon-kerneloops +This package contains plugin for collecting kernel crash information from +system log. + +%package addon-xorg +Summary: %{name}'s Xorg addon +Requires: curl +Requires: %{name} = %{version}-%{release} +Requires: abrt-libs = %{version}-%{release} + +%description addon-xorg +This package contains plugin for collecting Xorg crash information from Xorg +log. + +%package addon-vmcore +Summary: %{name}'s vmcore addon +Requires: %{name} = %{version}-%{release} +Requires: abrt-addon-kerneloops +Requires: kexec-tools +%if %{with python2} +Requires: python2-abrt +Requires: python2-augeas +%endif # with python2 +%if %{with python3} +Requires: python3-abrt +Requires: python3-augeas +%endif # with python3 +Requires: util-linux + +%description addon-vmcore +This package contains plugin for collecting kernel crash information from +vmcore files. + +%package addon-pstoreoops +Summary: %{name}'s pstore oops addon +Requires: %{name} = %{version}-%{release} +Requires: abrt-libs = %{version}-%{release} +Requires: abrt-addon-kerneloops +Obsoletes: abrt-addon-uefioops + +%description addon-pstoreoops +This package contains plugin for collecting kernel oopses from pstore storage. + +%if %{with bodhi} +%package plugin-bodhi +Summary: %{name}'s bodhi plugin +Requires: %{name} = %{version}-%{release} +Obsoletes: libreport-plugin-bodhi > 0.0.1 +Provides: libreport-plugin-bodhi = %{version}-%{release} + +%description plugin-bodhi +Search for a new updates in bodhi server. +%endif + +%if %{with python2} +%package -n python2-abrt-addon +Summary: %{name}'s addon for catching and analyzing Python exceptions +Requires: %{name} = %{version}-%{release} +Requires: python2-systemd +Requires: python2-abrt +# Remove before F30 +Provides: abrt-addon-python = %{version}-%{release} +Provides: abrt-addon-python%{?_isa} = %{version}-%{release} +Obsoletes: abrt-addon-python < 2.10.4 + +%description -n python2-abrt-addon +This package contains python hook and python analyzer plugin for handling +uncaught exception in python programs. + +%package -n python2-abrt-container-addon +Summary: %{name}'s container addon for catching Python 2 exceptions +Conflicts: python2-abrt-addon +Requires: container-exception-logger + +%description -n python2-abrt-container-addon +This package contains python 2 hook and handling uncaught exception in python 2 +programs in container. +%endif # with python2 + +%if %{with python3} +%package -n python3-abrt-addon +Summary: %{name}'s addon for catching and analyzing Python 3 exceptions +Requires: %{name} = %{version}-%{release} +Requires: python3-systemd +Requires: python3-abrt +# Remove before F30 +Provides: abrt-addon-python3 = %{version}-%{release} +Provides: abrt-addon-python3%{?_isa} = %{version}-%{release} +Obsoletes: abrt-addon-python3 < 2.10.4 + +%description -n python3-abrt-addon +This package contains python 3 hook and python analyzer plugin for handling +uncaught exception in python 3 programs. + +%package -n python3-abrt-container-addon +Summary: %{name}'s container addon for catching Python 3 exceptions +Conflicts: python3-abrt-addon +Requires: container-exception-logger + +%description -n python3-abrt-container-addon +This package contains python 3 hook and handling uncaught exception in python 3 +programs in container. +%endif # with python3 + +%package plugin-sosreport +Summary: %{name}'s plugin for building automatic sosreports +Requires: sos +Requires: %{name} = %{version}-%{release} + +%description plugin-sosreport +This package contains a configuration snippet to enable automatic generation +of sosreports for abrt events. + +%package plugin-machine-id +Summary: %{name}'s plugin to generate machine_id based off dmidecode +Requires: %{name} = %{version}-%{release} + +%description plugin-machine-id +This package contains a configuration snippet to enable automatic generation +of machine_id for abrt events. + +%package tui +Summary: %{name}'s command line interface +Requires: %{name} = %{version}-%{release} +Requires: libreport-cli >= %{libreport_ver} +Requires: abrt-libs = %{version}-%{release} +Requires: abrt-dbus + +%description tui +This package contains a simple command line client for processing abrt reports +in command line environment. + +%if %{with python3} +%package cli-ng +Summary: %{name}'s improved command line interface +Requires: %{name} = %{version}-%{release} +Requires: libreport-cli >= %{libreport_ver} +Requires: abrt-libs = %{version}-%{release} +Requires: abrt-dbus +Requires: python3-abrt +Requires: abrt-addon-ccpp +Requires: python3-argh +Requires: python3-argcomplete +Requires: python3-humanize + +%description cli-ng +New generation command line interface for ABRT +%endif # with python3 + +%package cli +Summary: Virtual package to make easy default installation on non-graphical environments +Requires: %{name} = %{version}-%{release} +Requires: abrt-tui +Requires: abrt-addon-kerneloops +Requires: abrt-addon-pstoreoops +Requires: abrt-addon-vmcore +Requires: abrt-addon-ccpp +%if %{with python2} +Requires: python2-abrt-addon +%endif # with python2 +%if %{with python3} +Requires: python3-abrt-addon +%endif # with python3 +Requires: abrt-addon-xorg +%if 0%{?rhel} +Requires: libreport-rhel >= %{libreport_ver} +Requires: libreport-plugin-rhtsupport >= %{libreport_ver} +%else +Requires: abrt-retrace-client +%if %{with bodhi} +Requires: abrt-plugin-bodhi +%endif +%if 0%{!?suse_version:1} +Requires: libreport-plugin-bugzilla >= %{libreport_ver} +%endif +Requires: libreport-plugin-logger >= %{libreport_ver} +Requires: libreport-plugin-ureport >= %{libreport_ver} +%if 0%{?fedora} +Requires: libreport-fedora >= %{libreport_ver} +%endif +%endif + +%description cli +Virtual package to install all necessary packages for usage from command line +environment. + +%package desktop +Summary: Virtual package to make easy default installation on desktop environments +# This package gets installed when anything requests bug-buddy - +# happens when users upgrade Fn to Fn+1; +# or if user just wants "typical desktop installation". +# Installing abrt-desktop should result in the abrt which works without +# any tweaking in abrt.conf (IOW: all plugins mentioned there must be installed) +Requires: %{name} = %{version}-%{release} +Requires: abrt-addon-kerneloops +Requires: abrt-addon-pstoreoops +Requires: abrt-addon-vmcore +Requires: abrt-addon-ccpp +%if %{with python2} +Requires: python2-abrt-addon +%endif # with python2 +%if %{with python3} +Requires: python3-abrt-addon +%endif # with python3 +Requires: abrt-addon-xorg +Requires: gdb-headless +Requires: abrt-gui +Requires: gnome-abrt +%if 0%{?rhel} +Requires: libreport-rhel >= %{libreport_ver} +Requires: libreport-plugin-rhtsupport >= %{libreport_ver} +%else +Requires: abrt-retrace-client +%if %{with bodhi} +Requires: abrt-plugin-bodhi +%endif +%if 0%{!?suse_version:1} +Requires: libreport-plugin-bugzilla >= %{libreport_ver} +%endif +Requires: libreport-plugin-logger >= %{libreport_ver} +Requires: libreport-plugin-ureport >= %{libreport_ver} +%if 0%{?fedora} +Requires: libreport-fedora >= %{libreport_ver} +%endif +%endif +#Requires: abrt-plugin-firefox +Provides: bug-buddy = %{version}-%{release} + +%description desktop +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. +Requires: %{name}-addon-coredump-helper = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Conflicts: %{name}-addon-ccpp + +%description atomic +Package to install all necessary packages for usage from Atomic +hosts. +%endif + +%package dbus +Summary: ABRT DBus service +Requires: %{name} = %{version}-%{release} +Requires: abrt-libs = %{version}-%{release} + +%description dbus +ABRT DBus service which provides org.freedesktop.problems API on dbus and +uses PolicyKit to authorize to access the problem data. + +%if %{with python2} +%package -n python2-abrt +Summary: ABRT Python API +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-dbus = %{version}-%{release} +Requires: python2-dbus +Requires: python2-libreport +%if 0%{?rhel:%{rhel} == 7} +Requires: python-gobject-base +%else +Requires: python2-gobject-base +%endif +%{?python_provide:%python_provide python2-abrt} +# Remove before F30 +Provides: %{name}-python = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < 2.10.4 + +%description -n python2-abrt +High-level API for querying, creating and manipulating +problems handled by ABRT in Python. + +%package -n python2-abrt-doc +Summary: ABRT Python API Documentation +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: python2-abrt = %{version}-%{release} +# Remove before F30 +Provides: %{name}-python-doc = %{version}-%{release} +Obsoletes: %{name}-python-doc < 2.10.4 + +%description -n python2-abrt-doc +Examples and documentation for ABRT Python API. +%endif # with python2 + +%if %{with python3} +%package -n python3-abrt +Summary: ABRT Python 3 API +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Requires: %{name}-dbus = %{version}-%{release} +Requires: python3-dbus +Requires: python3-libreport +%{?python_provide:%python_provide python3-abrt} +# Remove before F30 +Provides: %{name}-python3 = %{version}-%{release} +Provides: %{name}-python3%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python3 < 2.10.4 +Requires: python3-gobject-base + +%description -n python3-abrt +High-level API for querying, creating and manipulating +problems handled by ABRT in Python 3. + +%package -n python3-abrt-doc +Summary: ABRT Python API Documentation +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: python3-%{name} = %{version}-%{release} +# Remove before F30 +Provides: %{name}-python3-doc = %{version}-%{release} +Obsoletes: %{name}-python3-doc < 2.10.4 + +%description -n python3-abrt-doc +Examples and documentation for ABRT Python 3 API. +%endif # with python3 + +%package console-notification +Summary: ABRT console notification script +Requires: %{name} = %{version}-%{release} +Requires: %{name}-cli = %{version}-%{release} + +%description console-notification +A small script which prints a count of detected problems when someone logs in +to the shell + +%prep +# http://www.rpm.org/wiki/PackagerDocs/Autosetup +# Default '__scm_apply_git' is 'git apply && git commit' but this workflow +# doesn't allow us to create a new file within a patch, so we have to use +# 'git am' (see /usr/lib/rpm/macros for more details) +#%%define __scm_apply_git(qp:m:) %{__git} am --exclude doc/design --exclude doc/project/abrt.tex +%define __scm_apply_git(qp:m:) %{__git} am +%autosetup -S git + +%build +export PYTHON_NOSE="%{__python3} -m nose" +./autogen.sh +autoconf + +%define var_base_dir spool + +CFLAGS="%{optflags} -Werror" %configure \ +%if %{without python2} + --without-python2 \ +%endif # with python2 +%if %{without python3} + --without-python3 \ +%endif # with python3 +%if %{without bodhi} + --without-bodhi \ +%endif +%if %{without atomic} + --without-atomic \ +%endif +%if 0%{?rhel} + --enable-suggest-autoreporting \ + --enable-authenticated-autoreporting \ +%endif +%ifnarch %{arm} + --enable-native-unwinder \ +%endif + --with-defaultdumplocation=/var/%{var_base_dir}/abrt \ + --enable-doxygen-docs \ + --enable-dump-time-unwind \ + --disable-silent-rules + +make %{?_smp_mflags} + +%install +make install DESTDIR=$RPM_BUILD_ROOT \ + PYTHON=%{__python3} \ + mandir=%{_mandir} \ + dbusabrtdocdir=%{_defaultdocdir}/%{name}-dbus%{docdirversion}/html/ + +%find_lang %{name} + +# Switch hardcoded python3 shebangs into the %%{__python3} macro +sed -i '1s=^#!/usr/bin/python3\($\|\s\)=#!%{__python3}\1=' \ + %{buildroot}%{_sbindir}/abrt-harvest-pstoreoops \ + %{buildroot}%{_bindir}/abrt \ + %{buildroot}%{_bindir}/abrt-handle-upload \ + %{buildroot}%{_bindir}/abrt-action-analyze-core \ +%if %{with bodhi} + %{buildroot}%{_bindir}/abrt-action-find-bodhi-update \ +%endif + %{buildroot}%{_bindir}/abrt-action-install-debuginfo \ + %{buildroot}%{_bindir}/abrt-action-list-dsos \ + %{buildroot}%{_bindir}/abrt-action-notify \ + %{buildroot}%{_bindir}/abrt-action-perform-ccpp-analysis \ + %{buildroot}%{_libexecdir}/abrt-action-generate-machine-id \ + %{buildroot}%{_libexecdir}/abrt-action-ureport \ + %{buildroot}%{_libexecdir}/abrt-gdb-exploitable \ + %{buildroot}%{_sbindir}/abrt-harvest-vmcore \ + %{buildroot}%{_bindir}/abrt-action-analyze-vmcore \ + %{buildroot}%{_bindir}/abrt-action-check-oops-for-alt-component \ + %{buildroot}%{_bindir}/abrt-action-check-oops-for-hw-error \ + +# Remove byte-compiled python files generated by automake. +# automake uses system's python for all *.py files, even +# for those which needs to be byte-compiled with different +# version (python2/python3). +# rpm can do this work and use the appropriate python version. +find $RPM_BUILD_ROOT -name "*.py[co]" -delete + +# remove all .la and .a files +find $RPM_BUILD_ROOT -name '*.la' -or -name '*.a' | xargs rm -f +mkdir -p $RPM_BUILD_ROOT/var/cache/abrt-di +mkdir -p $RPM_BUILD_ROOT/var/run/abrt +mkdir -p $RPM_BUILD_ROOT/var/%{var_base_dir}/abrt +mkdir -p $RPM_BUILD_ROOT/var/spool/abrt-upload +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/abrt + +desktop-file-install \ + --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \ + src/applet/abrt-applet.desktop + +ln -sf %{_datadir}/applications/abrt-applet.desktop ${RPM_BUILD_ROOT}%{_sysconfdir}/xdg/autostart/ + +# After everything is installed, remove info dir +rm -f %{buildroot}%{_infodir}/dir + +%check +make check|| { + # find and print the logs of failed test + # do not cat tests/testsuite.log because it contains a lot of bloat + find tests/testsuite.dir -name "testsuite.log" -print -exec cat '{}' \; + exit 1 +} + +%pre +#uidgid pair 173:173 reserved in setup rhbz#670231 +%define abrt_gid_uid 173 +getent group abrt >/dev/null || groupadd -f -g %{abrt_gid_uid} --system abrt +getent passwd abrt >/dev/null || useradd --system -g abrt -u %{abrt_gid_uid} -d /etc/abrt -s /sbin/nologin abrt +exit 0 + +%post +# $1 == 1 if install; 2 if upgrade +%systemd_post abrtd.service + +%post addon-ccpp +# this is required for transition from 1.1.x to 2.x +# because /cache/abrt-di/* was created under root with root:root +# so 2.x fails when it tries to extract debuginfo there.. +chown -R abrt:abrt %{_localstatedir}/cache/abrt-di +%systemd_post abrt-ccpp.service +%systemd_post abrt-journal-core.service +%journal_catalog_update + +%post addon-kerneloops +%systemd_post abrt-oops.service +%journal_catalog_update + +%post addon-xorg +%systemd_post abrt-xorg.service +%journal_catalog_update + +%if %{with python2} +%post -n python2-abrt-addon +%journal_catalog_update +%endif # with python2 + +%if %{with python3} +%post -n python3-abrt-addon +%journal_catalog_update +%endif # with python3 + +%post addon-vmcore +%systemd_post abrt-vmcore.service +%journal_catalog_update + +%post addon-pstoreoops +%systemd_post abrt-pstoreoops.service + +%post addon-upload-watch +%systemd_post abrt-upload-watch.service + +%preun +%systemd_preun abrtd.service + +%preun addon-ccpp +%systemd_preun abrt-ccpp.service +%systemd_preun abrt-journal-core.service + +%preun addon-kerneloops +%systemd_preun abrt-oops.service + +%preun addon-xorg +%systemd_preun abrt-xorg.service + +%preun addon-vmcore +%systemd_preun abrt-vmcore.service + +%preun addon-pstoreoops +%systemd_preun abrt-pstoreoops.service + +%preun addon-upload-watch +%systemd_preun abrt-upload-watch.service + +%postun +%systemd_postun_with_restart abrtd.service + +%postun addon-ccpp +%systemd_postun_with_restart abrt-ccpp.service +%systemd_postun_with_restart abrt-journal-core.service + +%postun addon-kerneloops +%systemd_postun_with_restart abrt-oops.service + +%postun addon-xorg +%systemd_postun_with_restart abrt-xorg.service + +%postun addon-vmcore +%systemd_postun_with_restart abrt-vmcore.service + +%postun addon-pstoreoops +%systemd_postun_with_restart abrt-pstoreoops.service + +%postun addon-upload-watch +%systemd_postun_with_restart abrt-upload-watch.service + +%post gui +# 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; +fi +ln -sf /etc/abrt/plugins/CCpp_Atomic.conf /etc/abrt/plugins/CCpp.conf +if [ -f /usr/share/abrt/conf.d/plugins/CCpp.conf ]; then + mv /usr/share/abrt/conf.d/plugins/CCpp.conf /usr/share/abrt/conf.d/plugins/CCpp.conf.rpmsave.atomic || exit 1; +fi +ln -sf /usr/share/abrt/conf.d/plugins/CCpp_Atomic.conf /usr/share/abrt/conf.d/plugins/CCpp.conf +%systemd_post abrt-coredump-helper.service + +%preun atomic +if [ -L /etc/abrt/plugins/CCpp.conf ]; then + rm /etc/abrt/plugins/CCpp.conf +fi +if [ -L /usr/share/abrt/conf.d/plugins/CCpp.conf ]; then + rm /usr/share/abrt/conf.d/plugins/CCpp.conf +fi +if [ -f /etc/abrt/plugins/CCpp.conf.rpmsave.atomic ]; then + mv /etc/abrt/plugins/CCpp.conf.rpmsave.atomic /etc/abrt/plugins/CCpp.conf || exit 1 +fi +if [ -f /usr/share/abrt/conf.d/plugins/CCpp.conf.rpmsave.atomic ]; then + mv /usr/share/abrt/conf.d/plugins/CCpp.conf.rpmsave.atomic /usr/share/abrt/conf.d/plugins/CCpp.conf || exit 1 +fi + +%postun atomic +%systemd_postun_with_restart abrt-coredump-helper.service +%endif # with atomic + +%if 0%{?fedora} > 27 || 0%{?rhel} > 7 +# ldconfigi and gtk-update-icon-cache is not needed +%else +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +%post gui-libs -p /sbin/ldconfig + +%postun gui-libs -p /sbin/ldconfig + +%postun gui +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi +%endif + +%posttrans +# update the old problem dirs to contain "type" element +service abrtd condrestart >/dev/null 2>&1 || : + +%posttrans addon-ccpp +# Migrate from abrt-ccpp.service to abrt-journal-core.service +# 'systemctl preset abrt-ccpp.service abrt-journal-core.service' +# is done only for installation by %systemd_post macro but not for package +# upgrade. Following lines affect changes in Fedora preset files in case of +# package upgrade and also starts abrt-journal-core.service and stops +# abrt-ccpp.service if abrt-ccpp.service is running. +# All this has to be done only once because some users want to use +# abrt-ccpp.service instead of the default abrt-journal-core.service. +# Hence we introduced a %{_localstatedir}/lib/abrt/abrt-migrated file to +# mark the migration was done. +if test ! -f %{_localstatedir}/lib/abrt/abrt-migrated ; then + systemctl --no-reload preset abrt-ccpp.service >/dev/null 2>&1 || : + systemctl --no-reload preset abrt-journal-core.service >/dev/null 2>&1 || : + if service abrt-ccpp status >/dev/null 2>&1 ; then + systemctl stop abrt-ccpp >/dev/null 2>&1 || : + systemctl start abrt-journal-core >/dev/null 2>&1 || : + fi + touch %{_localstatedir}/lib/abrt/abrt-migrated +fi +systemctl try-restart abrt-journal-core >/dev/null 2>&1 || : +systemctl try-restart abrt-ccpp >/dev/null 2>&1 || : +# Regenerate core_bactraces because of missing crash threads +abrtdir=$(grep "DumpLocation" /etc/abrt/abrt.conf | cut -d'=' -f2 | tr -d ' ') +if test -d "$abrtdir"; then + for DD in `find "$abrtdir" -mindepth 1 -maxdepth 1 -type d` + do + if test -f "$DD/analyzer" && grep -q "^CCpp$" "$DD/analyzer"; then + /usr/bin/abrt-action-generate-core-backtrace -d "$DD" -- >/dev/null 2>&1 || : + test -f "$DD/core_backtrace" && chown `stat --format=%U:abrt $DD` "$DD/core_backtrace" || : + fi + done +fi + +%posttrans addon-kerneloops +service abrt-oops condrestart >/dev/null 2>&1 || : + +%posttrans addon-xorg +service abrt-xorg condrestart >/dev/null 2>&1 || : + +%posttrans addon-vmcore +service abrt-vmcore condrestart >/dev/null 2>&1 || : +# Copy the configuration file to plugin's directory +test -f /etc/abrt/abrt-harvest-vmcore.conf && { + echo "Moving /etc/abrt/abrt-harvest-vmcore.conf to /etc/abrt/plugins/vmcore.conf" + mv -b /etc/abrt/abrt-harvest-vmcore.conf /etc/abrt/plugins/vmcore.conf +} +exit 0 + +%posttrans addon-pstoreoops +service abrt-pstoreoops condrestart >/dev/null 2>&1 || : + +%if 0%{?fedora} > 27 +# gtk-update-icon-cache is not needed +%else +%posttrans gui +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%endif + +%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 +%doc README.md COPYING +%{_unitdir}/abrtd.service +%{_tmpfilesdir}/abrt.conf +%{_sbindir}/abrtd +%{_sbindir}/abrt-server +%{_sbindir}/abrt-auto-reporting +%{_libexecdir}/abrt-handle-event +%{_libexecdir}/abrt-action-ureport +%{_libexecdir}/abrt-action-save-container-data +%{_bindir}/abrt-handle-upload +%{_bindir}/abrt-action-notify +%{_mandir}/man1/abrt-action-notify.1* +%{_bindir}/abrt-action-save-package-data +%{_bindir}/abrt-watch-log +%{_bindir}/abrt-action-analyze-python +%{_bindir}/abrt-action-analyze-xorg +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.problems.daemon.conf +%config(noreplace) %{_sysconfdir}/%{name}/abrt-action-save-package-data.conf +%{_datadir}/%{name}/conf.d/abrt-action-save-package-data.conf +%config(noreplace) %{_sysconfdir}/%{name}/plugins/xorg.conf +%{_datadir}/%{name}/conf.d/plugins/xorg.conf +%{_mandir}/man5/abrt-xorg.conf.5* +%config(noreplace) %{_sysconfdir}/%{name}/gpg_keys.conf +%{_datadir}/%{name}/conf.d/gpg_keys.conf +%{_mandir}/man5/gpg_keys.conf.5* +%config(noreplace) %{_sysconfdir}/libreport/events.d/abrt_event.conf +%{_mandir}/man5/abrt_event.conf.5* +%config(noreplace) %{_sysconfdir}/libreport/events.d/smart_event.conf +%{_mandir}/man5/smart_event.conf.5* +%dir %attr(0751, root, abrt) %{_localstatedir}/%{var_base_dir}/%{name} +%dir %attr(0700, abrt, abrt) %{_localstatedir}/spool/%{name}-upload +# abrtd runs as root +%ghost %dir %attr(0755, root, root) %{_localstatedir}/run/%{name} +%ghost %attr(0666, -, -) %{_localstatedir}/run/%{name}/abrt.socket +%ghost %attr(0644, -, -) %{_localstatedir}/run/%{name}/abrtd.pid + +%{_mandir}/man1/abrt-handle-upload.1* +%{_mandir}/man1/abrt-server.1* +%{_mandir}/man1/abrt-action-save-package-data.1* +%{_mandir}/man1/abrt-watch-log.1* +%{_mandir}/man1/abrt-action-analyze-python.1* +%{_mandir}/man1/abrt-action-analyze-xorg.1* +%{_mandir}/man1/abrt-auto-reporting.1* +%{_mandir}/man8/abrtd.8* +%{_mandir}/man5/abrt-action-save-package-data.conf.5* +# {_mandir}/man5/pyhook.conf.5* + +%files libs +%{_libdir}/libabrt.so.* +%config(noreplace) %{_sysconfdir}/%{name}/abrt.conf +%{_datadir}/%{name}/conf.d/abrt.conf +%{_mandir}/man5/abrt.conf.5* +%dir %{_sysconfdir}/%{name} +%dir %{_sysconfdir}/%{name}/plugins +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/conf.d +%dir %{_datadir}/%{name}/conf.d/plugins + +# filesystem package should own /usr/share/augeas/lenses directory +%{_datadir}/augeas/lenses/abrt.aug + +%files devel +# The complex pattern below (instead of simlpy *) excludes Makefile{.am,.in}: +%doc apidoc/html/*.{html,png,css,js} +%{_includedir}/abrt/abrt-dbus.h +%{_includedir}/abrt/hooklib.h +%{_includedir}/abrt/libabrt.h +%{_includedir}/abrt/problem_api.h +%{_libdir}/libabrt.so +%{_libdir}/pkgconfig/abrt.pc + +%files gui-libs +%{_libdir}/libabrt_gui.so.* + +%files gui-devel +%{_includedir}/abrt/abrt-config-widget.h +%{_includedir}/abrt/system-config-abrt.h +%{_libdir}/libabrt_gui.so +%{_libdir}/pkgconfig/abrt_gui.pc + +%files gui +%dir %{_datadir}/%{name} +# all glade, gtkbuilder and py files for gui +%{_datadir}/icons/hicolor/*/apps/* +%{_datadir}/icons/hicolor/*/status/* +%{_datadir}/%{name}/icons/hicolor/*/status/* +%{_datadir}/%{name}/ui/* +%{_bindir}/abrt-applet +%{_bindir}/system-config-abrt +#%%{_bindir}/test-report +%{_datadir}/applications/abrt-applet.desktop +%config(noreplace) %{_sysconfdir}/xdg/autostart/abrt-applet.desktop +%{_mandir}/man1/abrt-applet.1* +%{_mandir}/man1/system-config-abrt.1* + +%files addon-coredump-helper +%{_libexecdir}/abrt-hook-ccpp +%{_sbindir}/abrt-install-ccpp-hook + +%files addon-ccpp +%dir %attr(0775, abrt, abrt) %{_localstatedir}/cache/abrt-di +%config(noreplace) %{_sysconfdir}/%{name}/plugins/CCpp.conf +%{_datadir}/%{name}/conf.d/plugins/CCpp.conf +%{_mandir}/man5/abrt-CCpp.conf.5* +%{_libexecdir}/abrt-gdb-exploitable +%{_journalcatalogdir}/abrt_ccpp.catalog +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_ccpp_format.conf +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_journal_ccpp_format.conf +%{_unitdir}/abrt-ccpp.service +%{_unitdir}/abrt-journal-core.service + +%dir %{_localstatedir}/lib/abrt + +# attr(6755) ~= SETUID|SETGID +%attr(6755, abrt, abrt) %{_libexecdir}/abrt-action-install-debuginfo-to-abrt-cache + +%{_bindir}/abrt-action-analyze-c +%{_bindir}/abrt-action-trim-files +%{_bindir}/abrt-action-analyze-core +%{_bindir}/abrt-action-analyze-vulnerability +%{_bindir}/abrt-action-install-debuginfo +%{_bindir}/abrt-action-generate-backtrace +%{_bindir}/abrt-action-generate-core-backtrace +%{_bindir}/abrt-action-analyze-backtrace +%{_bindir}/abrt-action-list-dsos +%{_bindir}/abrt-action-perform-ccpp-analysis +%{_bindir}/abrt-action-analyze-ccpp-local +%{_bindir}/abrt-dump-journal-core +%config(noreplace) %{_sysconfdir}/libreport/events.d/ccpp_event.conf +%{_mandir}/man5/ccpp_event.conf.5* +%config(noreplace) %{_sysconfdir}/libreport/events.d/gconf_event.conf +%{_mandir}/man5/gconf_event.conf.5* +%config(noreplace) %{_sysconfdir}/libreport/events.d/vimrc_event.conf +%{_mandir}/man5/vimrc_event.conf.5* +%{_datadir}/libreport/events/analyze_CCpp.xml +%{_datadir}/libreport/events/analyze_LocalGDB.xml +%{_datadir}/libreport/events/collect_xsession_errors.xml +%{_datadir}/libreport/events/collect_GConf.xml +%{_datadir}/libreport/events/collect_vimrc_user.xml +%{_datadir}/libreport/events/collect_vimrc_system.xml +%{_datadir}/libreport/events/post_report.xml +%{_mandir}/man*/abrt-action-analyze-c.* +%{_mandir}/man*/abrt-action-trim-files.* +%{_mandir}/man*/abrt-action-generate-backtrace.* +%{_mandir}/man*/abrt-action-generate-core-backtrace.* +%{_mandir}/man*/abrt-action-analyze-backtrace.* +%{_mandir}/man*/abrt-action-list-dsos.* +%{_mandir}/man*/abrt-install-ccpp-hook.* +%{_mandir}/man*/abrt-action-install-debuginfo.* +%{_mandir}/man*/abrt-action-analyze-ccpp-local.* +%{_mandir}/man*/abrt-action-analyze-core.* +%{_mandir}/man*/abrt-action-analyze-vulnerability.* +%{_mandir}/man*/abrt-action-perform-ccpp-analysis.* +%{_mandir}/man1/abrt-dump-journal-core.1* + +%files addon-upload-watch +%{_sbindir}/abrt-upload-watch +%{_unitdir}/abrt-upload-watch.service +%{_mandir}/man*/abrt-upload-watch.* + + +%files retrace-client +%{_bindir}/abrt-retrace-client +%{_mandir}/man1/abrt-retrace-client.1* +%config(noreplace) %{_sysconfdir}/libreport/events.d/ccpp_retrace_event.conf +%{_mandir}/man5/ccpp_retrace_event.conf.5* +%{_datadir}/libreport/events/analyze_RetraceServer.xml + +%files addon-kerneloops +%config(noreplace) %{_sysconfdir}/libreport/events.d/koops_event.conf +%{_journalcatalogdir}/abrt_koops.catalog +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_koops_format.conf +%{_mandir}/man5/koops_event.conf.5* +%config(noreplace) %{_sysconfdir}/%{name}/plugins/oops.conf +%{_datadir}/%{name}/conf.d/plugins/oops.conf +%{_unitdir}/abrt-oops.service + +%dir %{_localstatedir}/lib/abrt + +%{_bindir}/abrt-dump-oops +%{_bindir}/abrt-dump-journal-oops +%{_bindir}/abrt-action-analyze-oops +%{_mandir}/man1/abrt-dump-oops.1* +%{_mandir}/man1/abrt-dump-journal-oops.1* +%{_mandir}/man1/abrt-action-analyze-oops.1* +%{_mandir}/man5/abrt-oops.conf.5* + +%files addon-xorg +%config(noreplace) %{_sysconfdir}/libreport/events.d/xorg_event.conf +%{_journalcatalogdir}/abrt_xorg.catalog +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_xorg_format.conf +%{_mandir}/man5/xorg_event.conf.5* +%{_unitdir}/abrt-xorg.service +%{_bindir}/abrt-dump-xorg +%{_bindir}/abrt-dump-journal-xorg +%{_mandir}/man1/abrt-dump-xorg.1* +%{_mandir}/man1/abrt-dump-journal-xorg.1* + +%files addon-vmcore +%config(noreplace) %{_sysconfdir}/libreport/events.d/vmcore_event.conf +%{_mandir}/man5/vmcore_event.conf.5* +%config(noreplace) %{_sysconfdir}/%{name}/plugins/vmcore.conf +%{_datadir}/%{name}/conf.d/plugins/vmcore.conf +%{_datadir}/libreport/events/analyze_VMcore.xml +%{_unitdir}/abrt-vmcore.service +%{_sbindir}/abrt-harvest-vmcore +%{_bindir}/abrt-action-analyze-vmcore +%{_bindir}/abrt-action-check-oops-for-alt-component +%{_bindir}/abrt-action-check-oops-for-hw-error +%{_mandir}/man1/abrt-harvest-vmcore.1* +%{_mandir}/man5/abrt-vmcore.conf.5* +%{_mandir}/man1/abrt-action-analyze-vmcore.1* +%{_mandir}/man1/abrt-action-check-oops-for-hw-error.1* +%{_journalcatalogdir}/abrt_vmcore.catalog +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_vmcore_format.conf + +%files addon-pstoreoops +%{_unitdir}/abrt-pstoreoops.service +%{_sbindir}/abrt-harvest-pstoreoops +%{_bindir}/abrt-merge-pstoreoops +%{_mandir}/man1/abrt-harvest-pstoreoops.1* +%{_mandir}/man1/abrt-merge-pstoreoops.1* + +%if %{with python2} +%files -n python2-abrt-addon +%config(noreplace) %{_sysconfdir}/%{name}/plugins/python.conf +%{_datadir}/%{name}/conf.d/plugins/python.conf +%{_mandir}/man5/abrt-python.conf.5* +%config(noreplace) %{_sysconfdir}/libreport/events.d/python_event.conf +%{_journalcatalogdir}/abrt_python.catalog +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_python_format.conf +%{_mandir}/man5/python_event.conf.5* +%{python_sitearch}/abrt.pth +%{python_sitearch}/abrt_exception_handler.* + +%files -n python2-abrt-container-addon +%{python_sitearch}/abrt_container.pth +%{python_sitearch}/abrt_exception_handler_container.* +%endif # with python2 + +%if %{with python3} +%files -n python3-abrt-addon +%config(noreplace) %{_sysconfdir}/%{name}/plugins/python3.conf +%{_datadir}/%{name}/conf.d/plugins/python3.conf +%{_mandir}/man5/abrt-python3.conf.5* +%config(noreplace) %{_sysconfdir}/libreport/events.d/python3_event.conf +%{_journalcatalogdir}/abrt_python3.catalog +%config(noreplace) %{_sysconfdir}/libreport/plugins/catalog_python3_format.conf +%{_mandir}/man5/python3_event.conf.5* +%{python3_sitearch}/abrt3.pth +%{python3_sitearch}/abrt_exception_handler3.py +%{python3_sitearch}/__pycache__/abrt_exception_handler3.* + +%files -n python3-abrt-container-addon +%{python3_sitearch}/abrt3_container.pth +%{python3_sitearch}/abrt_exception_handler3_container.py +%{python3_sitearch}/__pycache__/abrt_exception_handler3_container.* +%endif # with python3 + +%files plugin-sosreport +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/libreport/events.d/sosreport_event.conf + +%files plugin-machine-id +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/libreport/events.d/machine-id_event.conf +%{_libexecdir}/abrt-action-generate-machine-id + +%files cli + +%files tui +%{_bindir}/abrt-cli +%{_mandir}/man1/abrt-cli.1* + +%if %{with python3} +%files cli-ng +%config(noreplace) %{_sysconfdir}/bash_completion.d/abrt.bash_completion +%{_bindir}/abrt +%{python3_sitearch}/abrtcli/ +%{_mandir}/man1/abrt.1* +%endif # with python3 + +%files desktop + +%if %{with atomic} +%files atomic +%config(noreplace) %{_sysconfdir}/%{name}/plugins/CCpp_Atomic.conf +%{_unitdir}/abrt-coredump-helper.service +%{_datadir}/%{name}/conf.d/plugins/CCpp_Atomic.conf +%config(noreplace) %{_sysconfdir}/%{name}/abrt-action-save-package-data.conf +%{_bindir}/abrt-action-save-package-data +%{_mandir}/man1/abrt-action-save-package-data.1* +%{_mandir}/man5/abrt-action-save-package-data.conf.5* +%endif + +%if %{with bodhi} +%files plugin-bodhi +%{_bindir}/abrt-bodhi +%{_bindir}/abrt-action-find-bodhi-update +%config(noreplace) %{_sysconfdir}/libreport/events.d/bodhi_event.conf +%{_datadir}/libreport/events/analyze_BodhiUpdates.xml +%{_mandir}/man1/abrt-bodhi.1* +%{_mandir}/man1/abrt-action-find-bodhi-update.1* +%endif + +%files dbus +%{_sbindir}/abrt-dbus +%{_sbindir}/abrt-configuration +%{_mandir}/man8/abrt-dbus.8* +%{_mandir}/man8/abrt-configuration.8* +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/dbus-abrt.conf +%{_datadir}/dbus-1/interfaces/org.freedesktop.Problems2.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.Problems2.Entry.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.Problems2.Session.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.Problems2.Task.xml +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.xml +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.abrt.xml +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.ccpp.xml +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.oops.xml +%if %{with python2} +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.python.xml +%endif # with python2 +%if %{with python3} +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.python3.xml +%endif # with python3 +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.vmcore.xml +%{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.xorg.xml +%{_datadir}/dbus-1/system-services/org.freedesktop.problems.service +%{_datadir}/dbus-1/system-services/com.redhat.problems.configuration.service +%{_datadir}/polkit-1/actions/abrt_polkit.policy +%dir %{_defaultdocdir}/%{name}-dbus%{docdirversion}/ +%dir %{_defaultdocdir}/%{name}-dbus%{docdirversion}/html/ +%{_defaultdocdir}/%{name}-dbus%{docdirversion}/html/*.html +%{_defaultdocdir}/%{name}-dbus%{docdirversion}/html/*.css +%config(noreplace) %{_sysconfdir}/libreport/events.d/abrt_dbus_event.conf + +%if %{with python2} +%files -n python2-abrt +%{python_sitearch}/problem/ +%{_mandir}/man5/abrt-python.5* + +%files -n python2-abrt-doc +%{python_sitelib}/problem_examples +%endif # with python2 + +%if %{with python3} +%files -n python3-abrt +%{python3_sitearch}/problem/ +%{_mandir}/man5/abrt-python3.5* + +%files -n python3-abrt-doc +%{python3_sitelib}/problem_examples +%endif # with python3 + +%files console-notification +%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh + +%changelog +* Wed Mar 11 2020 Ernestas Kulik - 2.10.9-12 +- Fix #1798494, #1805728, #1809949 + +* Tue Jul 16 2019 Michal Fabik - 2.10.9-11 +- a-a-list-dsos: Fix decoding of strings from rpm +Resolves: rhbz#1694970 + +* Fri Dec 7 2018 Martin Kutlak - 2.10.9-10 +- spec: Add-explicit-package-version-requirement-of-abrt-libs +- cli: get list of possible workflows for problem_data_t +- cli: mark the suggestion text for translation +- cli list: show a hint about creating a case in RHTS +Resolves: #1649753 + +* Fri Nov 30 2018 Martin Kutlak - 2.10.9-9 +- spec: turn on --enable-native-unwinder aarch64 +- spec: enable addon-vmcore on aarch64 +- daemon: Fix double closed fd race condition +- dbus: Add configuration for Python3 +- Add autogen.sh +- Resolves: #1646569, #1651676, #1650619, #1650622, #1652676 + +* Tue Nov 20 2018 Martin Kutlak - 2.10.9-8 +- lib: Correct the syntax for gdb backtrace command +- Resolves: #1623960 + +* Tue Aug 14 2018 Petr Viktorin - 2.10.9-7 +- Switch Python tests to use %%{__python3} +- Resolves: #1615505 + +* Fri Jun 15 2018 Matej Habrnal 2.10.9-6 +- Switch hardcoded python3 shebangs into the %%{__python3} + +* Fri Jun 15 2018 Matej Habrnal 2.10.9-5 +- Set PYTHON to python3 during install + +* Fri Jun 15 2018 Matej Habrnal 2.10.9-4 +- ccpp: add %h and %e parameter into abrt-hook-ccpp +- Resovles: #1587891 + +* Thu May 24 2018 Matej Habrnal 2.10.9-3 +- Remove dependency on deprecated nss-pem +- Resovles: #1578427 + +* Fri Apr 27 2018 Matej Habrnal 2.10.9-2 +- fix python requires in spec file + +* Fri Apr 27 2018 Matej Habrnal 2.10.9-1 +- build: conditionalize the Python2 and Python3 +- cli-ng,hooks,python-problem: Allow python to be optional at build time +- spec: fix ambiguous Python 2 dependency declarations +- plugins: a-a-g-machine-id use dmidecode command +- spec: use dmidecode instead of python3-dmidecode +- hooks: use container-exception-logger tool +- spec: container python hooks require cel +- hooks: do not write any additional logs +- a-a-s-package-data: add python3.7 to known Interpreters +- autogen: ignore abrt's python packages +- correctly parse buildrequires from spec file + +* Wed Mar 21 2018 Matej Habrnal 2.10.8-1 +- Translation updates +- spec: use Python3 as default in abrt-cli-ng +- cli-ng: use Python3 as default +- Add a new element 'interpreter' for python problems +- retrace-client: Require nss-pem + +* Mon Feb 26 2018 Matej Habrnal 2.10.7-1 +- Translation updates +- hooks: introduce docker hook for Python2 +- hook: add type to Python3 container exception handler +- spec: introduce docker hook for Python2 +- Add ABRT hexa stickers +- a-container-logger: workaround permission issue in minishift + +* Mon Feb 19 2018 Matej Habrnal 2.10.6-1 +- Translation updates +- hooks: introduce docker hook for Python3 +- spec: introduce Python3 hook for container +- Remove deprecated is_error macro +- ldconfig is not needed in rawhide +- remove python_sitearch macro +- remove python_site macro +- move BuildRequires to top +- remove systemd-units and replace it with systemd macro +- remove init.d services +- a-h-event: Do not deduplicate different containers +- rpm: include epocho in package element if > 0 + +* Thu Nov 02 2017 Julius Milan 2.10.5-1 +- Translation updates +- a-action-ureport: add option 'ProcessUnpackaged' +- spec: change dependency on python{2,3}-gobject +- applet: Additional changes to allow optional polkit +- doc: remove obsolete doxygen tags +- dbus: Additional changes to allow optional polkit +- cli-ng: Explicitly state python version in shebangs +- spec: rename python binary packages +- a-d-journal-core: Save mountinfo from journal +- a-d-journal-core: Save container cmdline +- logging: rename omitted log() to log_warning() + +* Mon Aug 28 2017 Matej Habrnal 2.10.4-1 +- Translation updates +- logging: rename log() to log_warning() +- Quick hack to fix build with rpm >= 4.14 +- tests: Crash different binary in infinite event loop +- tests: Revert not sufficient fix +- tests: Reflect field changes in reporter-s-journal +- tests: Get docker-inspect while container is running +- cli,dbus: Allow polkit to be optional at build time +- spec: add dependency for python{3}-gobject +- a-d-journal-core: fix bad condition in creating reason msg +- a-d-journal-core: use pid of crashed process in dumpdir name +- changelog: update CHANGELOG.md + +* Thu Jun 15 2017 Martin Kutlak 2.10.3-1 +- Translation updates +- applet: add a default action to a notification +- spec: require libreport-plugin-systemd-journal on Fedoras +- changing load location from bin to libexec +- changing location of abrt-action-save-container-data from bin to libexec +- koops: Improve not-reportable for oopses with taint flags +- This fixes #1173 +- python: provide more information about exception +- abrt-journal: adapt to suspicious blacklist addition +- koops: add suspicious strings blacklist +- build: fix changelog adding in release target +- changelog: update CHANGELOG.md + +* Tue Apr 25 2017 Matej Habrnal 2.10.2-1 +- Translation updates +- spec: introduce migration to abrt-journal-core +- abrt_event: Save cpuinfo in problem directories +- koops: Improve fatal MCE check when dumping backtrace +- lib: typo in header +- Spelling fixes +- Python 3.6 invalid escape sequence deprecation fix +- koops_event: add check to restrict reporting of MCEs + +* Thu Mar 16 2017 Matej Habrnal 2.10.1-1 +- changelog: update CHANGELOG.md +- build: create tarball in release-* target +- spec: sosreport is not a package +- Fix Typo +- bodhi: Remove dependency on hawkey +- spec: Remove dependency on hawkey +- build: do not upload tarball to fedorahosted.org +- spec: do not use fedorahosted.org as source +- spec: install new plugins +- plugins: introduce Machine ID and SOS report +- Update CHANGELOG.md +- build: fix generating list of dependences in autogen.sh +- spec: start abrt-journal-core instead of abrt-ccpp +- build: fix scratch-build target +- a-a-ureport: fix calling of run_event_on_problem_dir +- spec: if using systemd, default to os-release ID for desktopvendor +- kernel: modify suspicious string "invalid opcode:" +- daemon: Allow rpm to be optional at build time +- spec: allow any compression of man pages +- spec: remove defattr +- spec: remove cleaning buildroot +- spec: use versioned provides +- spec: remove changelog entries older than 2 years +- remove Buildroot and Groups tags +- spec: recommend libreport-plugin-systemd-journal on Fedoras +- doc: document selinux change needed for automatic deletion of reports +- ccpp: tell gdb to analyze saved binary image + +* Sat Dec 03 2016 Jakub Filak 2.10.0-1 +- Translation updates +- spec: bump required libreport and satyr versions +- build: make the release-* targets smarter +- Add CHANGELOG.md +- a-a-notify: set env var before run report_systemd-journal event +- use run_event_on_problem_dir() helper for running events +- notify: do not require package element +- spec: add catalog_journal_ccpp_format.conf file +- reporter-s-journal: add formatting file for abrt-journal-core analyser +- cli-ng: fix --fmt parameter +- python: create analyzer element in dumpdir +- abrt-action-list-dsos: fix typo in vendor variable name +- cli-ng: chown problem before reporting +- lib: stop printing out a debug message 'adding: ' +- cli: print out the not-reportable reason +- cli: configure libreport to ignore not-reportable +- cli-ng: force reporting even if not-reportable +- cli-ng: introduce verbose argument +- Import GObject from gi.repository +- ccpp: configure package repositories for correct OS +- a-a-s-c-data: adapt to current docker +- daemon: don't drop problems from unknown containers +- a-a-s-c-data: correct detection of container type +- spec: install Bodhi event files +- bodhi: factor out Bodhi updates lookup into a solo event +- problems2: update the documentation +- a-a-analyze-python: create exception_type element +- a-a-analyze-xorg: create crash_function into dump dir +- koops: create crash_function element +- a-a-analyze-python: create crash_function element +- a-a-analyze-c: create crash_function element +- spec: add formatting files for reporter-systemd-journal +- reporter-systemd-journal: add formatting files +- vmcore: /var/tmp/abrt is no longer a dump location +- events: add event report_systemd-journal to all addons +- abrt-action-notify: notify to systemd journal +- spec: add abrt's catalog source files +- journal-catalog: add abrt's catalog source files +- ccpp: retain partial core_backtrace upon error +- ccpp: log waitpid errors +- ccpp: inform users about not supported unwinding +- ccpp: close stdin when we can let the process die +- daemon: properly shutdown socket connection +- daemon: close forgotten FD to /proc/[pid] +- ccpp: pass proc pid FD instead of pid to *_at fns +- ccpp+daemon: pass valid params to dd_open_item() +- python: remove unused functions from sysexcept hook +- build: add gettext-devel to sysdeps +- spec: add libcap-devel to BRs of addon-ccpp +- ccpp: avoid running elfutils under root +- Add abrt-action-analyze-vulnerability to .gitignore +- build: autoge.sh without args configures for debugging +- conf: increase MaxCrashReportsSize to 5GiB +- ccpp: fast dumping and abrt core limit +- CI: make debugging easier with more log messages +- doc: add a guide for ABRT hackers +- vmcore: fix an undefined variable on error path +- vmcore: read kdump.conf from an arbitrary location +- ccpp: use libreport 'at' functions +- ccpp: use abort() to exit in debug mode +- python2: stop generating dso_list in the process +- python: stop collecting ENVIRON in the process +- abrtd: details of processes from different PID NS +- abrtd: save interesting process details +- a-a-s-package-data: add python3.6 to known Interpreters +- spec: update gdb Requires +- tree-wide: make path to GDB configurable +- a-a-ureport: print out exit codes in verbose mode +- daemon: stop replacing analyzer with type + +* Fri Sep 09 2016 Jakub Filak 2.9.0-1 +- spec: install abrt_dbus_event.conf +- dbus: use Problems2 API in abrt-dbus +- dbus: Problems2 API implementation +- spec: install Problems2 interfaces +- dbus-doc: rewrite the XML to Problems2 +- Fix memory leaks +- lib: introdcue a function checking post-create name +- abrtd: change HTTP response code for duplicate problems to 303 +- autogen: fix typo in usage help string +- daemon: send base names from abrt-server to abrtd +- lib: normalize slashes of configured paths +- lib: make configuration paths alterable at runtime +- Add generated CCpp.conf to .gitignore +- abrt-bodhi: use CCpp PackageManager configuration directive from configure +- cli: introduce unsafe reporting for not-reporable problems +- handle-event: stop creating post-create lock +- daemon: trigger dump location cleanup after detection +- hook-ccpp: dump own core file in debug mode + +* Mon Jul 18 2016 Matej Habrnal 2.8.2-1 +- Translation updates +- abrt-hook-ccpp: Fix mismatching argument +- Allow selinux to be optional at build time +- vmcore: use findmnt to get mountpoint +- spec: add utils-linux to vmcore's Require +- vmcore: fix finding partitions by UUID and LABEL +- a-a-install-debuginfo: Exception may not have an argument errno +- koops: do not assume version has 3 levels +- Add ARM specific oops backtrace processing. +- examples: add oops-kernel-panic-hung-tasks-arm +- Add oops processing for kernel panics caused by hung tasks. +- abrt-hook-ccpp: save get_fsuid() return values in int variables + +* Wed May 25 2016 Matej Habrnal 2.8.1-1 +- a-dump-journal-xorg: allow *libexec/X* to be executable element +- a-dump-journal-xorg: add '_COMM=gnome-shell' to journal filter +- build: update pkg names for systemd +- a-d-journal-core: save core dump bytes from the journal field +- a-d-journal-core: support lz4 compressed core dump files +- a-a-install-debuginfo: do not try to split None +- doc: improve documentation of AllowedGroups, AllowedUsers and IgnoredPaths +- testcase: add serial field to uReport check +- a-a-install-debuginfo: correct handling of DebuginfoLocation +- a-a-s-container-data: update docker container ID parser +- abrt-hook-ccpp: drop saving of container env vars +- a-console-notification: do not leak variables +- a-retrace-client: format security +- daemon: avoid infinite crash loops +- spec: drop abrt-action-save-kernel-data bits +- spec: README -> README.md +- Add basic documentation +- a-a-install-debuginfo: fix BrokenPipe error +- a-a-install-debuginfo: make tmpdir variable global +- python3 addon: workaround a bug in traceback +- CCpp: turn off compat cores +- a-a-save-package-data: blacklist /usr/lib(64)/firefox/plugin-container +- Fix minor typo: possition -> position +- translations: add missing new line +- Translation updates +- translations: update zanata configuration +- ccpp: drop %e from the core_pattern +- Save Vendor and GPG Fingerprint + +* Wed Feb 03 2016 Matej Habrnal 2.8.0-1 +- a-a-save-package-data: do not blacklist firefox + +* Tue Feb 02 2016 Matej Habrnal 2.7.2-1 +- ccpp: bug fix - undefined variables +- a-a-c-o-f-hw-error: fix unicode error +- ccpp: use error_msg_ignore_crash() instead of error_msg() +- ccpp: add AllowedUsers and AllowedGroups feature +- doc: fix formatting in abrt.conf man page +- ccpp: use executable name from pid +- a-a-c-o-f-hw-error: do not crash on invalid unicode +- Use %s instead of %d. +- configui: link GUI library with libabrt.so +- Do not include system libabrt.h +- ccpp: unify log message of ignored crashes +- ccpp: add IgnoredPath option +- lib: check_recent_crash_file do not produce error_msg + +* Mon Nov 23 2015 Jakub Filak 2.7.1-1 +- spec: switch owner of the dump location to 'root' +- abrtd: switch owner of the dump location to 'root' +- lib: add convenient wrappers for ensuring writable dir +- ccpp: save abrt core files only to new files +- ccpp: ignore crashes of ABRT binaries if DebugLevel == 0 +- conf: introduce DebugLevel +- a-a-i-d-to-abrt-cache: make own random temporary directory +- update .gitignore +- ccpp: make crashes of processes with locked memory not-reportable +- a-a-s-p-data: fix segfault if GPGKeysDir isn't configured +- a-dump-journal-xorg: make journal filter configurable +- doc: a-a-analyze-xorg fix path to conf file +- abrt-journal: use GList instead of char** in abrt_journal_set_journal_filter() +- xorg: introduce tool abrt-dump-journal-xorg +- abrt-xorg.service: change due to abrt-dump-journal-xorg +- journal: add function abrt_journal_get_next_log_line +- spec: add abrt-dump-journal-xorg to spec file +- xorg: rewrite skip_pfx() function to work with journal msgs +- xorg: introduce library xorg-utils +- dbus: ensure expected bytes width of DBus numbers +- a-d-journal-core: set root owner for created dump directory +- doc: add missing man page for abrt-dump-journal-core +- spec: add missing man page for abrt-dump-journal-core + +* Thu Oct 15 2015 Matej Habrnal 2.7.0-1 +- abrt-python: add problem.chown +- a-a-a-ccpp-local don't delete build_ids +- update .gitignore +- spec: add cli-ng +- cli-ng: initial + +* Thu Oct 15 2015 Matej Habrnal 2.6.3-1 +- bodhi: introduce wrapper for 'reporter-bugzilla -h' and 'abrt-bodhi' +- remove random code example from abrt-server +- spec: introduce abrt-action-find-bodhi-update +- api: fix pths -> paths rename +- handle-event: remove obsolete workaround +- remove 'not needed' code +- events: fix example wording +- doc: change /var/tmp/abrt to /var/spool/abrt +- doc: actualize core_pattern content in documentation +- doc: fix default DumpLocation in abrt.conf man page +- events: improve example +- events: comments not needed anymore +- abrt-retrace-client: use atoll for _size conversion +- abrt-dump-xorg: support Xorg log backtraces prefixed by (EE) +- runtests: more verbose fail in get_crash_path +- ureport-auth: force cp/mv when restoring configuration +- runtests: stick to new BZ password rules +- bodhi: fix typo in error messages +- bodhi: fix a segfault when testing an os-release opt for 'rawhide' +- doc: actualize the abrt-bodhi man page +- autogen: use dnf instead of yum to install dependencies +- bodhi: add parsing of error responses +- bodhi: add ignoring of Rawhide +- ccpp: do not break the reporting if a-bodhi fails +- spec: add hawkey to BRs of abrt-bodhi +- introduce bodhi2 to abrt-bodhi +- a-handle-upload: pass bytes to file.write() +- upload a problem data in the EVENT 'notify' +- turn off several post-create scripts for remote problems +- convert all 'ex.message' stmts to 'str(ex)' +- cli: don't start reporting of not-reportable problems +- a-a-s-p-d: add bash on the package blacklist +- correct usage of abrt-gdb-exploitable +- testsutie: first wait_for_hooks, then get_crash_path +- ccpp: use global TID +- ccpp: fix comment related to 'MakeCompatCore' option in CCpp.conf +- cli: fix testing of DBus API return codes +- dbus-api: unify reporting of errors +- doc: fix related to conditional compilation of man page +- abrt-auto-reporting: fix related to conditional compilation +- vmcore: read vmcore by chunks +- pass encoded Unicode to hashlib.sha1.update() +- abrt-merge-pstoreoops: merge files in descending order +- use gettext instead of lgettext in all python scripts +- gitignore: add a generated man page source file + +* Fri Jul 17 2015 Jakub Filak 2.6.2-1 +- applet: do not crash if the new problem has no command_line +- ccpp: do not crash if generate_core_backtrace fails +- abrt: Fixup component of select kernel backtraces +- abrtd: de-prioritize post-create event scripts +- spec: switch python Requires to python3 +- switch all python scripts to python3 +- spec: drop abrt-addon-python requires +- a-dump-oops: allow update the problem, if more then one oops found +- cli: use internal command impl in the command process +- cli: remove useless code from print_crash() +- cli: enable authetication for all commands + +* Thu Jul 02 2015 Matej Habrnal 2.6.1-1 +- dbus: keep the polkit authorization for all clients +- cli: enable polkit authentication on command line +- spec: --enable-dump-time-unwind by default +- ccpp: use TID to find crash thread +- spec: remove PyGObject from all Requires +- spec: update version of gdb because of -ascending +- lib: make it easier to find the backtrace of th crash thread +- ccpp: save TID in the file 'tid' +- ccpp: get TID from correct cmd line argument +- configui: add option always generate backtrace locally +- a-a-p-ccpp-analysis: use ask_yes_no_save_result instead of ask_yes_no_yesforever +- spec: use more appropriate url +- spec: abrt requires libreport-plugin-rhtsupport on rhel +- sosreport: add processor information to sosreport +- doc: update abrt-cli man page + +* Tue Jun 09 2015 Jakub Filak 2.6.0-1 +- spec: add abrt-dbus to Rs of abrt-python +- vmcore: use libreport dd API in the harvestor +- ccpp: don't save the system logs by default +- cli: exit with the number of unreported problems +- spec: restart abrt-dbus in posttrans +- cli: chown before reporting +- hooks: use root for owner of all dump directories +- ccpp: do not unlink failed and big user cores +- ccpp: include the system logs only with root's coredumps +- koops: don't save dmesg if kernel.dmesg_restrict=1 +- daemon, dbus: allow only root to create CCpp, Koops, vmcore and xorg +- daemon: allow only root user to trigger the post-create +- daemon: harden against race conditions in DELETE +- ccpp: revert the UID/GID changes if user core fails +- a-a-i-d-t-a-cache: sanitize umask +- a-a-i-d-t-a-cache: sanitize arguments +- dbus: report invalid element names +- dbus: avoid race-conditions in tests for dum dir availability +- dbus: process only valid sub-directories of the dump location +- lib: add functions validating dump dir +- daemon: use libreport's function checking file name +- configure: move the default dump location to /var/spool +- ccpp: avoid overriding system files by coredump +- spec: add libselinux-devel to BRs +- ccpp: emulate selinux for creation of compat cores +- ccpp: harden dealing with UID/GID +- ccpp: do not use value of /proc/PID/cwd for chdir +- ccpp: do not override existing files by compat cores +- ccpp: stop reading hs_error.log from /tmp +- ccpp: fix symlink race conditions +- turn off exploring crashed process's root directories +- abrt-python: add proper PYTHONPATH to test shellscripts +- abrt-python: unify unknown problem type handling +- abrt-python: add not_reportable properties +- spec: remove analyzer to type conversion +- abrt-python: add Python3 problem type +- abrt-python: add id, short_id and path to problem +- abrt-python: add Problem.prefetch_data function +- abrt-python: handle reconnection gracefully +- config UI: Automatic reporting from GSettings +- doc, polkit: Spelling/grammar fixes +- applet: fix problem info double free +- a-a-s-p-d: add new known interpreter to conf file +- config UI: enable options without config files +- config UI: read glade from a local file first +- applet: migrate Autoreporting options to GSettings +- abrt-action-list-dsos: do not decode not existing object +- spec: add AUTHENTICATED_AUTOREPORTING conditional +- abrt-auto-reporting: require rhtsupport.conf file only on RHEL +- lib: add new kernel taint flags +- spec: add a dependency on abrt-dbus to abrt-cli +- cli: do not exit with segfault if dbus fails +- applet: switch to D-Bus methods +- upload: validate and sanitize uploaded dump directories + +* Thu Apr 09 2015 Jakub Filak 2.5.1-1 +- Translation updates +- problem: use 'type' element instead of 'analyzer' +- cli-status: don't return 0 if there is a problem older than limit +- journal-oops: add an argument accepting journal directory +- journal: open journal files from directory +- lib: don't expect kernel's version '2.6.*' or '3.*.*' +- cli: use the DBus methods for getting problem information +- libabrt: add wrappers TestElemeExists and GetInfo for one element +- dbus: add new method to test existence of an element +- libabrt: add new function fetching full problem data over DBus +- applet: use a shared function for getting problems over DBus +- vmcore: generate 'reason' file in all cases +- applet: Fix trivial indentation bug +- applet: Don't show report button for unpackaged programs +- applet: fix freeing of the notify problem list +- applet: get the list of problems through D-Bus service +- doc: D-Bus api: make desc of DeleteProblem clearer + +* Wed Mar 18 2015 Jakub Filak 2.5.0-1 +- applet: cast to correct type to fix a warrning +- applet: Use new problem_create_app_from_env() helper +- doc: add documentation for GetProblemData +- dbus: add a new method GetProblemData +- abrt_event: run save package data event even if component exists +- a-a-s-container-data: add a new argument --root +- spec: add a-a-s-package-data to abrt-atomic +- a-a-s-kernel-data: add --root argument +- journal-oops: add an argument similar to '--merge' +- spec: let configure generate the spec file +- ccpp: create the dump location from standalone hook +- retrace-client: stop failing on SSL2 +- spec: changes for Atomic hosts +- add stuff necessary for Project Atomic +- Python 3 fixes +- ccpp: add support for multiple pkg mngrs +- Python 3 compatibility +- Revert "dbus: Allow admins to load problems without a password" +- dbus: Allow admins to load problems without a password +- abrtd: Don't allow users to list problems "by hand" +- spec: Don't allow users to list problems "by hand" +- spec: abrt-python requires libreport-python to build + +* Fri Feb 20 2015 Jakub Filak 2.4.0-1 +- spec: factor out core_pattern helper from addon-ccpp +- ccpp: standalone hook +- ccpp: save package data from hook in case of crash in container +- a-a-s-package-data: save data from artifical chroots +- spec: install containers tools +- containers: add utility collecting containers info +- ccpp: add support for containers +- spec: install the daemon's D-Bus configuration file +- daemon: add configuration enabling our name on the System bus +- daemon: get rid of own main loop +- init: set Type of abrtd.service to dbus +- applet: Use libreport's helper to find applications +- applet: Remove unused build information +- build: Fix pkg-config warning related to abrt.pc +- applet: Fix a massive leak in the app detection code +- applet: Remove left-over code from the systray icon +- applet: Use the easy way to detect empty lists +- applet: Fix a number of "problems" memory leaks +- applet: Make problem_info_t refcounted +- applet: If gnome-abrt isn't there, don't offer to report +- applet: Fix multiple notifications for the same problem +- applet: Always defer auto-reporting without a network +- applet: Don't ignore foreign problems if an admin +- applet: Rename problem variable to "pi" +- applet: Remove unused "flags" parameters +- applet: Completely ignore incomplete problems +- applet: Don't ignore repeat problems in the same app +- applet: Fix warning when crash doesn't happen in app +- applet: Remove unused functions +- applet: Remove unused flags +- applet: Rewrite notifications +- applet: Don't run full reports from the applet +- applet: Simplify "report" action +- applet: Add helper to guess .desktop for a cmdline +- applet: Get more details from the crash report +- applet: Ignore other people's problems for non-admins +- applet: Remove handling of "ignored" crashes +- applet: Remove specific persistent notifications handling +- applet: Rename applet to match gnome-abrt +- applet: Initialise libnotify on startup +- applet: Use g_new0() instead of xzalloc() +- applet: Use g_strdup_printf()/g_strdup() +- applet: Move variable inside block where it's used +- daemon: process unpackaged by default +- spec: fix abrt-applet requires +- applet: Fix memory leak in fork_exec_gui() +- applet: Detect whether gnome-abrt is available +- applet: Use GUI_EXECUTABLE macro +- autogen: move configure to the default case +- applet: Use GIO to launch gnome-abrt +- applet: Fix typo in "Oterwise" +- applet: Use symbolic icon instead of abrt's in notifications +- applet: Add some debug to new_dir_exists() +- applet: Require at least libnotify 0.7 +- applet: Fix typo in "cuurent" +- applet: Don't defer sending out uReports +- applet: Use G_SOURCE_REMOVE in timeout callback +- spec: Bump required glib2 version +- applet: Use g_bus_own_name() for single-instance +- applet: Remove status icon +- applet: Use GDBus to filter crash signals +- applet: Remove XSMP support +- build: Launch configure after autogen.sh +- make: make some python depencies optional +- configure: fix typos +- configure: check for python-sphinx and nose +- spec: add gsettings-desktop-schemas to the build requires +- core: use updated dump_fd_info() +- switch from 'analyzer' to 'type' +- spec: install abrt-dump-journal-core stuff +- init: add abrt-journal-core service +- introduce abrt-dump-journal-core +- applet: Remove the automatic crash reporting message dialog +- applet: Remove pre-glib 2.32 code +- applet: Remove pointless custom signal handling +- applet: Use GNetworkMonitor instead of NM directly +- applet: Use GSettings to check whether to send uReports +- Rewrite journalctl invocations: replace grep/tail pipeline with journalctl builtins. +- Don't slurp unbounded amounts of data when invoking journalctl. Fixes #887. +- console-notifications: add timeout +- cli-status: use will_python_exception +- ccpp-hook: move utility functions to hooklib +- ccpp-hook: move /proc/[pid]/ utils to libreport +- abrt-journal: add functions for reading/saving journald state +- Do not use 'bool' in OPT_BOOL() macro : it expects 'int' +- daemon: Own a D-Bus name +- zanata: add gettext mappings +- auto-reporting: add options to specify auth type +- translations: move from transifex to zanata +- spec: add missing augeas dependency +- Only analyze vulnerabilities when coredump present +- abrt-install-ccpp-hook check configuration +- UUID from core backtrace if coredump is missing +- Create core backtrace in unwind hook +- abrt-hook-ccpp: minor refactoring +- vmcore: remove original vmcore file in the last step +- vmcore: catch IOErrors and OSErrors +- python: load the configuration from correct file +- Remove garbage from ccpp_event.conf +- spec: update the required gdb version +- gdb: make gdb aware of the abrt's debuginfo dir +- Revert "gdb: disable loading of auto-loaded files" +- spec: update the URL +- koops: improve 'reason' text for page faults +- sos: use all valuable plugins +- a-a-g-machine-id: do not print any error from the event handler +- a-a-g-machine-id: omit trailing new-line for one-liners only +- a-a-g-machine-id: suppress its failures in abrt_event.conf +- a-a-g-machine-id: add systemd's machine id +- applet: ensure writable dump directory before reporting +- make ABRT quieter +- journal-oops: use the length result of sd_journal_get_data() +- console-notifications: skip non-interactive shells +- applet: don't show duphash instead of component +- ureport: attach contact email if configured +- console-notifications: use return instead of exit +- Translation updates +- a-a-s-p-d: add firefox on the package blacklist