From 5f74b5e40709fd5924c4dc57f71d00f052786e89 Mon Sep 17 00:00:00 2001 From: Igor Raits Date: Feb 07 2020 07:00:55 +0000 Subject: Backport few more patches to fix compatibility with new libreport Signed-off-by: Igor Raits --- diff --git a/0001-Stop-using-parse_list.patch b/0001-Stop-using-parse_list.patch new file mode 100644 index 0000000..8f2459c --- /dev/null +++ b/0001-Stop-using-parse_list.patch @@ -0,0 +1,70 @@ +From 3f5003af92d2b2b0e4f5565ccd90b29e32e6b30b Mon Sep 17 00:00:00 2001 +From: Ernestas Kulik +Date: Thu, 16 Jan 2020 10:53:47 +0100 +Subject: [PATCH] Stop using parse_list + +It will be gone from libreport before you know it. +--- + src/daemon/abrt-action-save-package-data.c | 12 ++++++------ + src/plugins/abrt-dump-journal-xorg.c | 2 +- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c +index e52b3d55..30e8fd73 100644 +--- a/src/daemon/abrt-action-save-package-data.c ++++ b/src/daemon/abrt-action-save-package-data.c +@@ -49,20 +49,20 @@ static void ParseCommon(map_string_t *settings, const char *conf_filename) + value = get_map_string_item_or_NULL(settings, "BlackList"); + if (value) + { +- settings_setBlackListedPkgs = parse_list(value); ++ settings_setBlackListedPkgs = parse_delimited_list(value, ","); + remove_map_string_item(settings, "BlackList"); + } + else +- settings_setBlackListedPkgs = parse_list(DEFAULT_BLACKLISTED_PKGS); ++ settings_setBlackListedPkgs = parse_delimited_list(DEFAULT_BLACKLISTED_PKGS, ","); + + value = get_map_string_item_or_NULL(settings, "BlackListedPaths"); + if (value) + { +- settings_setBlackListedPaths = parse_list(value); ++ settings_setBlackListedPaths = parse_delimited_list(value, ","); + remove_map_string_item(settings, "BlackListedPaths"); + } + else +- settings_setBlackListedPaths = parse_list(DEFAULT_BLACKLISTED_PATHS); ++ settings_setBlackListedPaths = parse_delimited_list(DEFAULT_BLACKLISTED_PATHS, ","); + + value = get_map_string_item_or_NULL(settings, "ProcessUnpackaged"); + if (value) +@@ -74,11 +74,11 @@ static void ParseCommon(map_string_t *settings, const char *conf_filename) + value = get_map_string_item_or_NULL(settings, "Interpreters"); + if (value) + { +- settings_Interpreters = parse_list(value); ++ settings_Interpreters = parse_delimited_list(value, ","); + remove_map_string_item(settings, "Interpreters"); + } + else +- settings_Interpreters = parse_list(DEFAULT_INTERPRETERS); ++ settings_Interpreters = parse_delimited_list(DEFAULT_INTERPRETERS, ","); + + map_string_iter_t iter; + const char *name; +diff --git a/src/plugins/abrt-dump-journal-xorg.c b/src/plugins/abrt-dump-journal-xorg.c +index 92d19661..351bbae4 100644 +--- a/src/plugins/abrt-dump-journal-xorg.c ++++ b/src/plugins/abrt-dump-journal-xorg.c +@@ -261,7 +261,7 @@ int main(int argc, char *argv[]) + conf_journal_filters = XORG_DEFAULT_JOURNAL_FILTERS; + } + +- xorg_journal_filter = parse_list(conf_journal_filters); ++ xorg_journal_filter = parse_delimited_list(conf_journal_filters, ","); + /* list data will be free by g_list_free_full */ + free_filter_list_data = true; + free_map_string(settings); +-- +2.25.0 + diff --git a/0001-Use-GChecksum-to-compute-checksums.patch b/0001-Use-GChecksum-to-compute-checksums.patch new file mode 100644 index 0000000..f0e32ae --- /dev/null +++ b/0001-Use-GChecksum-to-compute-checksums.patch @@ -0,0 +1,168 @@ +From 16468b57579997971c056687ecc8438a406d57c2 Mon Sep 17 00:00:00 2001 +From: Ernestas Kulik +Date: Tue, 14 Jan 2020 16:36:21 +0100 +Subject: [PATCH] Use GChecksum to compute checksums +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +d605ffeaa6ae411ef396160ffd67b7a6fd27c6ba in libreport removed some +convenience API for hashing data, so let’s just go with what GLib has in +store. +--- + src/dbus/abrt_problems2_service.c | 33 +++++++++++---------- + src/plugins/abrt-action-analyze-backtrace.c | 8 +++-- + src/plugins/abrt-action-analyze-c.c | 7 +++-- + src/plugins/abrt-action-analyze-python.c | 9 +++--- + 4 files changed, 32 insertions(+), 25 deletions(-) + +diff --git a/src/dbus/abrt_problems2_service.c b/src/dbus/abrt_problems2_service.c +index 2511136f..a0d2a3ce 100644 +--- a/src/dbus/abrt_problems2_service.c ++++ b/src/dbus/abrt_problems2_service.c +@@ -572,9 +572,11 @@ static AbrtP2Object *session_object_register(AbrtP2Service *service, + + static char *session_object_caller_to_path(const char *caller) + { +- char hash_str[SHA1_RESULT_LEN*2 + 1]; +- str_to_sha1str(hash_str, caller); +- return xasprintf(ABRT_P2_PATH"/Session/%s", hash_str); ++ g_autofree char *checksum = NULL; ++ ++ checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA1, caller, -1); ++ ++ return xasprintf(ABRT_P2_PATH"/Session/%s", checksum); + } + + static AbrtP2Object *abrt_p2_service_get_session_for_caller( +@@ -1323,9 +1325,11 @@ static void entry_object_destructor(AbrtP2Object *obj) + + static char *entry_object_dir_name_to_path(const char *dd_dirname) + { +- char hash_str[SHA1_RESULT_LEN*2 + 1]; +- str_to_sha1str(hash_str, dd_dirname); +- return xasprintf(ABRT_P2_PATH"/Entry/%s", hash_str); ++ g_autofree char *checksum = NULL; ++ ++ checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA1, dd_dirname, -1); ++ ++ return xasprintf(ABRT_P2_PATH"/Entry/%s", checksum); + } + + static AbrtP2Object *entry_object_register_dump_dir(AbrtP2Service *service, +@@ -1480,8 +1484,10 @@ char *abrt_p2_service_save_problem( AbrtP2Service *service, + else + { + /* start hash */ +- sha1_ctx_t sha1ctx; +- sha1_begin(&sha1ctx); ++ g_autoptr(GChecksum) checksum = NULL; ++ const char *digest; ++ ++ checksum = g_checksum_new(G_CHECKSUM_SHA1); + + /* + * To avoid spurious hash differences, sort keys so that elements are +@@ -1500,19 +1506,16 @@ char *abrt_p2_service_save_problem( AbrtP2Service *service, + + gsize size = 0; + const char *content = g_variant_get_string(element, &size); +- sha1_hash(&sha1ctx, content, size); ++ ++ g_checksum_update(checksum, (const unsigned char *)content, size); + + g_variant_unref(element); + } + g_list_free_full(list, free); + +- /* end hash */ +- char hash_bytes[SHA1_RESULT_LEN]; +- sha1_end(&sha1ctx, hash_bytes); +- char hash_str[SHA1_RESULT_LEN*2 + 1]; +- bin2hex(hash_str, hash_bytes, SHA1_RESULT_LEN)[0] = '\0'; ++ digest = g_checksum_get_string(checksum); + +- g_variant_dict_insert(&pd, FILENAME_UUID, "s", hash_str); ++ g_variant_dict_insert(&pd, FILENAME_UUID, "s", digest); + } + } + +diff --git a/src/plugins/abrt-action-analyze-backtrace.c b/src/plugins/abrt-action-analyze-backtrace.c +index 622d7953..20e71945 100644 +--- a/src/plugins/abrt-action-analyze-backtrace.c ++++ b/src/plugins/abrt-action-analyze-backtrace.c +@@ -82,6 +82,8 @@ int main(int argc, char **argv) + /* Store backtrace hash */ + if (!backtrace) + { ++ g_autofree char *checksum = NULL; ++ + /* + * The parser failed. Compute the duphash from the executable + * instead of a backtrace. +@@ -98,10 +100,10 @@ int main(int argc, char **argv) + strbuf_prepend_str(emptybt, component); + + log_debug("Generating duphash: %s", emptybt->buf); +- char hash_str[SHA1_RESULT_LEN*2 + 1]; +- str_to_sha1str(hash_str, emptybt->buf); + +- dd_save_text(dd, FILENAME_DUPHASH, hash_str); ++ checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA1, emptybt->buf, -1); ++ ++ dd_save_text(dd, FILENAME_DUPHASH, checksum); + /* + * Other parts of ABRT assume that if no rating is available, + * it is ok to allow reporting of the bug. To be sure no bad +diff --git a/src/plugins/abrt-action-analyze-c.c b/src/plugins/abrt-action-analyze-c.c +index 08e48779..4a6d34d4 100644 +--- a/src/plugins/abrt-action-analyze-c.c ++++ b/src/plugins/abrt-action-analyze-c.c +@@ -235,10 +235,11 @@ int main(int argc, char **argv) + + log_debug("String to hash: %s", string_to_hash); + +- char hash_str[SHA1_RESULT_LEN*2 + 1]; +- str_to_sha1str(hash_str, string_to_hash); ++ g_autofree char *checksum = NULL; + +- dd_save_text(dd, FILENAME_UUID, hash_str); ++ checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA1, string_to_hash, -1); ++ ++ dd_save_text(dd, FILENAME_UUID, checksum); + + /* Create crash_function element from core_backtrace */ + char *core_backtrace_json = dd_load_text_ext(dd, FILENAME_CORE_BACKTRACE, +diff --git a/src/plugins/abrt-action-analyze-python.c b/src/plugins/abrt-action-analyze-python.c +index 0dd55750..10589cbb 100644 +--- a/src/plugins/abrt-action-analyze-python.c ++++ b/src/plugins/abrt-action-analyze-python.c +@@ -26,6 +26,8 @@ + + int main(int argc, char **argv) + { ++ g_autofree char *checksum = NULL; ++ + /* I18n */ + setlocale(LC_ALL, ""); + #if ENABLE_NLS +@@ -91,13 +93,12 @@ int main(int argc, char **argv) + + char *bt_end = strchrnul(bt, '\n'); + *bt_end = '\0'; +- char hash_str[SHA1_RESULT_LEN*2 + 1]; +- str_to_sha1str(hash_str, bt); ++ checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA1, bt, -1); + + free(bt); + +- dd_save_text(dd, FILENAME_UUID, hash_str); +- dd_save_text(dd, FILENAME_DUPHASH, hash_str); ++ dd_save_text(dd, FILENAME_UUID, checksum); ++ dd_save_text(dd, FILENAME_DUPHASH, checksum); + dd_close(dd); + + return 0; +-- +2.25.0 + diff --git a/abrt.spec b/abrt.spec index 5c4f2f0..8ab97a0 100644 --- a/abrt.spec +++ b/abrt.spec @@ -58,8 +58,12 @@ Patch0001: 0001-python-Use-correct-paths-for-installed-modules.patch Patch0002: 0002-Fix-build-failure-with-gcc-fno-common.patch Patch0003: 0003-bodhi-Initialize-karma-values-with-default.patch Patch0004: 0004-dbus-Fix-possibly-uninitialized-variable.patch +# https://github.com/abrt/abrt/commit/16468b57579997971c056687ecc8438a406d57c2 +Patch0005: 0001-Use-GChecksum-to-compute-checksums.patch # https://github.com/abrt/abrt/commit/439fe1daddd62d53bf2ee72c45b631f5248daf5d -Patch0005: 0001-koops-Avoid-explicit-dependency-on-hash-size.patch +Patch0006: 0001-koops-Avoid-explicit-dependency-on-hash-size.patch +# https://github.com/abrt/abrt/commit/3f5003af92d2b2b0e4f5565ccd90b29e32e6b30b +Patch0007: 0001-Stop-using-parse_list.patch BuildRequires: git-core BuildRequires: %{dbus_devel}