public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/abrt] update-2.17.9-f44: Fix broken pipe error in a-a-install-debuginfo
@ 2026-08-03 11:04 Matej Habrnal
0 siblings, 0 replies; only message in thread
From: Matej Habrnal @ 2026-08-03 11:04 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/abrt
Branch : update-2.17.9-f44
Commit : cd3efeaff4bdc21a49cf8049df8cb146a8b2bf5b
Author : Matej Habrnal <mhabrnal@redhat.com>
Date : 2016-04-11T09:50:01+02:00
Stats : +680/-7 in 6 file(s)
URL : https://src.fedoraproject.org/rpms/abrt/c/cd3efeaff4bdc21a49cf8049df8cb146a8b2bf5b?branch=update-2.17.9-f44
Log:
Fix broken pipe error in a-a-install-debuginfo
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
---
diff --git a/0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch b/0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch
new file mode 100644
index 0000000..9d55553
--- /dev/null
+++ b/0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch
@@ -0,0 +1,85 @@
+From a836ddd2277b05e1d7404cf6480a3ed8cc4807a4 Mon Sep 17 00:00:00 2001
+From: Matej Habrnal <mhabrnal@redhat.com>
+Date: Tue, 8 Mar 2016 16:42:31 +0100
+Subject: [PATCH] a-a-install-debuginfo: make tmpdir variable global
+
+Function clean_up() has one required parameter tmpdir.
+Without this commit clean_up() function raises an exception because it was
+called without the parameter.
+
+Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
+---
+ src/plugins/abrt-action-install-debuginfo.in | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
+index f70ebcd..7818ffd 100644
+--- a/src/plugins/abrt-action-install-debuginfo.in
++++ b/src/plugins/abrt-action-install-debuginfo.in
+@@ -20,7 +20,8 @@ import problem
+ RETURN_OK = 0
+ # serious problem, should be logged somewhere
+ RETURN_FAILURE = 2
+-
++# path to tmp directory has to be global because of clean_up()
++TMPDIR = None
+
+ GETTEXT_PROGNAME = "abrt"
+ import locale
+@@ -43,11 +44,11 @@ def init_gettext():
+ gettext.textdomain(GETTEXT_PROGNAME)
+
+ def sigterm_handler(signum, frame):
+- clean_up()
++ clean_up(TMPDIR)
+ exit(RETURN_OK)
+
+ def sigint_handler(signum, frame):
+- clean_up()
++ clean_up(TMPDIR)
+ print("\n{0}".format(_("Exiting on user command")))
+ sys.stdout.flush()
+ # ??! without "sys.", I am getting segv!
+@@ -63,7 +64,6 @@ if __name__ == "__main__":
+ fbuild_ids = "build_ids"
+ cachedirs = []
+ size_mb = 4096
+- tmpdir = None
+ keeprpms = False
+ noninteractive = False
+ b_ids = []
+@@ -135,7 +135,7 @@ if __name__ == "__main__":
+ except:
+ pass
+ elif opt == "--tmpdir":
+- tmpdir = arg
++ TMPDIR = arg
+ elif opt == "--keeprpms":
+ keeprpms = True
+ # --exact takes precendece over --ids
+@@ -159,11 +159,11 @@ if __name__ == "__main__":
+
+ if not cachedirs:
+ cachedirs = ["/var/cache/abrt-di"]
+- if not tmpdir:
++ if not TMPDIR:
+ # security people prefer temp subdirs in app's private dir, like /var/run/abrt
+ # and we switched to /tmp but Fedora feature tmp-on-tmpfs appeared, hence we must
+ # not use /tmp for potential big data anymore
+- tmpdir = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
++ TMPDIR = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
+
+
+ if missing == None:
+@@ -235,7 +235,7 @@ if __name__ == "__main__":
+ sys.exit(RETURN_FAILURE)
+
+ # TODO: should we pass keep_rpms=keeprpms to DebugInfoDownload here??
+- downloader = download_class(cache=cachedirs[0], tmp=tmpdir,
++ downloader = download_class(cache=cachedirs[0], tmp=TMPDIR,
+ noninteractive=noninteractive,
+ repo_pattern=repo_pattern)
+ try:
+--
+2.5.5
+
diff --git a/0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch b/0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch
new file mode 100644
index 0000000..07169a3
--- /dev/null
+++ b/0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch
@@ -0,0 +1,49 @@
+From 2c48b73b5d449df26053d5d95f98f2ef01610d46 Mon Sep 17 00:00:00 2001
+From: Matej Habrnal <mhabrnal@redhat.com>
+Date: Tue, 8 Mar 2016 16:45:36 +0100
+Subject: [PATCH] a-a-install-debuginfo: fix BrokenPipe error
+
+While debug info is downloading and stop button is pressed the BrokenPipe
+error appears.
+
+If the stop button is pressed, gui wizard sends SIGTERM to all
+processes with the same group ID so abrt-action-install-debuginfo got SIGTERM
+as well. It has its own SIGTERM handler which calls clean_up() function and it
+takes a while before the tool is terminated.
+abrt-action-install-debuginfo tries to write some messages to the closed socket
+during the clean_up process and it raises a BrokenPipe exception. We must
+ensure that no message will be printed after SIGTERM is recieved.
+
+Related to: #1255259
+
+Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
+---
+ src/plugins/abrt-action-install-debuginfo.in | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
+index 7818ffd..e4a7dfd 100644
+--- a/src/plugins/abrt-action-install-debuginfo.in
++++ b/src/plugins/abrt-action-install-debuginfo.in
+@@ -44,7 +44,7 @@ def init_gettext():
+ gettext.textdomain(GETTEXT_PROGNAME)
+
+ def sigterm_handler(signum, frame):
+- clean_up(TMPDIR)
++ clean_up(TMPDIR, silent=True)
+ exit(RETURN_OK)
+
+ def sigint_handler(signum, frame):
+@@ -241,6 +241,9 @@ if __name__ == "__main__":
+ try:
+ result = downloader.download(missing, download_exact_files=exact_fls)
+ except Exception as ex:
++ if ex.errno == errno.EPIPE:
++ clean_up(TMPDIR, silent=True)
++ exit(RETURN_FAILURE)
+ error_msg_and_die("Can't download debuginfos: %s", ex)
+
+ if exact_fls:
+--
+2.5.5
+
diff --git a/0014-Add-basic-documentation.patch b/0014-Add-basic-documentation.patch
new file mode 100644
index 0000000..74da14f
--- /dev/null
+++ b/0014-Add-basic-documentation.patch
@@ -0,0 +1,282 @@
+From 0020bf80cda35ee0ce0ecf91023f3abcc1c4d26d Mon Sep 17 00:00:00 2001
+From: Jakub Filak <jfilak@redhat.com>
+Date: Sat, 20 Feb 2016 08:27:32 +0100
+Subject: [PATCH] Add basic documentation
+
+Signed-off-by: Jakub Filak <jfilak@redhat.com>
+---
+ CONTRIBUTING.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ INSTALL | 7 -----
+ INSTALL.md | 56 ++++++++++++++++++++++++++++++++++
+ Makefile.am | 2 ++
+ README | 11 -------
+ README.md | 48 +++++++++++++++++++++++++++++
+ 6 files changed, 200 insertions(+), 18 deletions(-)
+ create mode 100644 CONTRIBUTING.md
+ delete mode 100644 INSTALL
+ create mode 100644 INSTALL.md
+ delete mode 100644 README
+ create mode 100644 README.md
+
+diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
+new file mode 100644
+index 0000000..4b27138
+--- /dev/null
++++ b/CONTRIBUTING.md
+@@ -0,0 +1,94 @@
++# Contributing to ABRT
++
++Adopted from http://www.contribution-guide.org/
++
++BSD, Copyright (c) 2015 Jeff Forcier
++
++## Submitting bugs
++
++### Due diligence
++
++Before submitting a bug, please do the following:
++
++* Perform **basic troubleshooting** steps:
++
++ * **Make sure you're on the latest version.** If you're not on the most
++ recent version, your problem may have been solved already! Upgrading is
++ always the best first step.
++ * **Try older versions.** If you're already *on* the latest release, try
++ rolling back a few minor versions (e.g. if on 1.7, try 1.5 or 1.6) and
++ see if the problem goes away. This will help the devs narrow down when
++ the problem first arose in the commit log.
++ * **Try switching up dependency versions.** If the software in question has
++ dependencies (other libraries, etc) try upgrading/downgrading those as
++ well.
++
++* **Search the project's bug/issue tracker** to make sure it's not a known issue.
++* If you don't find a pre-existing issue, consider **checking with the mailing
++ list and/or IRC channel** in case the problem is non-bug-related.
++* Consult [README.md](README.md) for links to bugtracker, mailinglist or IRC.
++
++### What to put in your bug report
++
++Make sure your report gets the attention it deserves: bug reports with missing
++information may be ignored or punted back to you, delaying a fix. The below
++constitutes a bare minimum; more info is almost always better:
++
++* **What version of the core programming language interpreter/compiler are you
++ using?** For example, if it's a Python project, are you using Python 2.7.3?
++ Python 3.3.1? PyPy 2.0?
++* **What operating system are you on?** Make sure to include release and distribution.
++* **Which version or versions of the software are you using?** Ideally, you
++ followed the advice above and have ruled out (or verified that the problem
++ exists in) a few different versions.
++* **How can the developers recreate the bug on their end?** If possible,
++ include a copy of your code, the command you used to invoke it, and the full
++ output of your run (if applicable.)
++
++ * A common tactic is to pare down your code until a simple (but still
++ bug-causing) "base case" remains. Not only can this help you identify
++ problems which aren't real bugs, but it means the developer can get to
++ fixing the bug faster.
++
++
++## Contributing changes
++
++It would be the best if you could discuss your plans with us on #abrt or on our
++mailinig list crash-catcher@lists.fedorahosted.org before you spent too much
++energy and time.
++
++Before contributing, please, make yourself familiar with git. You can [try git
++online](https://try.github.io/). Things would be easier for all of us if you do
++your changes on a branch. Use a single commit for every logical reviewable
++change, without unrelated modifications (that will help us if need to revert a
++particular commit). Please avoid adding commits fixing your previous
++commits, do amend or rebase instead.
++
++Every commit must have either comprehensive commit message saying what is being
++changed and why or a link (an issue number on Github) to a bug report where
++this information is available. It is also useful to include notes about
++negative decisions - i.e. why you decided to not do particular things. Please
++bare in mind that other developers might not understand what the original
++problem was.
++
++### Full example
++
++Here's an example workflow for a project `abrt` hosted on Github
++Your username is `yourname` and you're submitting a basic bugfix or feature.
++
++* Hit 'fork' on Github, creating e.g. `yourname/abrt`.
++* `git clone git@github.com:yourname/abrt`
++* `cd abrt`
++* `git checkout -b foo_the_bars` to create new local branch named foo_the_bars
++* Hack, hack, hack
++* Run `make check`
++* `git status`
++* `git add`
++* `git commit -s -m "Foo the bars"`
++* `git push -u origin HEAD` to create foo_the_bars branch in your fork
++* Visit your fork at Github and click handy "Pull request" button.
++* In the description field, write down issue number (if submitting code fixing
++ an existing issue) or describe the issue + your fix (if submitting a wholly
++ new bugfix).
++* Hit 'submit'! And please be patient - the maintainers will get to you when
++ they can.
+diff --git a/INSTALL b/INSTALL
+deleted file mode 100644
+index 799a4a6..0000000
+--- a/INSTALL
++++ /dev/null
+@@ -1,7 +0,0 @@
+-How to install
+-==============
+-
+-1. autogen.sh
+-2. ./configure
+-3. make
+-4. make install
+diff --git a/INSTALL.md b/INSTALL.md
+new file mode 100644
+index 0000000..96d42c4
+--- /dev/null
++++ b/INSTALL.md
+@@ -0,0 +1,56 @@
++# How to install
++
++### Development dependencies
++
++Build dependencies can be listed by:
++
++ $ ./autogen.sh sysdeps
++
++or installed by:
++
++ $ ./autogen.sh sysdeps --install
++
++The dependency installer gets the data from [the rpm spec file](abrt.spec.in)
++
++### Building from sources
++
++When you have all dependencies installed run the following commands:
++
++ $ ./autogen.sh --prefix=/usr \
++ --sysconfdir=/etc \
++ --localstatedir=/var \
++ --sharedstatedir=/var/lib
++
++ $ make
++
++or if you want to debug ABRT run:
++
++ $ CFLAGS="-g -g3 -ggdb -ggdb3 -O0" ./autogen.sh --prefix=/usr \
++ --sysconfdir=/etc \
++ --localstatedir=/var \
++ --sharedstatedir=/var/lib \
++ --enable-debug
++
++ $ make
++
++### Checking
++
++ABRT uses [Autotest](http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Using-Autotest.html)
++to validate source codes. Run the test by:
++
++ $ make check
++
++If you want to search for memory issues, build ABRT with debug options and then
++run:
++
++ $ make maintainer-check
++
++### Installing
++
++If you need an rpm package, run:
++
++ $ make rpm
++
++otherwise run:
++
++ $ make install
+diff --git a/Makefile.am b/Makefile.am
+index 01b8a97..e528c93 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -36,6 +36,8 @@ EXTRA_DIST = doc/coding-style abrt.spec.in abrt.pc.in \
+ abrt-version asciidoc.conf init-scripts/* $(TESTSUITE_FILES) \
+ augeas/test_abrt.aug
+
++dist_doc_DATA = README.md
++
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = abrt.pc
+
+diff --git a/README b/README
+deleted file mode 100644
+index 26cbbcb..0000000
+--- a/README
++++ /dev/null
+@@ -1,11 +0,0 @@
+-These sources are in early stages. They are changing every day :-)...
+-Anyway, patches are welcome.
+-
+-** Using Valgrind
+-
+-When running ABRT under memcheck, GLib's environment variables should
+-be set to turn off glib's memory optimization, so valgrind is not
+-confused:
+-
+-G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck \
+- --leak-check=full abrtd -dvvv
+diff --git a/README.md b/README.md
+new file mode 100644
+index 0000000..e58a499
+--- /dev/null
++++ b/README.md
+@@ -0,0 +1,48 @@
++# ABRT
++
++**A set of tools to help users detect and report application crashes.**
++
++### About
++
++Its main purpose is to ease the process of reporting an issue and finding a
++solution.
++
++The solution in this context might be a bugzilla ticket, knowledge base article
++or a suggestion to update a package to a version containing a fix.
++
++### Documentation
++
++Every ABRT program and configuration file has a man page describing it. It is
++also possible to [read the ABRT documentation](http://abrt.readthedocs.org/)
++online. For contributors and developers, there are also [wiki
++pages](https://github.com/abrt/abrt/wiki) describing some topics to deeper
++technical details.
++
++### Development
++
++ * IRC Channel: #abrt on FreeNode
++ * [Mailing List](https://lists.fedorahosted.org/admin/lists/crash-catcher.lists.fedorahosted.org/)
++ * [Bug Reports and RFEs](https://github.com/abrt/abrt/issues)
++ * [Contributing to ABRT](CONTRIBUTING.md)
++ * [Install and run ABRT](INSTALL.md)
++
++
++### Running
++
++ABRT consist of several services and many small utilities. While The utilities
++can be successfully run from the source directories after build, the services
++often uses the utilities to do actions and expect the utilities installed in
++the system directories. Hence to run the services, it is recommended to install
++ABRT first and run them as system services. The instructions how to build
++and install ABRT can be found in [INSTALL.md](INSTALL.md)
++
++### Technologies
++
++* [libreport](https://github.com/abrt/libreport) - problem data format, reporting
++* [satyr](https://github.com/abrt/satyr) - backtrace processing, micro-reports
++* [Python3](https://www.python.org/)
++* [GLib2](https://developer.gnome.org/glib/)
++* [Gtk3](https://developer.gnome.org/gtk3)
++* [D-Bus](https://www.freedesktop.org/wiki/Software/dbus/)
++* [SELinux](https://github.com/SELinuxProject/selinux/wiki)
++* [systemd](https://www.freedesktop.org/wiki/Software/systemd/)
+--
+2.5.5
+
diff --git a/0021-Save-Vendor-and-GPG-Fingerprint.patch b/0021-Save-Vendor-and-GPG-Fingerprint.patch
new file mode 100644
index 0000000..4f9f382
--- /dev/null
+++ b/0021-Save-Vendor-and-GPG-Fingerprint.patch
@@ -0,0 +1,232 @@
+From 451e57fc509f401bb586e7db88256923d47c38f7 Mon Sep 17 00:00:00 2001
+From: Matej Habrnal <mhabrnal@redhat.com>
+Date: Tue, 9 Feb 2016 16:53:21 +0100
+Subject: [PATCH] Save Vendor and GPG Fingerprint
+
+Red Hat keys can be found at:
+ https://access.redhat.com/security/team/key
+
+Related: #1258474
+---
+ src/daemon/abrt-action-save-package-data.c | 34 ++++++++++++++++++++-----
+ src/daemon/abrt-action-save-package-data.conf | 7 ++++++
+ src/daemon/rpm.c | 36 +++++++++++++++++++--------
+ src/daemon/rpm.h | 15 +++++++++++
+ src/plugins/abrt-action-save-kernel-data | 6 +++++
+ 5 files changed, 82 insertions(+), 16 deletions(-)
+
+diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c
+index 72c9878..05cbd1a 100644
+--- a/src/daemon/abrt-action-save-package-data.c
++++ b/src/daemon/abrt-action-save-package-data.c
+@@ -231,6 +231,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+ char *executable = NULL;
+ char *rootdir = NULL;
+ char *package_short_name = NULL;
++ char *fingerprint = NULL;
+ struct pkg_envra *pkg_name = NULL;
+ char *component = NULL;
+ int error = 1;
+@@ -324,13 +325,12 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+ goto ret; /* return 1 (failure) */
+ }
+
+- if (settings_bOpenGPGCheck)
++ fingerprint = rpm_get_fingerprint(package_short_name);
++ if (!(fingerprint != NULL && rpm_fingerprint_is_imported(fingerprint))
++ && settings_bOpenGPGCheck)
+ {
+- if (!rpm_chk_fingerprint(package_short_name))
+- {
+- log("Package '%s' isn't signed with proper key", package_short_name);
+- goto ret; /* return 1 (failure) */
+- }
++ log("Package '%s' isn't signed with proper key", package_short_name);
++ goto ret; /* return 1 (failure) */
+ /* We used to also check the integrity of the executable here:
+ * if (!CheckHash(package_short_name.c_str(), executable)) BOOM();
+ * Checking the MD5 sum requires to run prelink to "un-prelink" the
+@@ -353,6 +353,27 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+ dd_save_text(dd, FILENAME_PKG_VERSION, pkg_name->p_version);
+ dd_save_text(dd, FILENAME_PKG_RELEASE, pkg_name->p_release);
+ dd_save_text(dd, FILENAME_PKG_ARCH, pkg_name->p_arch);
++ dd_save_text(dd, FILENAME_PKG_VENDOR, pkg_name->p_vendor);
++
++ if (fingerprint)
++ {
++ /* 16 character + 3 spaces + 1 '\0' + 2 Bytes for errors :) */
++ char key_fingerprint[22] = {0};
++
++ /* The condition is just a defense against errors */
++ for (size_t i = 0, j = 0; j < sizeof(key_fingerprint) - 2; )
++ {
++ key_fingerprint[j++] = toupper(fingerprint[i++]);
++
++ if (fingerprint[i] == '\0')
++ break;
++
++ if (!(i & (0x3)))
++ key_fingerprint[j++] = ' ';
++ }
++
++ dd_save_text(dd, FILENAME_PKG_FINGERPRINT, key_fingerprint);
++ }
+ }
+
+ if (component)
+@@ -369,6 +390,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+ free(package_short_name);
+ free_pkg_envra(pkg_name);
+ free(component);
++ free(fingerprint);
+
+ return error;
+ }
+diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
+index 58f5061..295e03a 100644
+--- a/src/daemon/abrt-action-save-package-data.conf
++++ b/src/daemon/abrt-action-save-package-data.conf
+@@ -3,6 +3,13 @@
+ # the list of public keys used to check the signature is
+ # in the file gpg_keys
+ #
++# How can I check the GPG key used to sign an installed pacakge on
++# Red hat Enterprise Linux:
++# https://access.redhat.com/solutions/1120013
++#
++# Product Signing (GPG) Keys:
++# https://access.redhat.com/security/team/key
++#
+ OpenGPGCheck = yes
+
+ # Blacklisted packages
+diff --git a/src/daemon/rpm.c b/src/daemon/rpm.c
+index b613f77..e99b960 100644
+--- a/src/daemon/rpm.c
++++ b/src/daemon/rpm.c
+@@ -99,7 +99,22 @@ void rpm_load_gpgkey(const char* filename)
+
+ int rpm_chk_fingerprint(const char* pkg)
+ {
+- int ret = 0;
++ char *fingerprint = rpm_get_fingerprint(pkg);
++ int res = 0;
++ if (fingerprint)
++ res = rpm_fingerprint_is_imported(fingerprint);
++ free(fingerprint);
++ return res;
++}
++
++int rpm_fingerprint_is_imported(const char* fingerprint)
++{
++ return !!g_list_find_custom(list_fingerprints, fingerprint, (GCompareFunc)g_strcmp0);
++}
++
++char *rpm_get_fingerprint(const char *pkg)
++{
++ char *fingerprint = NULL;
+ char *pgpsig = NULL;
+ const char *errmsg = NULL;
+
+@@ -117,20 +132,15 @@ int rpm_chk_fingerprint(const char* pkg)
+ goto error;
+ }
+
+- {
+- char *pgpsig_tmp = strstr(pgpsig, " Key ID ");
+- if (pgpsig_tmp)
+- {
+- pgpsig_tmp += sizeof(" Key ID ") - 1;
+- ret = g_list_find_custom(list_fingerprints, pgpsig_tmp, (GCompareFunc)g_strcmp0) != NULL;
+- }
+- }
++ char *pgpsig_tmp = strstr(pgpsig, " Key ID ");
++ if (pgpsig_tmp)
++ fingerprint = xstrdup(pgpsig_tmp + sizeof(" Key ID ") - 1);
+
+ error:
+ free(pgpsig);
+ rpmdbFreeIterator(iter);
+ rpmtsFree(ts);
+- return ret;
++ return fingerprint;
+ }
+
+ /*
+@@ -256,6 +266,7 @@ pkg_add_id(name);
+ pkg_add_id(version);
+ pkg_add_id(release);
+ pkg_add_id(arch);
++pkg_add_id(vendor);
+
+ // caller is responsible to free returned value
+ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL)
+@@ -303,6 +314,10 @@ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_
+ if (r)
+ goto error;
+
++ r = pkg_add_vendor(header, p);
++ if (r)
++ goto error;
++
+ p->p_nvr = xasprintf("%s-%s-%s", p->p_name, p->p_version, p->p_release);
+
+ rpmdbFreeIterator(iter);
+@@ -322,6 +337,7 @@ void free_pkg_envra(struct pkg_envra *p)
+ if (!p)
+ return;
+
++ free(p->p_vendor);
+ free(p->p_epoch);
+ free(p->p_name);
+ free(p->p_version);
+diff --git a/src/daemon/rpm.h b/src/daemon/rpm.h
+index 1b90368..89aa088 100644
+--- a/src/daemon/rpm.h
++++ b/src/daemon/rpm.h
+@@ -38,6 +38,7 @@ struct pkg_envra {
+ char *p_version;
+ char *p_release;
+ char *p_arch;
++ char *p_vendor;
+ };
+
+ void free_pkg_envra(struct pkg_envra *p);
+@@ -69,6 +70,20 @@ void rpm_load_gpgkey(const char* filename);
+ int rpm_chk_fingerprint(const char* pkg);
+
+ /**
++ * A function, which checks if the given finger print is imported.
++ * @param pkg A package name.
++ * @return 1 if imported, otherwise (not-imported, or error) 0
++ */
++int rpm_fingerprint_is_imported(const char* fingerprint);
++
++/**
++ * A function, which returns package's finger print
++ * @param pkg A package name.
++ * @return NULL if not-valid, otherwise malloced NULL-terminated string.
++ */
++char *rpm_get_fingerprint(const char* pkg);
++
++/**
+ * Gets a package name. This package contains particular
+ * file. If the file doesn't belong to any package, empty string is
+ * returned.
+diff --git a/src/plugins/abrt-action-save-kernel-data b/src/plugins/abrt-action-save-kernel-data
+index f8b18f0..de9670a 100755
+--- a/src/plugins/abrt-action-save-kernel-data
++++ b/src/plugins/abrt-action-save-kernel-data
+@@ -76,3 +76,9 @@ rpm --root $ROOT -q --qf "%{release}\n" "$package" > pkg_release
+ epoch="$( rpm --root $ROOT -q --qf "%{epoch}" "$package" )"
+ test "$epoch" = "(none)" && epoch=0
+ echo "$epoch" > pkg_epoch
++rpm -q --qf "%{vendor}\n" "$package" > pkg_vendor
++
++FINGERPRINT=$(rpm -q --qf "%|SIGGPG?{%{SIGGPG:pgpsig}}:{%{SIGPGP:pgpsig}}|" "$package" 2>/dev/null | tail -1)
++if [ -n "$FINGERPRINT" -a "_(none)" != "_$FINGERPRINT" ]; then
++ echo $FINGERPRINT | sed 's/.*Key ID \(....\)\(....\)\(....\)\(....\)$/\U\1 \U\2 \U\3 \U\4/' > pkg_fingerprint
++fi
+--
+2.5.5
+
diff --git a/abrt.spec b/abrt.spec
index df70a39..b4d9745 100644
--- a/abrt.spec
+++ b/abrt.spec
@@ -43,19 +43,17 @@
%define docdirversion -%{version}
%endif
-%define libreport_ver 2.6.4
+%define libreport_ver 2.7.0
%define satyr_ver 0.19
Summary: Automatic bug detection and reporting tool
Name: abrt
Version: 2.8.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2+
Group: Applications/System
URL: https://abrt.readthedocs.org/
Source: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz
-# don't remove this patch, packages in rawhide are not signed!
-Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
# git format-patch %%{Version} --topo-order -N -M;
# i=1; for p in `ls 0*.patch`; do printf "Patch%04d: %s\n" $i $p; ((i++)); done
@@ -68,6 +66,27 @@ Patch0006: 0006-a-a-save-package-data-blacklist-usr-lib-64-firefox-p.patch
#Patch0007: 0007-testsuite-add-concurrent-processing-test-for-abrtd.patch
Patch0008: 0008-CCpp-turn-off-compat-cores.patch
Patch0009: 0009-python3-addon-workaround-a-bug-in-traceback.patch
+#Patch0010: 0010-testsuite-fix-ccpp-plugin-debug-test.patch
+#Patch0011: 0011-testsuite-rlAssertRpm-doesn-t-work-with-abrt-addon.patch
+Patch0012: 0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch
+Patch0013: 0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch
+Patch0014: 0014-Add-basic-documentation.patch
+#Patch0015: 0015-spec-README-README.md.patch
+#Patch0016: 0016-testsuite-compat-cores-add-include-to-the-loop.c-fil.patch
+#Patch0017: 0017-testsuite-changes-due-to-turn-off-compat-cores.patch
+#Patch0018: 0018-testsuite-yum-to-dnf.patch
+#Patch0019: 0019-testsuite-avoid-unintentional-removal-of-package-man.patch
+#Patch0020: 0020-testsuite-tell-the-runner-about-problem-sub-director.patch
+Patch0021: 0021-Save-Vendor-and-GPG-Fingerprint.patch
+#Patch0022: 0022-testsuite-add-tests-for-pgk_vendor-and-pkg_fingerpri.patch
+#Patch0023: 0023-testsuite-add-rhtsupport-discourage-tests.patch
+#Patch0024: 0024-testsuite-add-a-per-test-timeout-for-15m.patch
+#Patch0025: 0025-testsuite-reporter-rhtsupport-should-attach-whole-du.patch
+#Patch0026: 0026-testsuite-rhts-problem-report-api-correct-phase-test.patch
+#Patch0027: 0027-testsuite-test-for-reporter-mailx-email-formatting.patch
+
+# don't remove this patch, packages in rawhide are not signed!
+Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
# '%%autosetup -S git' -> git
BuildRequires: git
@@ -737,7 +756,7 @@ killall abrt-dbus >/dev/null 2>&1 || :
%files -f %{name}.lang
%defattr(-,root,root,-)
-%doc README COPYING
+%doc README.md COPYING
%if %{with systemd}
%{_unitdir}/abrtd.service
%{_tmpfilesdir}/abrt.conf
@@ -1095,6 +1114,12 @@ killall abrt-dbus >/dev/null 2>&1 || :
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
%changelog
+* Fri Apr 08 2016 Matej Habrnal <mhabrnal@redhat.com> 2.8.0-5
+- spec: README -> README.md
+- Add basic documentation
+- a-a-install-debuginfo: fix BrokenPipe error
+- a-a-install-debuginfo: make tmpdir variable global
+
* Mon Mar 7 2016 Matej Habrnal <mhabrnal@redhat.com> 2.8.0-4
- python3 addon: workaround a bug in traceback
diff --git a/disable-OpenGPGCheck-in-Fedora-Rawhide.patch b/disable-OpenGPGCheck-in-Fedora-Rawhide.patch
index 11d8c3e..f88c86d 100644
--- a/disable-OpenGPGCheck-in-Fedora-Rawhide.patch
+++ b/disable-OpenGPGCheck-in-Fedora-Rawhide.patch
@@ -13,8 +13,8 @@ index 3d35bb6..e3f724a 100644
--- a/src/daemon/abrt-action-save-package-data.conf
+++ b/src/daemon/abrt-action-save-package-data.conf
@@ -3,7 +3,7 @@
- # the list of public keys used to check the signature is
- # in the file gpg_keys
+ # Product Signing (GPG) Keys:
+ # https://access.redhat.com/security/team/key
#
-OpenGPGCheck = yes
+OpenGPGCheck = no
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-03 11:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-03 11:04 [rpms/abrt] update-2.17.9-f44: Fix broken pipe error in a-a-install-debuginfo Matej Habrnal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox