Compare commits

...
Sign in to create a new pull request.

10 commits

Author SHA1 Message Date
Matěj Grabovský
c0ee465e7b Add fix for rhbz#1900982 2020-12-17 14:07:10 +01:00
Matěj Grabovský
0d97e1de9d Revert to state after release of 2.14.2-3 2020-12-17 14:05:30 +01:00
Matěj Grabovský
4b27be9b93 Partially revert "Add patch for #1881745"
abrt 2.14.2 and earlier are not affected by #1881745.

This reverts commit 3f755a6a01.
2020-09-24 10:44:38 +02:00
Matěj Grabovský
3f755a6a01 Add patch for #1881745 2020-09-24 10:35:36 +02:00
Michal Fabik
e6532a103b New upstream release 2.14.4
Signed-off-by: Michal Fabik <mfabik@redhat.com>
2020-08-24 11:16:10 +02:00
Ernestas Kulik
df2b2f2ba8 Add patch for #1860903 2020-07-28 17:32:58 +02:00
Ernestas Kulik
9ac2541045 Add fix for #1836190 2020-05-21 15:58:39 +02:00
Michal Fabik
d1173a6c4b New upstream release 2.14.2
Signed-off-by: Michal Fabik <mfabik@redhat.com>
2020-05-12 13:18:52 +02:00
Ernestas Kulik
778533bd65 Bump libreport dependency 2020-04-25 11:15:18 +02:00
Michal Fabik
2cb1634313 New upstream release 2.14.1
Signed-off-by: Michal Fabik <mfabik@redhat.com>
2020-04-24 18:07:47 +02:00
7 changed files with 365 additions and 6 deletions

2
.gitignore vendored
View file

@ -69,3 +69,5 @@ abrt-1.1.13.tar.gz
/abrt-2.12.2.tar.gz
/abrt-2.13.0.tar.gz
/abrt-2.14.0.tar.gz
/abrt-2.14.1.tar.gz
/abrt-2.14.2.tar.gz

View file

@ -0,0 +1,28 @@
From 5618985d3d7f830ebba0ef78e2ee6d3d6f9f6c55 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Fri, 15 May 2020 15:49:59 +0200
Subject: [PATCH] applet: Pass instance pointer to signal handler
Some fallout from 802a40a2f7c971b6533162e70b860e01ae3b5a27.
https://bugzilla.redhat.com/show_bug.cgi?id=1836190
---
src/applet/abrt-applet-application.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/applet/abrt-applet-application.c b/src/applet/abrt-applet-application.c
index d982c9f9..8ea653bb 100644
--- a/src/applet/abrt-applet-application.c
+++ b/src/applet/abrt-applet-application.c
@@ -177,7 +177,7 @@ abrt_applet_application_init (AbrtAppletApplication *self)
g_signal_connect (network_monitor, "notify::connectivity",
G_CALLBACK (on_connectivity_changed), self);
g_signal_connect (network_monitor, "notify::network-available",
- G_CALLBACK (on_connectivity_changed), NULL);
+ G_CALLBACK (on_connectivity_changed), self);
self->deferred_problems = g_ptr_array_new_with_free_func (g_object_unref);
}
--
2.26.2

View file

@ -0,0 +1,26 @@
From b08e7cbd26704b0a5400fdfab1f3f2e3922b102f Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Fri, 15 May 2020 15:50:50 +0200
Subject: [PATCH] applet: Chain up in dispose()
Also something missed in 802a40a2f7c971b6533162e70b860e01ae3b5a27.
---
src/applet/abrt-applet-application.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/applet/abrt-applet-application.c b/src/applet/abrt-applet-application.c
index 8ea653bb..52ed5529 100644
--- a/src/applet/abrt-applet-application.c
+++ b/src/applet/abrt-applet-application.c
@@ -985,6 +985,8 @@ abrt_applet_application_dispose (GObject *object)
self = ABRT_APPLET_APPLICATION (object);
g_clear_pointer (&self->deferred_problems, g_ptr_array_unref);
+
+ G_OBJECT_CLASS (abrt_applet_application_parent_class)->dispose (object);
}
static void
--
2.26.2

View file

@ -0,0 +1,59 @@
From b28fcc053db224c11f1f88d2885eba88d60a7322 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Tue, 28 Jul 2020 15:39:43 +0200
Subject: [PATCH] applet: application: Fix crash when processing deferred
Currently, when processing the deferred problems, if reporting fails,
the problem is re-added to the queue, but the object is not
re-referenced, leading to invalid reads later on.
---
src/applet/abrt-applet-application.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/applet/abrt-applet-application.c b/src/applet/abrt-applet-application.c
index 28e55135..4716524b 100644
--- a/src/applet/abrt-applet-application.c
+++ b/src/applet/abrt-applet-application.c
@@ -771,11 +771,9 @@ handle_event_output_cb (GIOChannel *gio,
gpointer data)
{
EventProcessingState *state;
- AbrtAppletProblemInfo *problem_info;
int status;
state = data;
- problem_info = state->problem_info;
/* Read streamed data and split lines */
for (;;)
@@ -836,21 +834,23 @@ handle_event_output_cb (GIOChannel *gio,
if (WIFEXITED (status) && WEXITSTATUS (status) == EXIT_STOP_EVENT_RUN)
{
- abrt_applet_problem_info_set_known (problem_info, true);
+ abrt_applet_problem_info_set_known (state->problem_info, true);
status = 0;
}
if (status == 0)
{
- abrt_applet_problem_info_set_reported (problem_info, true);
+ abrt_applet_problem_info_set_reported (state->problem_info, true);
log_debug ("fast report finished successfully");
- abrt_applet_application_send_problem_notification (state->application, problem_info);
+ abrt_applet_application_send_problem_notification (state->application,
+ state->problem_info);
}
else
{
log_debug ("fast report failed, deferring");
- g_ptr_array_add (state->application->deferred_problems, problem_info);
+ g_ptr_array_add (state->application->deferred_problems,
+ g_steal_pointer (&state->problem_info));
}
event_processing_state_free (state);
--
2.26.2

View file

@ -0,0 +1,208 @@
From 7013e4e0de5d3f1538475a92b08687924f5e01c2 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Wed, 3 Jun 2020 14:49:50 +0200
Subject: [PATCH] daemon: rpm: Use NEVRA instead of ENVRA
libdnf is only able to parse package names in the NEVRA form, leading to
retrace-server bailing when retracing dumps from, say, gedit.
Closes https://github.com/abrt/abrt/issues/1378
Fixes https://github.com/abrt/retrace-server/issues/233
---
src/daemon/abrt-action-save-package-data.c | 12 +++++------
src/daemon/rpm.c | 25 +++++++++++-----------
src/daemon/rpm.h | 8 +++----
3 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c
index 9373c2b1..de926383 100644
--- a/src/daemon/abrt-action-save-package-data.c
+++ b/src/daemon/abrt-action-save-package-data.c
@@ -228,7 +228,7 @@ static bool is_path_blacklisted(const char *path)
return false;
}
-static struct pkg_envra *get_script_name(const char *cmdline, char **executable, const char *chroot)
+static struct pkg_nevra *get_script_name(const char *cmdline, char **executable, const char *chroot)
{
// TODO: we don't verify that python executable is not modified
// or that python package is properly signed
@@ -237,7 +237,7 @@ static struct pkg_envra *get_script_name(const char *cmdline, char **executable,
* This will work only if the cmdline contains the whole path.
* Example: python /usr/bin/system-control-network
*/
- struct pkg_envra *script_pkg = NULL;
+ struct pkg_nevra *script_pkg = NULL;
char *script_name = get_argv1_if_full_path(cmdline);
if (script_name)
{
@@ -271,7 +271,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
char *rootdir = NULL;
char *package_short_name = NULL;
char *fingerprint = NULL;
- struct pkg_envra *pkg_name = NULL;
+ struct pkg_nevra *pkg_name = NULL;
char *component = NULL;
char *kernel = NULL;
int error = 1;
@@ -353,7 +353,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
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);
+ struct pkg_nevra *script_pkg = get_script_name(cmdline, &executable, chroot);
/* executable may have changed, check it again */
if (is_path_blacklisted(executable))
{
@@ -379,7 +379,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
goto ret0;
}
- free_pkg_envra(pkg_name);
+ free_pkg_nevra(pkg_name);
pkg_name = script_pkg;
}
@@ -460,7 +460,7 @@ skip_interpreter:
free(executable);
free(rootdir);
free(package_short_name);
- free_pkg_envra(pkg_name);
+ free_pkg_nevra(pkg_name);
free(component);
free(fingerprint);
diff --git a/src/daemon/rpm.c b/src/daemon/rpm.c
index 07ad227e..d39901a6 100644
--- a/src/daemon/rpm.c
+++ b/src/daemon/rpm.c
@@ -282,7 +282,7 @@ char* rpm_get_component(const char *filename, const char *rootdir_or_NULL)
#ifdef HAVE_LIBRPM
#define pkg_add_id(name) \
- static inline int pkg_add_##name(Header header, struct pkg_envra *p) \
+ static inline int pkg_add_##name(Header header, struct pkg_nevra *p) \
{ \
const char *errmsg = NULL; \
p->p_##name = headerFormat(header, "%{"#name"}", &errmsg); \
@@ -294,8 +294,8 @@ char* rpm_get_component(const char *filename, const char *rootdir_or_NULL)
return -1; \
} \
-pkg_add_id(epoch);
pkg_add_id(name);
+pkg_add_id(epoch);
pkg_add_id(version);
pkg_add_id(release);
pkg_add_id(arch);
@@ -303,14 +303,14 @@ pkg_add_id(vendor);
#endif
// caller is responsible to free returned value
-struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL)
+struct pkg_nevra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL)
{
#ifdef HAVE_LIBRPM
rpmts ts;
rpmdbMatchIterator iter;
Header header;
- struct pkg_envra *p = NULL;
+ struct pkg_nevra *p = NULL;
if (rpm_query_file(&ts, &iter, &header, filename, rootdir_or_NULL) < 0)
return NULL;
@@ -320,6 +320,11 @@ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_
p = libreport_xzalloc(sizeof(*p));
int r;
+
+ r = pkg_add_name(header, p);
+ if (r)
+ goto error;
+
r = pkg_add_epoch(header, p);
if (r)
goto error;
@@ -333,10 +338,6 @@ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_
p->p_epoch = libreport_xstrdup("0");
}
- r = pkg_add_name(header, p);
- if (r)
- goto error;
-
r = pkg_add_version(header, p);
if (r)
goto error;
@@ -356,14 +357,14 @@ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_
if (strcmp(p->p_epoch, "0") == 0)
p->p_nvr = libreport_xasprintf("%s-%s-%s", p->p_name, p->p_version, p->p_release);
else
- p->p_nvr = libreport_xasprintf("%s:%s-%s-%s", p->p_epoch, p->p_name, p->p_version, p->p_release);
+ p->p_nvr = libreport_xasprintf("%s-%s:%s-%s", p->p_name, p->p_epoch, p->p_version, p->p_release);
rpmdbFreeIterator(iter);
rpmtsFree(ts);
return p;
error:
- free_pkg_envra(p);
+ free_pkg_nevra(p);
rpmdbFreeIterator(iter);
rpmtsFree(ts);
@@ -373,14 +374,14 @@ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_
#endif
}
-void free_pkg_envra(struct pkg_envra *p)
+void free_pkg_nevra(struct pkg_nevra *p)
{
if (!p)
return;
free(p->p_vendor);
- free(p->p_epoch);
free(p->p_name);
+ free(p->p_epoch);
free(p->p_version);
free(p->p_release);
free(p->p_arch);
diff --git a/src/daemon/rpm.h b/src/daemon/rpm.h
index 1fd56e8f..90821f81 100644
--- a/src/daemon/rpm.h
+++ b/src/daemon/rpm.h
@@ -26,17 +26,17 @@
extern "C" {
#endif
-struct pkg_envra {
+struct pkg_nevra {
char *p_nvr;
- char *p_epoch;
char *p_name;
+ char *p_epoch;
char *p_version;
char *p_release;
char *p_arch;
char *p_vendor;
};
-void free_pkg_envra(struct pkg_envra *p);
+void free_pkg_nevra(struct pkg_nevra *p);
/**
* Checks if an application is modified by third party.
@@ -85,7 +85,7 @@ char *rpm_get_fingerprint(const char* pkg);
* @param filename A file name.
* @return A package name (malloc'ed string)
*/
-struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL);
+struct pkg_nevra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL);
/**
* Finds a main package for given file. This package contains particular
* file. If the file doesn't belong to any package, empty string is
--
2.26.2

View file

@ -43,17 +43,22 @@
%define docdirversion -%{version}
%endif
%define libreport_ver 2.12.0
%define libreport_ver 2.13.0
%define satyr_ver 0.24
Summary: Automatic bug detection and reporting tool
Name: abrt
Version: 2.14.0
Release: 2%{?dist}
Version: 2.14.2
Release: 4%{?dist}
License: GPLv2+
URL: https://abrt.readthedocs.org/
Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-applet-Pass-instance-pointer-to-signal-handler.patch
Patch1: 0002-applet-Chain-up-in-dispose.patch
Patch2: 0003-applet-application-Fix-crash-when-processing-deferre.patch
Patch3: 0004-daemon-rpm-Use-NEVRA-instead-of-ENVRA.patch
BuildRequires: git-core
BuildRequires: %{dbus_devel}
BuildRequires: hostname
@ -114,7 +119,6 @@ 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}
@ -750,7 +754,7 @@ killall abrt-dbus >/dev/null 2>&1 || :
%dir %attr(0751, root, abrt) %{default_dump_dir}
%dir %attr(0700, abrt, abrt) %{_localstatedir}/spool/%{name}-upload
# abrtd runs as root
%dir %attr(0755, root, root) %{_localstatedir}/run/%{name}
%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
@ -1016,6 +1020,38 @@ killall abrt-dbus >/dev/null 2>&1 || :
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
%changelog
* Thu Dec 17 2020 Matěj Grabovský <mgrabovs@redhat.com> - 2.14.2-4
- Add fix for https://bugzilla.redhat.com/show_bug.cgi?id=1900982
* Tue Jul 28 2020 - Ernestas Kulik <ekulik@redhat.com> - 2.14.2-3
- Add patch for https://bugzilla.redhat.com/show_bug.cgi?id=1860903
* Thu May 21 2020 Ernestas Kulik <ekulik@redhat.com> - 2.14.2-2
- Add fix for https://bugzilla.redhat.com/show_bug.cgi?id=1836190
* Tue May 12 2020 Michal Fabik <mfabik@redhat.com> - 2.14.2-1
- Fix broken builds with --enable-authenticated-autoreporting
* Fri Apr 24 2020 Michal Fabik <mfabik@redhat.com> - 2.14.1-1
- tests: Add perl, php R and tcl to dont-blame-interpret
- a-a-save-package-data: Add R and tcl to interpreted langs
- a-a-save-package-data: Use regexps to match interpreters
- .travis.yml: Update secret
- plugins: xorg-utils: Loopify parsing
- Add namespace to libreport function and global names
- cli: Correct debug directories in config
- cli: Show defaults in help output
- cli: Fix verbosity option
- cli: Fix descriptions for --since and --until
- autogen.sh: Handle NOCONFIGURE per the Build API
- plugins: journal: Fix ci_mapping being overwritten
- plugins: abrt-journal-core: Dont assume anything about uid_t
- lib,plugins: Accomodate for multiple debug directories
- dbus: Drop bogus dependency
- dbus: Drop abrt_problems2
- Drop libcap dependency
- Drop Travis config
* Fri Feb 07 2020 Ernestas Kulik <ekulik@redhat.com> - 2.14.0-2
- Bump libreport dependency

View file

@ -1 +1 @@
SHA512 (abrt-2.14.0.tar.gz) = 2d817b7761d5afdca00a825281b759bc084a17d7393fcdf87df1a901b5c1a75595e3a733e481b30b02d068a123f8eac26163e2e55366e7cc20266a95e863967e
SHA512 (abrt-2.14.2.tar.gz) = 020bd0550c41b2358a718a4f0f0c3a839d86fd46fc0c4f4cfc4b7d7f851baf2d5179e008ac1912b350f9f0fbfbfee94e422de3aadce5eb0f7f84a04f233349ff