Compare commits
10 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0ee465e7b | ||
|
|
0d97e1de9d | ||
|
|
4b27be9b93 | ||
|
|
3f755a6a01 | ||
|
|
e6532a103b | ||
|
|
df2b2f2ba8 | ||
|
|
9ac2541045 | ||
|
|
d1173a6c4b | ||
|
|
778533bd65 | ||
|
|
2cb1634313 |
7 changed files with 365 additions and 6 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -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
|
||||
|
|
|
|||
28
0001-applet-Pass-instance-pointer-to-signal-handler.patch
Normal file
28
0001-applet-Pass-instance-pointer-to-signal-handler.patch
Normal 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
|
||||
|
||||
26
0002-applet-Chain-up-in-dispose.patch
Normal file
26
0002-applet-Chain-up-in-dispose.patch
Normal 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
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
208
0004-daemon-rpm-Use-NEVRA-instead-of-ENVRA.patch
Normal file
208
0004-daemon-rpm-Use-NEVRA-instead-of-ENVRA.patch
Normal 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
|
||||
|
||||
46
abrt.spec
46
abrt.spec
|
|
@ -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: Don’t 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
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (abrt-2.14.0.tar.gz) = 2d817b7761d5afdca00a825281b759bc084a17d7393fcdf87df1a901b5c1a75595e3a733e481b30b02d068a123f8eac26163e2e55366e7cc20266a95e863967e
|
||||
SHA512 (abrt-2.14.2.tar.gz) = 020bd0550c41b2358a718a4f0f0c3a839d86fd46fc0c4f4cfc4b7d7f851baf2d5179e008ac1912b350f9f0fbfbfee94e422de3aadce5eb0f7f84a04f233349ff
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue